From 640e67d6dc193fc0bfc66679a196d9601648c12f Mon Sep 17 00:00:00 2001 From: skosito Date: Tue, 30 Jul 2024 18:24:56 +0100 Subject: [PATCH] refactor: v2 bindings (#270) --- .github/workflows/generated-files_v2.yaml | 63 + v2/package.json | 6 +- v2/pkg/address.sol/address.go | 203 + v2/pkg/base.sol/commonbase.go | 181 + v2/pkg/base.sol/scriptbase.go | 181 + v2/pkg/base.sol/testbase.go | 181 + v2/pkg/beaconproxy.sol/beaconproxy.go | 368 + v2/pkg/console.sol/console.go | 203 + v2/pkg/console2.sol/console2.go | 181 + v2/pkg/context.sol/context.go | 181 + .../contextupgradeable.go | 315 + v2/pkg/core.sol/core.go | 203 + v2/pkg/defender.sol/defender.go | 203 + v2/pkg/defenderdeploy.sol/defenderdeploy.go | 203 + v2/pkg/erc1967proxy.sol/erc1967proxy.go | 368 + v2/pkg/erc1967utils.sol/erc1967utils.go | 626 + v2/pkg/erc20.sol/erc20.go | 738 + v2/pkg/erc20/ierc20.sol/ierc20.go | 645 + v2/pkg/erc20burnable.sol/erc20burnable.go | 780 ++ v2/pkg/erc20custodynew.sol/erc20custodynew.go | 792 ++ .../erc20custodynewechidnatest.go | 875 ++ v2/pkg/gatewayevm.sol/gatewayevm.go | 2078 +++ .../gatewayevm.t.sol/gatewayevminboundtest.go | 5357 ++++++++ v2/pkg/gatewayevm.t.sol/gatewayevmtest.go | 6052 +++++++++ .../gatewayevmechidnatest.go | 2161 +++ .../gatewayevmuupsupgradetest.go | 5335 ++++++++ .../gatewayevmupgradetest.go | 2224 ++++ .../gatewayevmzevmtest.go | 5548 ++++++++ v2/pkg/gatewayzevm.sol/gatewayzevm.go | 1435 ++ .../gatewayzevminboundtest.go | 4060 ++++++ .../gatewayzevmoutboundtest.go | 4567 +++++++ v2/pkg/ibeacon.sol/ibeacon.go | 212 + v2/pkg/ierc165.sol/ierc165.go | 212 + v2/pkg/ierc1967.sol/ierc1967.go | 604 + v2/pkg/ierc20.sol/ierc20.go | 738 + .../ierc20custodynewerrors.go | 181 + .../ierc20custodynewevents.go | 645 + v2/pkg/ierc20metadata.sol/ierc20metadata.go | 738 + v2/pkg/ierc20permit.sol/ierc20permit.go | 264 + v2/pkg/ierc721.sol/ierc721.go | 919 ++ v2/pkg/ierc721.sol/ierc721enumerable.go | 1012 ++ v2/pkg/ierc721.sol/ierc721metadata.go | 1012 ++ v2/pkg/ierc721.sol/ierc721tokenreceiver.go | 202 + v2/pkg/igatewayevm.sol/igatewayevm.go | 244 + v2/pkg/igatewayevm.sol/igatewayevmerrors.go | 181 + v2/pkg/igatewayevm.sol/igatewayevmevents.go | 1093 ++ v2/pkg/igatewayevm.sol/revertable.go | 202 + v2/pkg/igatewayzevm.sol/igatewayzevm.go | 314 + v2/pkg/igatewayzevm.sol/igatewayzevmerrors.go | 181 + v2/pkg/igatewayzevm.sol/igatewayzevmevents.go | 477 + v2/pkg/imulticall3.sol/imulticall3.go | 644 + v2/pkg/initializable.sol/initializable.go | 315 + v2/pkg/iproxyadmin.sol/iproxyadmin.go | 223 + v2/pkg/ireceiverevm.sol/ireceiverevmevents.go | 862 ++ v2/pkg/isystem.sol/isystem.go | 367 + .../iupgradeablebeacon.go | 202 + .../iupgradeableproxy.go | 223 + v2/pkg/iwzeta.sol/iweth9.go | 977 ++ .../izetaconnectorevents.go | 618 + v2/pkg/izetanonethnew.sol/izetanonethnew.go | 687 + v2/pkg/izrc20.sol/izrc20.go | 463 + v2/pkg/izrc20.sol/izrc20metadata.go | 556 + v2/pkg/izrc20.sol/zrc20events.go | 1185 ++ v2/pkg/math.sol/math.go | 203 + v2/pkg/mockerc20.sol/mockerc20.go | 864 ++ v2/pkg/mockerc721.sol/mockerc721.go | 1055 ++ v2/pkg/options.sol/options.go | 181 + v2/pkg/ownable.sol/ownable.go | 407 + .../ownableupgradeable.go | 541 + v2/pkg/proxy.sol/proxy.go | 202 + v2/pkg/proxyadmin.sol/proxyadmin.go | 481 + v2/pkg/receiverevm.sol/receiverevm.go | 1052 ++ v2/pkg/reentrancyguard.sol/reentrancyguard.go | 181 + .../reentrancyguardupgradeable.go | 315 + v2/pkg/safeconsole.sol/safeconsole.go | 203 + v2/pkg/safeerc20.sol/safeerc20.go | 203 + v2/pkg/senderzevm.sol/senderzevm.go | 276 + v2/pkg/signedmath.sol/signedmath.go | 203 + v2/pkg/stdassertions.sol/stdassertions.go | 3173 +++++ v2/pkg/stdchains.sol/stdchains.go | 181 + v2/pkg/stdcheats.sol/stdcheats.go | 181 + v2/pkg/stdcheats.sol/stdcheatssafe.go | 181 + v2/pkg/stderror.sol/stderror.go | 482 + v2/pkg/stdinvariant.sol/stdinvariant.go | 509 + v2/pkg/stdjson.sol/stdjson.go | 203 + v2/pkg/stdmath.sol/stdmath.go | 203 + v2/pkg/stdstorage.sol/stdstorage.go | 203 + v2/pkg/stdstorage.sol/stdstoragesafe.go | 475 + v2/pkg/stdstyle.sol/stdstyle.go | 203 + v2/pkg/stdtoml.sol/stdtoml.go | 203 + v2/pkg/stdutils.sol/stdutils.go | 181 + v2/pkg/storageslot.sol/storageslot.go | 203 + v2/pkg/strings.sol/strings.go | 203 + v2/pkg/systemcontract.sol/systemcontract.go | 1421 ++ .../systemcontracterrors.go | 181 + .../systemcontracterrors.go | 181 + .../systemcontractmock.go | 1176 ++ v2/pkg/test.sol/test.go | 3532 +++++ v2/pkg/testerc20.sol/testerc20.go | 781 ++ v2/pkg/testzcontract.sol/testzcontract.go | 577 + .../itransparentupgradeableproxy.go | 625 + .../transparentupgradeableproxy.go | 503 + .../upgradeablebeacon.go | 625 + v2/pkg/upgrades.sol/unsafeupgrades.go | 203 + v2/pkg/upgrades.sol/upgrades.go | 203 + v2/pkg/utils.sol/utils.go | 203 + v2/pkg/utils/strings.sol/strings.go | 203 + v2/pkg/uupsupgradeable.sol/uupsupgradeable.go | 542 + v2/pkg/versions.sol/versions.go | 203 + v2/pkg/vm.sol/vm.go | 11096 ++++++++++++++++ v2/pkg/vm.sol/vmsafe.go | 9344 +++++++++++++ v2/pkg/wzeta.sol/weth9.go | 1113 ++ v2/pkg/zcontract.sol/universalcontract.go | 237 + v2/pkg/zcontract.sol/zcontract.go | 209 + v2/pkg/zeta.non-eth.sol/zetaerrors.go | 181 + v2/pkg/zeta.non-eth.sol/zetanoneth.go | 1664 +++ .../zeta.non-eth.sol/zetanonethinterface.go | 687 + .../zetaconnectornative.go | 817 ++ .../zetaconnectornativetest.go | 5773 ++++++++ .../zetaconnectornewbase.go | 795 ++ .../zetaconnectornonnative.go | 1003 ++ .../zetaconnectornonnativetest.go | 5605 ++++++++ v2/pkg/zrc20new.sol/zrc20errors.go | 181 + v2/pkg/zrc20new.sol/zrc20new.go | 1831 +++ v2/scripts/generate_go.sh | 83 + v2/scripts/localnet/EvmCall.s.sol | 4 +- v2/scripts/localnet/EvmDepositAndCall.s.sol | 4 +- v2/scripts/localnet/ZevmCall.s.sol | 4 +- v2/scripts/localnet/ZevmWithdrawAndCall.s.sol | 4 +- v2/src/evm/ERC20CustodyNew.sol | 2 +- v2/src/evm/GatewayEVM.sol | 2 +- v2/src/evm/ZetaConnectorNative.sol | 2 +- v2/src/evm/ZetaConnectorNewBase.sol | 2 +- v2/src/evm/ZetaConnectorNonNative.sol | 2 +- v2/src/evm/interfaces/IERC20CustodyNew.sol | 2 +- v2/src/evm/interfaces/IGatewayEVM.sol | 2 +- v2/src/evm/interfaces/IZetaConnector.sol | 2 +- v2/src/evm/interfaces/IZetaNonEthNew.sol | 2 +- v2/src/zevm/GatewayZEVM.sol | 2 +- v2/src/zevm/interfaces/IGatewayZEVM.sol | 2 +- v2/src/zevm/interfaces/ISystem.sol | 2 +- v2/src/zevm/interfaces/IWZETA.sol | 2 +- v2/src/zevm/interfaces/IZRC20.sol | 2 +- v2/src/zevm/interfaces/zContract.sol | 2 +- v2/test/GatewayEVM.t.sol | 2 +- v2/test/GatewayEVMUpgrade.t.sol | 2 +- v2/test/GatewayEVMZEVM.t.sol | 2 +- v2/test/GatewayZEVM.t.sol | 2 +- v2/test/ZetaConnectorNative.t.sol | 2 +- v2/test/ZetaConnectorNonNative.t.sol | 2 +- v2/test/fuzz/ERC20CustodyNewEchidnaTest.sol | 2 +- v2/test/fuzz/GatewayEVMEchidnaTest.sol | 2 +- v2/test/utils/GatewayEVMUpgradeTest.sol | 2 +- v2/test/utils/IReceiverEVM.sol | 2 +- v2/test/utils/ReceiverEVM.sol | 2 +- v2/test/utils/SenderZEVM.sol | 2 +- v2/test/utils/SystemContract.sol | 2 +- v2/test/utils/SystemContractMock.sol | 2 +- v2/test/utils/TestERC20.sol | 2 +- v2/test/utils/TestZContract.sol | 2 +- v2/test/utils/WZETA.sol | 2 +- v2/test/utils/ZRC20New.sol | 2 +- v2/test/utils/Zeta.non-eth.sol | 2 +- v2/typechain-types/Address.ts | 69 + v2/typechain-types/BeaconProxy.ts | 105 + v2/typechain-types/ContextUpgradeable.ts | 105 + v2/typechain-types/ERC1967Proxy.ts | 105 + v2/typechain-types/ERC1967Utils.ts | 168 + v2/typechain-types/ERC20.ts | 286 + v2/typechain-types/ERC20/IERC20.ts | 262 + v2/typechain-types/ERC20/index.ts | 4 + v2/typechain-types/ERC20Burnable.ts | 313 + v2/typechain-types/ERC20CustodyNew.ts | 312 + .../ERC20CustodyNewEchidnaTest.ts | 356 + v2/typechain-types/GatewayEVM.ts | 829 ++ v2/typechain-types/GatewayEVMEchidnaTest.ts | 873 ++ v2/typechain-types/GatewayEVMUpgradeTest.ts | 866 ++ v2/typechain-types/GatewayZEVM.ts | 732 + v2/typechain-types/IBeacon.ts | 90 + v2/typechain-types/IERC165.ts | 94 + v2/typechain-types/IERC1967.ts | 168 + v2/typechain-types/IERC20.ts | 286 + .../IERC20CustodyNewErrors.ts | 69 + .../IERC20CustodyNewEvents.ts | 201 + .../IERC20CustodyNew.sol/index.ts | 5 + v2/typechain-types/IERC20Metadata.ts | 286 + v2/typechain-types/IERC20Permit.ts | 143 + v2/typechain-types/IERC721.sol/IERC721.ts | 397 + .../IERC721.sol/IERC721Enumerable.ts | 447 + .../IERC721.sol/IERC721Metadata.ts | 424 + .../IERC721.sol/IERC721TokenReceiver.ts | 110 + v2/typechain-types/IERC721.sol/index.ts | 7 + .../IGatewayEVM.sol/IGatewayEVM.ts | 161 + .../IGatewayEVM.sol/IGatewayEVMErrors.ts | 69 + .../IGatewayEVM.sol/IGatewayEVMEvents.ts | 325 + .../IGatewayEVM.sol/Revertable.ts | 84 + v2/typechain-types/IGatewayEVM.sol/index.ts | 7 + .../IGatewayZEVM.sol/IGatewayZEVM.ts | 247 + .../IGatewayZEVM.sol/IGatewayZEVMErrors.ts | 69 + .../IGatewayZEVM.sol/IGatewayZEVMEvents.ts | 165 + v2/typechain-types/IGatewayZEVM.sol/index.ts | 6 + v2/typechain-types/IMulticall3.ts | 416 + v2/typechain-types/IProxyAdmin.ts | 117 + .../IReceiverEVM.sol/IReceiverEVMEvents.ts | 277 + v2/typechain-types/IReceiverEVM.sol/index.ts | 4 + v2/typechain-types/ISystem.ts | 176 + v2/typechain-types/IUpgradeableBeacon.ts | 88 + v2/typechain-types/IUpgradeableProxy.ts | 111 + v2/typechain-types/IWZETA.sol/IWETH9.ts | 345 + v2/typechain-types/IWZETA.sol/index.ts | 4 + v2/typechain-types/IZRC20.sol/IZRC20.ts | 259 + .../IZRC20.sol/IZRC20Metadata.ts | 283 + v2/typechain-types/IZRC20.sol/ZRC20Events.ts | 330 + v2/typechain-types/IZRC20.sol/index.ts | 6 + .../IZetaConnectorEvents.ts | 182 + .../IZetaConnector.sol/index.ts | 4 + v2/typechain-types/IZetaNonEthNew.ts | 300 + v2/typechain-types/Initializable.ts | 105 + v2/typechain-types/Math.ts | 69 + v2/typechain-types/MockERC20.ts | 370 + v2/typechain-types/MockERC721.ts | 433 + v2/typechain-types/Ownable.ts | 153 + v2/typechain-types/OwnableUpgradeable.ts | 186 + v2/typechain-types/Proxy.ts | 69 + v2/typechain-types/ProxyAdmin.ts | 192 + v2/typechain-types/ReceiverEVM.ts | 396 + v2/typechain-types/ReentrancyGuard.ts | 69 + .../ReentrancyGuardUpgradeable.ts | 105 + v2/typechain-types/SafeERC20.ts | 69 + v2/typechain-types/SenderZEVM.ts | 151 + v2/typechain-types/StdAssertions.ts | 762 ++ v2/typechain-types/StdError.sol/StdError.ts | 199 + v2/typechain-types/StdError.sol/index.ts | 4 + v2/typechain-types/StdInvariant.ts | 273 + .../StdStorage.sol/StdStorageSafe.ts | 153 + v2/typechain-types/StdStorage.sol/index.ts | 4 + .../SystemContract.sol/SystemContract.ts | 569 + .../SystemContractErrors.ts | 69 + .../SystemContract.sol/index.ts | 5 + .../SystemContractErrors.ts | 69 + .../SystemContractMock.ts | 456 + .../SystemContractMock.sol/index.ts | 5 + v2/typechain-types/Test.ts | 966 ++ v2/typechain-types/TestERC20.ts | 305 + v2/typechain-types/TestZContract.ts | 263 + .../ITransparentUpgradeableProxy.ts | 197 + .../TransparentUpgradeableProxy.ts | 136 + .../TransparentUpgradeableProxy.sol/index.ts | 5 + v2/typechain-types/UUPSUpgradeable.ts | 196 + v2/typechain-types/UpgradeableBeacon.ts | 221 + v2/typechain-types/Vm.sol/Vm.ts | 8230 ++++++++++++ v2/typechain-types/Vm.sol/VmSafe.ts | 6635 +++++++++ v2/typechain-types/Vm.sol/index.ts | 5 + v2/typechain-types/WZETA.sol/WETH9.ts | 369 + v2/typechain-types/WZETA.sol/index.ts | 4 + .../ZRC20New.sol/ZRC20Errors.ts | 69 + v2/typechain-types/ZRC20New.sol/ZRC20New.ts | 661 + v2/typechain-types/ZRC20New.sol/index.ts | 5 + .../Zeta.non-eth.sol/ZetaErrors.ts | 69 + .../Zeta.non-eth.sol/ZetaNonEth.ts | 595 + .../Zeta.non-eth.sol/ZetaNonEthInterface.ts | 300 + v2/typechain-types/Zeta.non-eth.sol/index.ts | 6 + v2/typechain-types/ZetaConnectorNative.ts | 319 + v2/typechain-types/ZetaConnectorNewBase.ts | 319 + v2/typechain-types/ZetaConnectorNonNative.ts | 379 + v2/typechain-types/common.ts | 131 + .../draft-IERC1822.sol/IERC1822Proxiable.ts | 90 + .../draft-IERC1822.sol/index.ts | 4 + .../draft-IERC6093.sol/IERC1155Errors.ts | 69 + .../draft-IERC6093.sol/IERC20Errors.ts | 69 + .../draft-IERC6093.sol/IERC721Errors.ts | 69 + .../draft-IERC6093.sol/index.ts | 6 + .../factories/Address__factory.ts | 88 + .../factories/BeaconProxy__factory.ts | 149 + .../factories/ContextUpgradeable__factory.ts | 48 + .../factories/ERC1967Proxy__factory.ts | 141 + .../factories/ERC1967Utils__factory.ts | 147 + .../factories/ERC20/IERC20__factory.ts | 202 + v2/typechain-types/factories/ERC20/index.ts | 4 + .../factories/ERC20Burnable__factory.ts | 361 + .../ERC20CustodyNewEchidnaTest__factory.ts | 372 + .../factories/ERC20CustodyNew__factory.ts | 339 + .../factories/ERC20__factory.ts | 327 + .../GatewayEVMEchidnaTest__factory.ts | 864 ++ .../GatewayEVMUpgradeTest__factory.ts | 840 ++ .../factories/GatewayEVM__factory.ts | 803 ++ .../factories/GatewayZEVM__factory.ts | 808 ++ .../factories/IBeacon__factory.ts | 32 + .../factories/IERC165__factory.ts | 38 + .../factories/IERC1967__factory.ts | 64 + .../IERC20CustodyNewErrors__factory.ts | 39 + .../IERC20CustodyNewEvents__factory.ts | 116 + .../factories/IERC20CustodyNew.sol/index.ts | 5 + .../factories/IERC20Metadata__factory.ts | 247 + .../factories/IERC20Permit__factory.ts | 97 + .../factories/IERC20__factory.ts | 241 + .../IERC721.sol/IERC721Enumerable__factory.ts | 366 + .../IERC721.sol/IERC721Metadata__factory.ts | 355 + .../IERC721TokenReceiver__factory.ts | 63 + .../factories/IERC721.sol/IERC721__factory.ts | 304 + .../factories/IERC721.sol/index.ts | 7 + .../IGatewayEVMErrors__factory.ts | 65 + .../IGatewayEVMEvents__factory.ts | 199 + .../IGatewayEVM.sol/IGatewayEVM__factory.ts | 102 + .../IGatewayEVM.sol/Revertable__factory.ts | 35 + .../factories/IGatewayEVM.sol/index.ts | 7 + .../IGatewayZEVMErrors__factory.ts | 70 + .../IGatewayZEVMEvents__factory.ts | 99 + .../IGatewayZEVM.sol/IGatewayZEVM__factory.ts | 217 + .../factories/IGatewayZEVM.sol/index.ts | 6 + .../factories/IMulticall3__factory.ts | 457 + .../factories/IProxyAdmin__factory.ts | 60 + .../IReceiverEVMEvents__factory.ts | 156 + .../factories/IReceiverEVM.sol/index.ts | 4 + .../factories/ISystem__factory.ts | 115 + .../factories/IUpgradeableBeacon__factory.ts | 38 + .../factories/IUpgradeableProxy__factory.ts | 56 + .../factories/IWZETA.sol/IWETH9__factory.ts | 260 + .../factories/IWZETA.sol/index.ts | 4 + .../IZRC20.sol/IZRC20Metadata__factory.ts | 295 + .../factories/IZRC20.sol/IZRC20__factory.ts | 250 + .../IZRC20.sol/ZRC20Events__factory.ts | 173 + .../factories/IZRC20.sol/index.ts | 6 + .../IZetaConnectorEvents__factory.ts | 98 + .../factories/IZetaConnector.sol/index.ts | 4 + .../factories/IZetaNonEthNew__factory.ts | 249 + .../factories/Initializable__factory.ts | 45 + v2/typechain-types/factories/Math__factory.ts | 66 + .../factories/MockERC20__factory.ts | 381 + .../factories/MockERC721__factory.ts | 409 + .../factories/OwnableUpgradeable__factory.ts | 122 + .../factories/Ownable__factory.ts | 93 + .../factories/ProxyAdmin__factory.ts | 191 + .../factories/Proxy__factory.ts | 23 + .../factories/ReceiverEVM__factory.ts | 360 + .../ReentrancyGuardUpgradeable__factory.ts | 57 + .../factories/ReentrancyGuard__factory.ts | 30 + .../factories/SafeERC20__factory.ts | 93 + .../factories/SenderZEVM__factory.ts | 165 + .../factories/StdAssertions__factory.ts | 399 + .../StdError.sol/StdError__factory.ts | 178 + .../factories/StdError.sol/index.ts | 4 + .../factories/StdInvariant__factory.ts | 200 + .../StdStorage.sol/StdStorageSafe__factory.ts | 117 + .../factories/StdStorage.sol/index.ts | 4 + .../SystemContractErrors__factory.ts | 54 + .../SystemContract__factory.ts | 506 + .../factories/SystemContract.sol/index.ts | 5 + .../SystemContractErrors__factory.ts | 49 + .../SystemContractMock__factory.ts | 409 + .../factories/SystemContractMock.sol/index.ts | 5 + .../factories/TestERC20__factory.ts | 409 + .../factories/TestZContract__factory.ts | 236 + v2/typechain-types/factories/Test__factory.ts | 587 + .../ITransparentUpgradeableProxy__factory.ts | 92 + .../TransparentUpgradeableProxy__factory.ts | 202 + .../TransparentUpgradeableProxy.sol/index.ts | 5 + .../factories/UUPSUpgradeable__factory.ts | 153 + .../factories/UpgradeableBeacon__factory.ts | 226 + .../factories/Vm.sol/VmSafe__factory.ts | 7526 +++++++++++ .../factories/Vm.sol/Vm__factory.ts | 8965 +++++++++++++ v2/typechain-types/factories/Vm.sol/index.ts | 5 + .../factories/WZETA.sol/WETH9__factory.ts | 345 + .../factories/WZETA.sol/index.ts | 4 + .../ZRC20New.sol/ZRC20Errors__factory.ts | 62 + .../ZRC20New.sol/ZRC20New__factory.ts | 729 + .../factories/ZRC20New.sol/index.ts | 5 + .../Zeta.non-eth.sol/ZetaErrors__factory.ts | 76 + .../ZetaNonEthInterface__factory.ts | 253 + .../Zeta.non-eth.sol/ZetaNonEth__factory.ts | 680 + .../factories/Zeta.non-eth.sol/index.ts | 6 + .../factories/ZetaConnectorNative__factory.ts | 370 + .../ZetaConnectorNewBase__factory.ts | 244 + .../ZetaConnectorNonNative__factory.ts | 376 + .../IERC1822Proxiable__factory.ts | 38 + .../factories/draft-IERC1822.sol/index.ts | 4 + .../IERC1155Errors__factory.ts | 127 + .../IERC20Errors__factory.ts | 111 + .../IERC721Errors__factory.ts | 128 + .../factories/draft-IERC6093.sol/index.ts | 6 + v2/typechain-types/factories/index.ts | 73 + .../interfaces/IWZeta.sol/IWETH9__factory.ts | 263 + .../factories/interfaces/IWZeta.sol/index.ts | 4 + .../factories/interfaces/index.ts | 4 + .../factories/utils/Strings__factory.ts | 77 + v2/typechain-types/factories/utils/index.ts | 4 + .../UniversalContract__factory.ts | 115 + .../zContract.sol/ZContract__factory.ts | 67 + .../factories/zContract.sol/index.ts | 5 + v2/typechain-types/index.ts | 227 + .../interfaces/IWZeta.sol/IWETH9.ts | 345 + .../interfaces/IWZeta.sol/index.ts | 4 + v2/typechain-types/interfaces/index.ts | 5 + v2/typechain-types/utils/Strings.ts | 69 + v2/typechain-types/utils/index.ts | 4 + .../zContract.sol/UniversalContract.ts | 164 + v2/typechain-types/zContract.sol/ZContract.ts | 122 + v2/typechain-types/zContract.sol/index.ts | 5 + v2/yarn.lock | 233 +- 399 files changed, 204024 insertions(+), 46 deletions(-) create mode 100644 .github/workflows/generated-files_v2.yaml create mode 100644 v2/pkg/address.sol/address.go create mode 100644 v2/pkg/base.sol/commonbase.go create mode 100644 v2/pkg/base.sol/scriptbase.go create mode 100644 v2/pkg/base.sol/testbase.go create mode 100644 v2/pkg/beaconproxy.sol/beaconproxy.go create mode 100644 v2/pkg/console.sol/console.go create mode 100644 v2/pkg/console2.sol/console2.go create mode 100644 v2/pkg/context.sol/context.go create mode 100644 v2/pkg/contextupgradeable.sol/contextupgradeable.go create mode 100644 v2/pkg/core.sol/core.go create mode 100644 v2/pkg/defender.sol/defender.go create mode 100644 v2/pkg/defenderdeploy.sol/defenderdeploy.go create mode 100644 v2/pkg/erc1967proxy.sol/erc1967proxy.go create mode 100644 v2/pkg/erc1967utils.sol/erc1967utils.go create mode 100644 v2/pkg/erc20.sol/erc20.go create mode 100644 v2/pkg/erc20/ierc20.sol/ierc20.go create mode 100644 v2/pkg/erc20burnable.sol/erc20burnable.go create mode 100644 v2/pkg/erc20custodynew.sol/erc20custodynew.go create mode 100644 v2/pkg/erc20custodynewechidnatest.sol/erc20custodynewechidnatest.go create mode 100644 v2/pkg/gatewayevm.sol/gatewayevm.go create mode 100644 v2/pkg/gatewayevm.t.sol/gatewayevminboundtest.go create mode 100644 v2/pkg/gatewayevm.t.sol/gatewayevmtest.go create mode 100644 v2/pkg/gatewayevmechidnatest.sol/gatewayevmechidnatest.go create mode 100644 v2/pkg/gatewayevmupgrade.t.sol/gatewayevmuupsupgradetest.go create mode 100644 v2/pkg/gatewayevmupgradetest.sol/gatewayevmupgradetest.go create mode 100644 v2/pkg/gatewayevmzevm.t.sol/gatewayevmzevmtest.go create mode 100644 v2/pkg/gatewayzevm.sol/gatewayzevm.go create mode 100644 v2/pkg/gatewayzevm.t.sol/gatewayzevminboundtest.go create mode 100644 v2/pkg/gatewayzevm.t.sol/gatewayzevmoutboundtest.go create mode 100644 v2/pkg/ibeacon.sol/ibeacon.go create mode 100644 v2/pkg/ierc165.sol/ierc165.go create mode 100644 v2/pkg/ierc1967.sol/ierc1967.go create mode 100644 v2/pkg/ierc20.sol/ierc20.go create mode 100644 v2/pkg/ierc20custodynew.sol/ierc20custodynewerrors.go create mode 100644 v2/pkg/ierc20custodynew.sol/ierc20custodynewevents.go create mode 100644 v2/pkg/ierc20metadata.sol/ierc20metadata.go create mode 100644 v2/pkg/ierc20permit.sol/ierc20permit.go create mode 100644 v2/pkg/ierc721.sol/ierc721.go create mode 100644 v2/pkg/ierc721.sol/ierc721enumerable.go create mode 100644 v2/pkg/ierc721.sol/ierc721metadata.go create mode 100644 v2/pkg/ierc721.sol/ierc721tokenreceiver.go create mode 100644 v2/pkg/igatewayevm.sol/igatewayevm.go create mode 100644 v2/pkg/igatewayevm.sol/igatewayevmerrors.go create mode 100644 v2/pkg/igatewayevm.sol/igatewayevmevents.go create mode 100644 v2/pkg/igatewayevm.sol/revertable.go create mode 100644 v2/pkg/igatewayzevm.sol/igatewayzevm.go create mode 100644 v2/pkg/igatewayzevm.sol/igatewayzevmerrors.go create mode 100644 v2/pkg/igatewayzevm.sol/igatewayzevmevents.go create mode 100644 v2/pkg/imulticall3.sol/imulticall3.go create mode 100644 v2/pkg/initializable.sol/initializable.go create mode 100644 v2/pkg/iproxyadmin.sol/iproxyadmin.go create mode 100644 v2/pkg/ireceiverevm.sol/ireceiverevmevents.go create mode 100644 v2/pkg/isystem.sol/isystem.go create mode 100644 v2/pkg/iupgradeablebeacon.sol/iupgradeablebeacon.go create mode 100644 v2/pkg/iupgradeableproxy.sol/iupgradeableproxy.go create mode 100644 v2/pkg/iwzeta.sol/iweth9.go create mode 100644 v2/pkg/izetaconnector.sol/izetaconnectorevents.go create mode 100644 v2/pkg/izetanonethnew.sol/izetanonethnew.go create mode 100644 v2/pkg/izrc20.sol/izrc20.go create mode 100644 v2/pkg/izrc20.sol/izrc20metadata.go create mode 100644 v2/pkg/izrc20.sol/zrc20events.go create mode 100644 v2/pkg/math.sol/math.go create mode 100644 v2/pkg/mockerc20.sol/mockerc20.go create mode 100644 v2/pkg/mockerc721.sol/mockerc721.go create mode 100644 v2/pkg/options.sol/options.go create mode 100644 v2/pkg/ownable.sol/ownable.go create mode 100644 v2/pkg/ownableupgradeable.sol/ownableupgradeable.go create mode 100644 v2/pkg/proxy.sol/proxy.go create mode 100644 v2/pkg/proxyadmin.sol/proxyadmin.go create mode 100644 v2/pkg/receiverevm.sol/receiverevm.go create mode 100644 v2/pkg/reentrancyguard.sol/reentrancyguard.go create mode 100644 v2/pkg/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go create mode 100644 v2/pkg/safeconsole.sol/safeconsole.go create mode 100644 v2/pkg/safeerc20.sol/safeerc20.go create mode 100644 v2/pkg/senderzevm.sol/senderzevm.go create mode 100644 v2/pkg/signedmath.sol/signedmath.go create mode 100644 v2/pkg/stdassertions.sol/stdassertions.go create mode 100644 v2/pkg/stdchains.sol/stdchains.go create mode 100644 v2/pkg/stdcheats.sol/stdcheats.go create mode 100644 v2/pkg/stdcheats.sol/stdcheatssafe.go create mode 100644 v2/pkg/stderror.sol/stderror.go create mode 100644 v2/pkg/stdinvariant.sol/stdinvariant.go create mode 100644 v2/pkg/stdjson.sol/stdjson.go create mode 100644 v2/pkg/stdmath.sol/stdmath.go create mode 100644 v2/pkg/stdstorage.sol/stdstorage.go create mode 100644 v2/pkg/stdstorage.sol/stdstoragesafe.go create mode 100644 v2/pkg/stdstyle.sol/stdstyle.go create mode 100644 v2/pkg/stdtoml.sol/stdtoml.go create mode 100644 v2/pkg/stdutils.sol/stdutils.go create mode 100644 v2/pkg/storageslot.sol/storageslot.go create mode 100644 v2/pkg/strings.sol/strings.go create mode 100644 v2/pkg/systemcontract.sol/systemcontract.go create mode 100644 v2/pkg/systemcontract.sol/systemcontracterrors.go create mode 100644 v2/pkg/systemcontractmock.sol/systemcontracterrors.go create mode 100644 v2/pkg/systemcontractmock.sol/systemcontractmock.go create mode 100644 v2/pkg/test.sol/test.go create mode 100644 v2/pkg/testerc20.sol/testerc20.go create mode 100644 v2/pkg/testzcontract.sol/testzcontract.go create mode 100644 v2/pkg/transparentupgradeableproxy.sol/itransparentupgradeableproxy.go create mode 100644 v2/pkg/transparentupgradeableproxy.sol/transparentupgradeableproxy.go create mode 100644 v2/pkg/upgradeablebeacon.sol/upgradeablebeacon.go create mode 100644 v2/pkg/upgrades.sol/unsafeupgrades.go create mode 100644 v2/pkg/upgrades.sol/upgrades.go create mode 100644 v2/pkg/utils.sol/utils.go create mode 100644 v2/pkg/utils/strings.sol/strings.go create mode 100644 v2/pkg/uupsupgradeable.sol/uupsupgradeable.go create mode 100644 v2/pkg/versions.sol/versions.go create mode 100644 v2/pkg/vm.sol/vm.go create mode 100644 v2/pkg/vm.sol/vmsafe.go create mode 100644 v2/pkg/wzeta.sol/weth9.go create mode 100644 v2/pkg/zcontract.sol/universalcontract.go create mode 100644 v2/pkg/zcontract.sol/zcontract.go create mode 100644 v2/pkg/zeta.non-eth.sol/zetaerrors.go create mode 100644 v2/pkg/zeta.non-eth.sol/zetanoneth.go create mode 100644 v2/pkg/zeta.non-eth.sol/zetanonethinterface.go create mode 100644 v2/pkg/zetaconnectornative.sol/zetaconnectornative.go create mode 100644 v2/pkg/zetaconnectornative.t.sol/zetaconnectornativetest.go create mode 100644 v2/pkg/zetaconnectornewbase.sol/zetaconnectornewbase.go create mode 100644 v2/pkg/zetaconnectornonnative.sol/zetaconnectornonnative.go create mode 100644 v2/pkg/zetaconnectornonnative.t.sol/zetaconnectornonnativetest.go create mode 100644 v2/pkg/zrc20new.sol/zrc20errors.go create mode 100644 v2/pkg/zrc20new.sol/zrc20new.go create mode 100755 v2/scripts/generate_go.sh create mode 100644 v2/typechain-types/Address.ts create mode 100644 v2/typechain-types/BeaconProxy.ts create mode 100644 v2/typechain-types/ContextUpgradeable.ts create mode 100644 v2/typechain-types/ERC1967Proxy.ts create mode 100644 v2/typechain-types/ERC1967Utils.ts create mode 100644 v2/typechain-types/ERC20.ts create mode 100644 v2/typechain-types/ERC20/IERC20.ts create mode 100644 v2/typechain-types/ERC20/index.ts create mode 100644 v2/typechain-types/ERC20Burnable.ts create mode 100644 v2/typechain-types/ERC20CustodyNew.ts create mode 100644 v2/typechain-types/ERC20CustodyNewEchidnaTest.ts create mode 100644 v2/typechain-types/GatewayEVM.ts create mode 100644 v2/typechain-types/GatewayEVMEchidnaTest.ts create mode 100644 v2/typechain-types/GatewayEVMUpgradeTest.ts create mode 100644 v2/typechain-types/GatewayZEVM.ts create mode 100644 v2/typechain-types/IBeacon.ts create mode 100644 v2/typechain-types/IERC165.ts create mode 100644 v2/typechain-types/IERC1967.ts create mode 100644 v2/typechain-types/IERC20.ts create mode 100644 v2/typechain-types/IERC20CustodyNew.sol/IERC20CustodyNewErrors.ts create mode 100644 v2/typechain-types/IERC20CustodyNew.sol/IERC20CustodyNewEvents.ts create mode 100644 v2/typechain-types/IERC20CustodyNew.sol/index.ts create mode 100644 v2/typechain-types/IERC20Metadata.ts create mode 100644 v2/typechain-types/IERC20Permit.ts create mode 100644 v2/typechain-types/IERC721.sol/IERC721.ts create mode 100644 v2/typechain-types/IERC721.sol/IERC721Enumerable.ts create mode 100644 v2/typechain-types/IERC721.sol/IERC721Metadata.ts create mode 100644 v2/typechain-types/IERC721.sol/IERC721TokenReceiver.ts create mode 100644 v2/typechain-types/IERC721.sol/index.ts create mode 100644 v2/typechain-types/IGatewayEVM.sol/IGatewayEVM.ts create mode 100644 v2/typechain-types/IGatewayEVM.sol/IGatewayEVMErrors.ts create mode 100644 v2/typechain-types/IGatewayEVM.sol/IGatewayEVMEvents.ts create mode 100644 v2/typechain-types/IGatewayEVM.sol/Revertable.ts create mode 100644 v2/typechain-types/IGatewayEVM.sol/index.ts create mode 100644 v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVM.ts create mode 100644 v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVMErrors.ts create mode 100644 v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVMEvents.ts create mode 100644 v2/typechain-types/IGatewayZEVM.sol/index.ts create mode 100644 v2/typechain-types/IMulticall3.ts create mode 100644 v2/typechain-types/IProxyAdmin.ts create mode 100644 v2/typechain-types/IReceiverEVM.sol/IReceiverEVMEvents.ts create mode 100644 v2/typechain-types/IReceiverEVM.sol/index.ts create mode 100644 v2/typechain-types/ISystem.ts create mode 100644 v2/typechain-types/IUpgradeableBeacon.ts create mode 100644 v2/typechain-types/IUpgradeableProxy.ts create mode 100644 v2/typechain-types/IWZETA.sol/IWETH9.ts create mode 100644 v2/typechain-types/IWZETA.sol/index.ts create mode 100644 v2/typechain-types/IZRC20.sol/IZRC20.ts create mode 100644 v2/typechain-types/IZRC20.sol/IZRC20Metadata.ts create mode 100644 v2/typechain-types/IZRC20.sol/ZRC20Events.ts create mode 100644 v2/typechain-types/IZRC20.sol/index.ts create mode 100644 v2/typechain-types/IZetaConnector.sol/IZetaConnectorEvents.ts create mode 100644 v2/typechain-types/IZetaConnector.sol/index.ts create mode 100644 v2/typechain-types/IZetaNonEthNew.ts create mode 100644 v2/typechain-types/Initializable.ts create mode 100644 v2/typechain-types/Math.ts create mode 100644 v2/typechain-types/MockERC20.ts create mode 100644 v2/typechain-types/MockERC721.ts create mode 100644 v2/typechain-types/Ownable.ts create mode 100644 v2/typechain-types/OwnableUpgradeable.ts create mode 100644 v2/typechain-types/Proxy.ts create mode 100644 v2/typechain-types/ProxyAdmin.ts create mode 100644 v2/typechain-types/ReceiverEVM.ts create mode 100644 v2/typechain-types/ReentrancyGuard.ts create mode 100644 v2/typechain-types/ReentrancyGuardUpgradeable.ts create mode 100644 v2/typechain-types/SafeERC20.ts create mode 100644 v2/typechain-types/SenderZEVM.ts create mode 100644 v2/typechain-types/StdAssertions.ts create mode 100644 v2/typechain-types/StdError.sol/StdError.ts create mode 100644 v2/typechain-types/StdError.sol/index.ts create mode 100644 v2/typechain-types/StdInvariant.ts create mode 100644 v2/typechain-types/StdStorage.sol/StdStorageSafe.ts create mode 100644 v2/typechain-types/StdStorage.sol/index.ts create mode 100644 v2/typechain-types/SystemContract.sol/SystemContract.ts create mode 100644 v2/typechain-types/SystemContract.sol/SystemContractErrors.ts create mode 100644 v2/typechain-types/SystemContract.sol/index.ts create mode 100644 v2/typechain-types/SystemContractMock.sol/SystemContractErrors.ts create mode 100644 v2/typechain-types/SystemContractMock.sol/SystemContractMock.ts create mode 100644 v2/typechain-types/SystemContractMock.sol/index.ts create mode 100644 v2/typechain-types/Test.ts create mode 100644 v2/typechain-types/TestERC20.ts create mode 100644 v2/typechain-types/TestZContract.ts create mode 100644 v2/typechain-types/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.ts create mode 100644 v2/typechain-types/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.ts create mode 100644 v2/typechain-types/TransparentUpgradeableProxy.sol/index.ts create mode 100644 v2/typechain-types/UUPSUpgradeable.ts create mode 100644 v2/typechain-types/UpgradeableBeacon.ts create mode 100644 v2/typechain-types/Vm.sol/Vm.ts create mode 100644 v2/typechain-types/Vm.sol/VmSafe.ts create mode 100644 v2/typechain-types/Vm.sol/index.ts create mode 100644 v2/typechain-types/WZETA.sol/WETH9.ts create mode 100644 v2/typechain-types/WZETA.sol/index.ts create mode 100644 v2/typechain-types/ZRC20New.sol/ZRC20Errors.ts create mode 100644 v2/typechain-types/ZRC20New.sol/ZRC20New.ts create mode 100644 v2/typechain-types/ZRC20New.sol/index.ts create mode 100644 v2/typechain-types/Zeta.non-eth.sol/ZetaErrors.ts create mode 100644 v2/typechain-types/Zeta.non-eth.sol/ZetaNonEth.ts create mode 100644 v2/typechain-types/Zeta.non-eth.sol/ZetaNonEthInterface.ts create mode 100644 v2/typechain-types/Zeta.non-eth.sol/index.ts create mode 100644 v2/typechain-types/ZetaConnectorNative.ts create mode 100644 v2/typechain-types/ZetaConnectorNewBase.ts create mode 100644 v2/typechain-types/ZetaConnectorNonNative.ts create mode 100644 v2/typechain-types/common.ts create mode 100644 v2/typechain-types/draft-IERC1822.sol/IERC1822Proxiable.ts create mode 100644 v2/typechain-types/draft-IERC1822.sol/index.ts create mode 100644 v2/typechain-types/draft-IERC6093.sol/IERC1155Errors.ts create mode 100644 v2/typechain-types/draft-IERC6093.sol/IERC20Errors.ts create mode 100644 v2/typechain-types/draft-IERC6093.sol/IERC721Errors.ts create mode 100644 v2/typechain-types/draft-IERC6093.sol/index.ts create mode 100644 v2/typechain-types/factories/Address__factory.ts create mode 100644 v2/typechain-types/factories/BeaconProxy__factory.ts create mode 100644 v2/typechain-types/factories/ContextUpgradeable__factory.ts create mode 100644 v2/typechain-types/factories/ERC1967Proxy__factory.ts create mode 100644 v2/typechain-types/factories/ERC1967Utils__factory.ts create mode 100644 v2/typechain-types/factories/ERC20/IERC20__factory.ts create mode 100644 v2/typechain-types/factories/ERC20/index.ts create mode 100644 v2/typechain-types/factories/ERC20Burnable__factory.ts create mode 100644 v2/typechain-types/factories/ERC20CustodyNewEchidnaTest__factory.ts create mode 100644 v2/typechain-types/factories/ERC20CustodyNew__factory.ts create mode 100644 v2/typechain-types/factories/ERC20__factory.ts create mode 100644 v2/typechain-types/factories/GatewayEVMEchidnaTest__factory.ts create mode 100644 v2/typechain-types/factories/GatewayEVMUpgradeTest__factory.ts create mode 100644 v2/typechain-types/factories/GatewayEVM__factory.ts create mode 100644 v2/typechain-types/factories/GatewayZEVM__factory.ts create mode 100644 v2/typechain-types/factories/IBeacon__factory.ts create mode 100644 v2/typechain-types/factories/IERC165__factory.ts create mode 100644 v2/typechain-types/factories/IERC1967__factory.ts create mode 100644 v2/typechain-types/factories/IERC20CustodyNew.sol/IERC20CustodyNewErrors__factory.ts create mode 100644 v2/typechain-types/factories/IERC20CustodyNew.sol/IERC20CustodyNewEvents__factory.ts create mode 100644 v2/typechain-types/factories/IERC20CustodyNew.sol/index.ts create mode 100644 v2/typechain-types/factories/IERC20Metadata__factory.ts create mode 100644 v2/typechain-types/factories/IERC20Permit__factory.ts create mode 100644 v2/typechain-types/factories/IERC20__factory.ts create mode 100644 v2/typechain-types/factories/IERC721.sol/IERC721Enumerable__factory.ts create mode 100644 v2/typechain-types/factories/IERC721.sol/IERC721Metadata__factory.ts create mode 100644 v2/typechain-types/factories/IERC721.sol/IERC721TokenReceiver__factory.ts create mode 100644 v2/typechain-types/factories/IERC721.sol/IERC721__factory.ts create mode 100644 v2/typechain-types/factories/IERC721.sol/index.ts create mode 100644 v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts create mode 100644 v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts create mode 100644 v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVM__factory.ts create mode 100644 v2/typechain-types/factories/IGatewayEVM.sol/Revertable__factory.ts create mode 100644 v2/typechain-types/factories/IGatewayEVM.sol/index.ts create mode 100644 v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts create mode 100644 v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts create mode 100644 v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVM__factory.ts create mode 100644 v2/typechain-types/factories/IGatewayZEVM.sol/index.ts create mode 100644 v2/typechain-types/factories/IMulticall3__factory.ts create mode 100644 v2/typechain-types/factories/IProxyAdmin__factory.ts create mode 100644 v2/typechain-types/factories/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts create mode 100644 v2/typechain-types/factories/IReceiverEVM.sol/index.ts create mode 100644 v2/typechain-types/factories/ISystem__factory.ts create mode 100644 v2/typechain-types/factories/IUpgradeableBeacon__factory.ts create mode 100644 v2/typechain-types/factories/IUpgradeableProxy__factory.ts create mode 100644 v2/typechain-types/factories/IWZETA.sol/IWETH9__factory.ts create mode 100644 v2/typechain-types/factories/IWZETA.sol/index.ts create mode 100644 v2/typechain-types/factories/IZRC20.sol/IZRC20Metadata__factory.ts create mode 100644 v2/typechain-types/factories/IZRC20.sol/IZRC20__factory.ts create mode 100644 v2/typechain-types/factories/IZRC20.sol/ZRC20Events__factory.ts create mode 100644 v2/typechain-types/factories/IZRC20.sol/index.ts create mode 100644 v2/typechain-types/factories/IZetaConnector.sol/IZetaConnectorEvents__factory.ts create mode 100644 v2/typechain-types/factories/IZetaConnector.sol/index.ts create mode 100644 v2/typechain-types/factories/IZetaNonEthNew__factory.ts create mode 100644 v2/typechain-types/factories/Initializable__factory.ts create mode 100644 v2/typechain-types/factories/Math__factory.ts create mode 100644 v2/typechain-types/factories/MockERC20__factory.ts create mode 100644 v2/typechain-types/factories/MockERC721__factory.ts create mode 100644 v2/typechain-types/factories/OwnableUpgradeable__factory.ts create mode 100644 v2/typechain-types/factories/Ownable__factory.ts create mode 100644 v2/typechain-types/factories/ProxyAdmin__factory.ts create mode 100644 v2/typechain-types/factories/Proxy__factory.ts create mode 100644 v2/typechain-types/factories/ReceiverEVM__factory.ts create mode 100644 v2/typechain-types/factories/ReentrancyGuardUpgradeable__factory.ts create mode 100644 v2/typechain-types/factories/ReentrancyGuard__factory.ts create mode 100644 v2/typechain-types/factories/SafeERC20__factory.ts create mode 100644 v2/typechain-types/factories/SenderZEVM__factory.ts create mode 100644 v2/typechain-types/factories/StdAssertions__factory.ts create mode 100644 v2/typechain-types/factories/StdError.sol/StdError__factory.ts create mode 100644 v2/typechain-types/factories/StdError.sol/index.ts create mode 100644 v2/typechain-types/factories/StdInvariant__factory.ts create mode 100644 v2/typechain-types/factories/StdStorage.sol/StdStorageSafe__factory.ts create mode 100644 v2/typechain-types/factories/StdStorage.sol/index.ts create mode 100644 v2/typechain-types/factories/SystemContract.sol/SystemContractErrors__factory.ts create mode 100644 v2/typechain-types/factories/SystemContract.sol/SystemContract__factory.ts create mode 100644 v2/typechain-types/factories/SystemContract.sol/index.ts create mode 100644 v2/typechain-types/factories/SystemContractMock.sol/SystemContractErrors__factory.ts create mode 100644 v2/typechain-types/factories/SystemContractMock.sol/SystemContractMock__factory.ts create mode 100644 v2/typechain-types/factories/SystemContractMock.sol/index.ts create mode 100644 v2/typechain-types/factories/TestERC20__factory.ts create mode 100644 v2/typechain-types/factories/TestZContract__factory.ts create mode 100644 v2/typechain-types/factories/Test__factory.ts create mode 100644 v2/typechain-types/factories/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.ts create mode 100644 v2/typechain-types/factories/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.ts create mode 100644 v2/typechain-types/factories/TransparentUpgradeableProxy.sol/index.ts create mode 100644 v2/typechain-types/factories/UUPSUpgradeable__factory.ts create mode 100644 v2/typechain-types/factories/UpgradeableBeacon__factory.ts create mode 100644 v2/typechain-types/factories/Vm.sol/VmSafe__factory.ts create mode 100644 v2/typechain-types/factories/Vm.sol/Vm__factory.ts create mode 100644 v2/typechain-types/factories/Vm.sol/index.ts create mode 100644 v2/typechain-types/factories/WZETA.sol/WETH9__factory.ts create mode 100644 v2/typechain-types/factories/WZETA.sol/index.ts create mode 100644 v2/typechain-types/factories/ZRC20New.sol/ZRC20Errors__factory.ts create mode 100644 v2/typechain-types/factories/ZRC20New.sol/ZRC20New__factory.ts create mode 100644 v2/typechain-types/factories/ZRC20New.sol/index.ts create mode 100644 v2/typechain-types/factories/Zeta.non-eth.sol/ZetaErrors__factory.ts create mode 100644 v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEthInterface__factory.ts create mode 100644 v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEth__factory.ts create mode 100644 v2/typechain-types/factories/Zeta.non-eth.sol/index.ts create mode 100644 v2/typechain-types/factories/ZetaConnectorNative__factory.ts create mode 100644 v2/typechain-types/factories/ZetaConnectorNewBase__factory.ts create mode 100644 v2/typechain-types/factories/ZetaConnectorNonNative__factory.ts create mode 100644 v2/typechain-types/factories/draft-IERC1822.sol/IERC1822Proxiable__factory.ts create mode 100644 v2/typechain-types/factories/draft-IERC1822.sol/index.ts create mode 100644 v2/typechain-types/factories/draft-IERC6093.sol/IERC1155Errors__factory.ts create mode 100644 v2/typechain-types/factories/draft-IERC6093.sol/IERC20Errors__factory.ts create mode 100644 v2/typechain-types/factories/draft-IERC6093.sol/IERC721Errors__factory.ts create mode 100644 v2/typechain-types/factories/draft-IERC6093.sol/index.ts create mode 100644 v2/typechain-types/factories/index.ts create mode 100644 v2/typechain-types/factories/interfaces/IWZeta.sol/IWETH9__factory.ts create mode 100644 v2/typechain-types/factories/interfaces/IWZeta.sol/index.ts create mode 100644 v2/typechain-types/factories/interfaces/index.ts create mode 100644 v2/typechain-types/factories/utils/Strings__factory.ts create mode 100644 v2/typechain-types/factories/utils/index.ts create mode 100644 v2/typechain-types/factories/zContract.sol/UniversalContract__factory.ts create mode 100644 v2/typechain-types/factories/zContract.sol/ZContract__factory.ts create mode 100644 v2/typechain-types/factories/zContract.sol/index.ts create mode 100644 v2/typechain-types/index.ts create mode 100644 v2/typechain-types/interfaces/IWZeta.sol/IWETH9.ts create mode 100644 v2/typechain-types/interfaces/IWZeta.sol/index.ts create mode 100644 v2/typechain-types/interfaces/index.ts create mode 100644 v2/typechain-types/utils/Strings.ts create mode 100644 v2/typechain-types/utils/index.ts create mode 100644 v2/typechain-types/zContract.sol/UniversalContract.ts create mode 100644 v2/typechain-types/zContract.sol/ZContract.ts create mode 100644 v2/typechain-types/zContract.sol/index.ts diff --git a/.github/workflows/generated-files_v2.yaml b/.github/workflows/generated-files_v2.yaml new file mode 100644 index 00000000..f7affe1b --- /dev/null +++ b/.github/workflows/generated-files_v2.yaml @@ -0,0 +1,63 @@ +name: Generated Files are Updated (V2) + +on: + push: + branches: + - main + paths: + - 'v2/**' + pull_request: + branches: + - "*" + types: + - synchronize + - opened + - reopened + - ready_for_review + +defaults: + run: + working-directory: ./v2 + +jobs: + generate: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "21.1.0" + registry-url: "https://registry.npmjs.org" + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y jq unzip + yarn install + + - name: Install specific version of aibgen + run: | + wget https://gethstore.blob.core.windows.net/builds/geth-alltools-linux-amd64-1.11.5-a38f4108.tar.gz + tar -zxvf geth-alltools-linux-amd64-1.11.5-a38f4108.tar.gz + sudo mv geth-alltools-linux-amd64-1.11.5-a38f4108/abigen /usr/local/bin/ + + - name: Generate Go packages and typechain-types + run: | + yarn generate + + - name: Check for changes + run: | + if git diff --exit-code --ignore-space-change --ignore-all-space --ignore-cr-at-eol -- pkg typechain-types; then + echo "Generated Go files are up-to-date." + else + echo "::error::Generated files are not up-to-date. Please run 'yarn generate' locally and commit any changes." + exit 1 + fi diff --git a/v2/package.json b/v2/package.json index 6102e504..f6d9feff 100644 --- a/v2/package.json +++ b/v2/package.json @@ -11,14 +11,18 @@ "lint:fix": "npx eslint . --fix --ignore-pattern coverage/ --ignore-pattern coverage.json --ignore-pattern lib/ --ignore-pattern out --ignore-pattern cache_forge/", "localnet": "concurrently --names \"NODE,WORKER\" --prefix-colors \"blue.bold,green.bold\" \"anvil --auto-impersonate\" \"wait-on tcp:8545 && npx ts-node scripts/localnet/worker.ts\"", "test": "forge clean && forge test -vv", - "coverage": "forge clean && forge coverage --report lcov" + "coverage": "forge clean && forge coverage --report lcov", + "typechain": "typechain --target ethers-v6 \"out/**/!(*.t|test).sol/!(*.abi).json\" --out-dir typechain-types", + "generate": "forge clean && forge build && ./scripts/generate_go.sh || true && yarn lint:fix && forge fmt && yarn typechain" }, "devDependencies": { "@eslint/js": "^9.7.0", + "@typechain/ethers-v6": "^0.5.1", "@types/eslint__js": "^8.42.3", "concurrently": "^8.2.2", "eslint": "^8.57.0", "ts-node": "^10.9.2", + "typechain": "^8.3.2", "typescript": "^5.5.4", "typescript-eslint": "^7.17.0", "wait-on": "^7.2.0" diff --git a/v2/pkg/address.sol/address.go b/v2/pkg/address.sol/address.go new file mode 100644 index 00000000..a7086abd --- /dev/null +++ b/v2/pkg/address.sol/address.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package address + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// AddressMetaData contains all meta data concerning the Address contract. +var AddressMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]}]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122051aee3d3cbb51dd227047d3a402e288a90aab6ebded8bce84a18c9d83c6fa8b264736f6c634300081a0033", +} + +// AddressABI is the input ABI used to generate the binding from. +// Deprecated: Use AddressMetaData.ABI instead. +var AddressABI = AddressMetaData.ABI + +// AddressBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use AddressMetaData.Bin instead. +var AddressBin = AddressMetaData.Bin + +// DeployAddress deploys a new Ethereum contract, binding an instance of Address to it. +func DeployAddress(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Address, error) { + parsed, err := AddressMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(AddressBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil +} + +// Address is an auto generated Go binding around an Ethereum contract. +type Address struct { + AddressCaller // Read-only binding to the contract + AddressTransactor // Write-only binding to the contract + AddressFilterer // Log filterer for contract events +} + +// AddressCaller is an auto generated read-only Go binding around an Ethereum contract. +type AddressCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AddressTransactor is an auto generated write-only Go binding around an Ethereum contract. +type AddressTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AddressFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type AddressFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AddressSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type AddressSession struct { + Contract *Address // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// AddressCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type AddressCallerSession struct { + Contract *AddressCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// AddressTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type AddressTransactorSession struct { + Contract *AddressTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// AddressRaw is an auto generated low-level Go binding around an Ethereum contract. +type AddressRaw struct { + Contract *Address // Generic contract binding to access the raw methods on +} + +// AddressCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type AddressCallerRaw struct { + Contract *AddressCaller // Generic read-only contract binding to access the raw methods on +} + +// AddressTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type AddressTransactorRaw struct { + Contract *AddressTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewAddress creates a new instance of Address, bound to a specific deployed contract. +func NewAddress(address common.Address, backend bind.ContractBackend) (*Address, error) { + contract, err := bindAddress(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil +} + +// NewAddressCaller creates a new read-only instance of Address, bound to a specific deployed contract. +func NewAddressCaller(address common.Address, caller bind.ContractCaller) (*AddressCaller, error) { + contract, err := bindAddress(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &AddressCaller{contract: contract}, nil +} + +// NewAddressTransactor creates a new write-only instance of Address, bound to a specific deployed contract. +func NewAddressTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressTransactor, error) { + contract, err := bindAddress(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &AddressTransactor{contract: contract}, nil +} + +// NewAddressFilterer creates a new log filterer instance of Address, bound to a specific deployed contract. +func NewAddressFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressFilterer, error) { + contract, err := bindAddress(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &AddressFilterer{contract: contract}, nil +} + +// bindAddress binds a generic wrapper to an already deployed contract. +func bindAddress(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := AddressMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Address *AddressRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Address.Contract.AddressCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Address *AddressRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Address.Contract.AddressTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Address *AddressRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Address.Contract.AddressTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Address *AddressCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Address.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Address *AddressTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Address.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Address *AddressTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Address.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/base.sol/commonbase.go b/v2/pkg/base.sol/commonbase.go new file mode 100644 index 00000000..21558dd3 --- /dev/null +++ b/v2/pkg/base.sol/commonbase.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package base + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// CommonBaseMetaData contains all meta data concerning the CommonBase contract. +var CommonBaseMetaData = &bind.MetaData{ + ABI: "[]", +} + +// CommonBaseABI is the input ABI used to generate the binding from. +// Deprecated: Use CommonBaseMetaData.ABI instead. +var CommonBaseABI = CommonBaseMetaData.ABI + +// CommonBase is an auto generated Go binding around an Ethereum contract. +type CommonBase struct { + CommonBaseCaller // Read-only binding to the contract + CommonBaseTransactor // Write-only binding to the contract + CommonBaseFilterer // Log filterer for contract events +} + +// CommonBaseCaller is an auto generated read-only Go binding around an Ethereum contract. +type CommonBaseCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CommonBaseTransactor is an auto generated write-only Go binding around an Ethereum contract. +type CommonBaseTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CommonBaseFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type CommonBaseFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CommonBaseSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type CommonBaseSession struct { + Contract *CommonBase // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// CommonBaseCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type CommonBaseCallerSession struct { + Contract *CommonBaseCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// CommonBaseTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type CommonBaseTransactorSession struct { + Contract *CommonBaseTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// CommonBaseRaw is an auto generated low-level Go binding around an Ethereum contract. +type CommonBaseRaw struct { + Contract *CommonBase // Generic contract binding to access the raw methods on +} + +// CommonBaseCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type CommonBaseCallerRaw struct { + Contract *CommonBaseCaller // Generic read-only contract binding to access the raw methods on +} + +// CommonBaseTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type CommonBaseTransactorRaw struct { + Contract *CommonBaseTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewCommonBase creates a new instance of CommonBase, bound to a specific deployed contract. +func NewCommonBase(address common.Address, backend bind.ContractBackend) (*CommonBase, error) { + contract, err := bindCommonBase(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &CommonBase{CommonBaseCaller: CommonBaseCaller{contract: contract}, CommonBaseTransactor: CommonBaseTransactor{contract: contract}, CommonBaseFilterer: CommonBaseFilterer{contract: contract}}, nil +} + +// NewCommonBaseCaller creates a new read-only instance of CommonBase, bound to a specific deployed contract. +func NewCommonBaseCaller(address common.Address, caller bind.ContractCaller) (*CommonBaseCaller, error) { + contract, err := bindCommonBase(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &CommonBaseCaller{contract: contract}, nil +} + +// NewCommonBaseTransactor creates a new write-only instance of CommonBase, bound to a specific deployed contract. +func NewCommonBaseTransactor(address common.Address, transactor bind.ContractTransactor) (*CommonBaseTransactor, error) { + contract, err := bindCommonBase(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &CommonBaseTransactor{contract: contract}, nil +} + +// NewCommonBaseFilterer creates a new log filterer instance of CommonBase, bound to a specific deployed contract. +func NewCommonBaseFilterer(address common.Address, filterer bind.ContractFilterer) (*CommonBaseFilterer, error) { + contract, err := bindCommonBase(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &CommonBaseFilterer{contract: contract}, nil +} + +// bindCommonBase binds a generic wrapper to an already deployed contract. +func bindCommonBase(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := CommonBaseMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_CommonBase *CommonBaseRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _CommonBase.Contract.CommonBaseCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_CommonBase *CommonBaseRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CommonBase.Contract.CommonBaseTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_CommonBase *CommonBaseRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _CommonBase.Contract.CommonBaseTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_CommonBase *CommonBaseCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _CommonBase.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_CommonBase *CommonBaseTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CommonBase.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_CommonBase *CommonBaseTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _CommonBase.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/base.sol/scriptbase.go b/v2/pkg/base.sol/scriptbase.go new file mode 100644 index 00000000..ef7ebeaa --- /dev/null +++ b/v2/pkg/base.sol/scriptbase.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package base + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ScriptBaseMetaData contains all meta data concerning the ScriptBase contract. +var ScriptBaseMetaData = &bind.MetaData{ + ABI: "[]", +} + +// ScriptBaseABI is the input ABI used to generate the binding from. +// Deprecated: Use ScriptBaseMetaData.ABI instead. +var ScriptBaseABI = ScriptBaseMetaData.ABI + +// ScriptBase is an auto generated Go binding around an Ethereum contract. +type ScriptBase struct { + ScriptBaseCaller // Read-only binding to the contract + ScriptBaseTransactor // Write-only binding to the contract + ScriptBaseFilterer // Log filterer for contract events +} + +// ScriptBaseCaller is an auto generated read-only Go binding around an Ethereum contract. +type ScriptBaseCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ScriptBaseTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ScriptBaseTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ScriptBaseFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ScriptBaseFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ScriptBaseSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ScriptBaseSession struct { + Contract *ScriptBase // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ScriptBaseCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ScriptBaseCallerSession struct { + Contract *ScriptBaseCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ScriptBaseTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ScriptBaseTransactorSession struct { + Contract *ScriptBaseTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ScriptBaseRaw is an auto generated low-level Go binding around an Ethereum contract. +type ScriptBaseRaw struct { + Contract *ScriptBase // Generic contract binding to access the raw methods on +} + +// ScriptBaseCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ScriptBaseCallerRaw struct { + Contract *ScriptBaseCaller // Generic read-only contract binding to access the raw methods on +} + +// ScriptBaseTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ScriptBaseTransactorRaw struct { + Contract *ScriptBaseTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewScriptBase creates a new instance of ScriptBase, bound to a specific deployed contract. +func NewScriptBase(address common.Address, backend bind.ContractBackend) (*ScriptBase, error) { + contract, err := bindScriptBase(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ScriptBase{ScriptBaseCaller: ScriptBaseCaller{contract: contract}, ScriptBaseTransactor: ScriptBaseTransactor{contract: contract}, ScriptBaseFilterer: ScriptBaseFilterer{contract: contract}}, nil +} + +// NewScriptBaseCaller creates a new read-only instance of ScriptBase, bound to a specific deployed contract. +func NewScriptBaseCaller(address common.Address, caller bind.ContractCaller) (*ScriptBaseCaller, error) { + contract, err := bindScriptBase(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ScriptBaseCaller{contract: contract}, nil +} + +// NewScriptBaseTransactor creates a new write-only instance of ScriptBase, bound to a specific deployed contract. +func NewScriptBaseTransactor(address common.Address, transactor bind.ContractTransactor) (*ScriptBaseTransactor, error) { + contract, err := bindScriptBase(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ScriptBaseTransactor{contract: contract}, nil +} + +// NewScriptBaseFilterer creates a new log filterer instance of ScriptBase, bound to a specific deployed contract. +func NewScriptBaseFilterer(address common.Address, filterer bind.ContractFilterer) (*ScriptBaseFilterer, error) { + contract, err := bindScriptBase(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ScriptBaseFilterer{contract: contract}, nil +} + +// bindScriptBase binds a generic wrapper to an already deployed contract. +func bindScriptBase(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ScriptBaseMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ScriptBase *ScriptBaseRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ScriptBase.Contract.ScriptBaseCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ScriptBase *ScriptBaseRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ScriptBase.Contract.ScriptBaseTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ScriptBase *ScriptBaseRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ScriptBase.Contract.ScriptBaseTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ScriptBase *ScriptBaseCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ScriptBase.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ScriptBase *ScriptBaseTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ScriptBase.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ScriptBase *ScriptBaseTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ScriptBase.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/base.sol/testbase.go b/v2/pkg/base.sol/testbase.go new file mode 100644 index 00000000..a597895a --- /dev/null +++ b/v2/pkg/base.sol/testbase.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package base + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// TestBaseMetaData contains all meta data concerning the TestBase contract. +var TestBaseMetaData = &bind.MetaData{ + ABI: "[]", +} + +// TestBaseABI is the input ABI used to generate the binding from. +// Deprecated: Use TestBaseMetaData.ABI instead. +var TestBaseABI = TestBaseMetaData.ABI + +// TestBase is an auto generated Go binding around an Ethereum contract. +type TestBase struct { + TestBaseCaller // Read-only binding to the contract + TestBaseTransactor // Write-only binding to the contract + TestBaseFilterer // Log filterer for contract events +} + +// TestBaseCaller is an auto generated read-only Go binding around an Ethereum contract. +type TestBaseCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestBaseTransactor is an auto generated write-only Go binding around an Ethereum contract. +type TestBaseTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestBaseFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type TestBaseFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestBaseSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type TestBaseSession struct { + Contract *TestBase // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TestBaseCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type TestBaseCallerSession struct { + Contract *TestBaseCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// TestBaseTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type TestBaseTransactorSession struct { + Contract *TestBaseTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TestBaseRaw is an auto generated low-level Go binding around an Ethereum contract. +type TestBaseRaw struct { + Contract *TestBase // Generic contract binding to access the raw methods on +} + +// TestBaseCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type TestBaseCallerRaw struct { + Contract *TestBaseCaller // Generic read-only contract binding to access the raw methods on +} + +// TestBaseTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type TestBaseTransactorRaw struct { + Contract *TestBaseTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewTestBase creates a new instance of TestBase, bound to a specific deployed contract. +func NewTestBase(address common.Address, backend bind.ContractBackend) (*TestBase, error) { + contract, err := bindTestBase(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &TestBase{TestBaseCaller: TestBaseCaller{contract: contract}, TestBaseTransactor: TestBaseTransactor{contract: contract}, TestBaseFilterer: TestBaseFilterer{contract: contract}}, nil +} + +// NewTestBaseCaller creates a new read-only instance of TestBase, bound to a specific deployed contract. +func NewTestBaseCaller(address common.Address, caller bind.ContractCaller) (*TestBaseCaller, error) { + contract, err := bindTestBase(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &TestBaseCaller{contract: contract}, nil +} + +// NewTestBaseTransactor creates a new write-only instance of TestBase, bound to a specific deployed contract. +func NewTestBaseTransactor(address common.Address, transactor bind.ContractTransactor) (*TestBaseTransactor, error) { + contract, err := bindTestBase(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &TestBaseTransactor{contract: contract}, nil +} + +// NewTestBaseFilterer creates a new log filterer instance of TestBase, bound to a specific deployed contract. +func NewTestBaseFilterer(address common.Address, filterer bind.ContractFilterer) (*TestBaseFilterer, error) { + contract, err := bindTestBase(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &TestBaseFilterer{contract: contract}, nil +} + +// bindTestBase binds a generic wrapper to an already deployed contract. +func bindTestBase(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := TestBaseMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TestBase *TestBaseRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TestBase.Contract.TestBaseCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TestBase *TestBaseRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TestBase.Contract.TestBaseTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TestBase *TestBaseRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TestBase.Contract.TestBaseTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TestBase *TestBaseCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TestBase.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TestBase *TestBaseTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TestBase.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TestBase *TestBaseTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TestBase.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/beaconproxy.sol/beaconproxy.go b/v2/pkg/beaconproxy.sol/beaconproxy.go new file mode 100644 index 00000000..9303b6aa --- /dev/null +++ b/v2/pkg/beaconproxy.sol/beaconproxy.go @@ -0,0 +1,368 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package beaconproxy + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// BeaconProxyMetaData contains all meta data concerning the BeaconProxy contract. +var BeaconProxyMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"beacon\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"payable\"},{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"BeaconUpgraded\",\"inputs\":[{\"name\":\"beacon\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967InvalidBeacon\",\"inputs\":[{\"name\":\"beacon\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967InvalidImplementation\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967NonPayable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]}]", + Bin: "0x60a06040526040516105eb3803806105eb83398101604081905261002291610387565b61002c828261003e565b506001600160a01b0316608052610484565b610047826100fe565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a28051156100f2576100ed826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e7919061044d565b82610211565b505050565b6100fa610288565b5050565b806001600160a01b03163b60000361013957604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b81529051600092841691635c60da1b9160048083019260209291908290030181865afa1580156101b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d9919061044d565b9050806001600160a01b03163b6000036100fa57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610130565b6060600080846001600160a01b03168460405161022e9190610468565b600060405180830381855af49150503d8060008114610269576040519150601f19603f3d011682016040523d82523d6000602084013e61026e565b606091505b50909250905061027f8583836102a9565b95945050505050565b34156102a75760405163b398979f60e01b815260040160405180910390fd5b565b6060826102be576102b982610308565b610301565b81511580156102d557506001600160a01b0384163b155b156102fe57604051639996b31560e01b81526001600160a01b0385166004820152602401610130565b50805b9392505050565b8051156103185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80516001600160a01b038116811461034857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561037e578181015183820152602001610366565b50506000910152565b6000806040838503121561039a57600080fd5b6103a383610331565b60208401519092506001600160401b038111156103bf57600080fd5b8301601f810185136103d057600080fd5b80516001600160401b038111156103e9576103e961034d565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104175761041761034d565b60405281815282820160200187101561042f57600080fd5b610440826020830160208601610363565b8093505050509250929050565b60006020828403121561045f57600080fd5b61030182610331565b6000825161047a818460208701610363565b9190910192915050565b60805161014d61049e60003960006024015261014d6000f3fe608060405261000c61000e565b005b61001e610019610020565b6100b6565b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b191906100da565b905090565b3660008037600080366000845af43d6000803e8080156100d5573d6000f35b3d6000fd5b6000602082840312156100ec57600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461011057600080fd5b939250505056fea2646970667358221220fbef562e23099f6b70d42efa68ad4a1991c21a30ee88b7ae19894071f581e3e364736f6c634300081a0033", +} + +// BeaconProxyABI is the input ABI used to generate the binding from. +// Deprecated: Use BeaconProxyMetaData.ABI instead. +var BeaconProxyABI = BeaconProxyMetaData.ABI + +// BeaconProxyBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use BeaconProxyMetaData.Bin instead. +var BeaconProxyBin = BeaconProxyMetaData.Bin + +// DeployBeaconProxy deploys a new Ethereum contract, binding an instance of BeaconProxy to it. +func DeployBeaconProxy(auth *bind.TransactOpts, backend bind.ContractBackend, beacon common.Address, data []byte) (common.Address, *types.Transaction, *BeaconProxy, error) { + parsed, err := BeaconProxyMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BeaconProxyBin), backend, beacon, data) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &BeaconProxy{BeaconProxyCaller: BeaconProxyCaller{contract: contract}, BeaconProxyTransactor: BeaconProxyTransactor{contract: contract}, BeaconProxyFilterer: BeaconProxyFilterer{contract: contract}}, nil +} + +// BeaconProxy is an auto generated Go binding around an Ethereum contract. +type BeaconProxy struct { + BeaconProxyCaller // Read-only binding to the contract + BeaconProxyTransactor // Write-only binding to the contract + BeaconProxyFilterer // Log filterer for contract events +} + +// BeaconProxyCaller is an auto generated read-only Go binding around an Ethereum contract. +type BeaconProxyCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BeaconProxyTransactor is an auto generated write-only Go binding around an Ethereum contract. +type BeaconProxyTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BeaconProxyFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type BeaconProxyFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BeaconProxySession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type BeaconProxySession struct { + Contract *BeaconProxy // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// BeaconProxyCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type BeaconProxyCallerSession struct { + Contract *BeaconProxyCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// BeaconProxyTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type BeaconProxyTransactorSession struct { + Contract *BeaconProxyTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// BeaconProxyRaw is an auto generated low-level Go binding around an Ethereum contract. +type BeaconProxyRaw struct { + Contract *BeaconProxy // Generic contract binding to access the raw methods on +} + +// BeaconProxyCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type BeaconProxyCallerRaw struct { + Contract *BeaconProxyCaller // Generic read-only contract binding to access the raw methods on +} + +// BeaconProxyTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type BeaconProxyTransactorRaw struct { + Contract *BeaconProxyTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewBeaconProxy creates a new instance of BeaconProxy, bound to a specific deployed contract. +func NewBeaconProxy(address common.Address, backend bind.ContractBackend) (*BeaconProxy, error) { + contract, err := bindBeaconProxy(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &BeaconProxy{BeaconProxyCaller: BeaconProxyCaller{contract: contract}, BeaconProxyTransactor: BeaconProxyTransactor{contract: contract}, BeaconProxyFilterer: BeaconProxyFilterer{contract: contract}}, nil +} + +// NewBeaconProxyCaller creates a new read-only instance of BeaconProxy, bound to a specific deployed contract. +func NewBeaconProxyCaller(address common.Address, caller bind.ContractCaller) (*BeaconProxyCaller, error) { + contract, err := bindBeaconProxy(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &BeaconProxyCaller{contract: contract}, nil +} + +// NewBeaconProxyTransactor creates a new write-only instance of BeaconProxy, bound to a specific deployed contract. +func NewBeaconProxyTransactor(address common.Address, transactor bind.ContractTransactor) (*BeaconProxyTransactor, error) { + contract, err := bindBeaconProxy(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &BeaconProxyTransactor{contract: contract}, nil +} + +// NewBeaconProxyFilterer creates a new log filterer instance of BeaconProxy, bound to a specific deployed contract. +func NewBeaconProxyFilterer(address common.Address, filterer bind.ContractFilterer) (*BeaconProxyFilterer, error) { + contract, err := bindBeaconProxy(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &BeaconProxyFilterer{contract: contract}, nil +} + +// bindBeaconProxy binds a generic wrapper to an already deployed contract. +func bindBeaconProxy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := BeaconProxyMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_BeaconProxy *BeaconProxyRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BeaconProxy.Contract.BeaconProxyCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_BeaconProxy *BeaconProxyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BeaconProxy.Contract.BeaconProxyTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_BeaconProxy *BeaconProxyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BeaconProxy.Contract.BeaconProxyTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_BeaconProxy *BeaconProxyCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BeaconProxy.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_BeaconProxy *BeaconProxyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BeaconProxy.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_BeaconProxy *BeaconProxyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BeaconProxy.Contract.contract.Transact(opts, method, params...) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_BeaconProxy *BeaconProxyTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _BeaconProxy.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_BeaconProxy *BeaconProxySession) Fallback(calldata []byte) (*types.Transaction, error) { + return _BeaconProxy.Contract.Fallback(&_BeaconProxy.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_BeaconProxy *BeaconProxyTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _BeaconProxy.Contract.Fallback(&_BeaconProxy.TransactOpts, calldata) +} + +// BeaconProxyBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the BeaconProxy contract. +type BeaconProxyBeaconUpgradedIterator struct { + Event *BeaconProxyBeaconUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *BeaconProxyBeaconUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(BeaconProxyBeaconUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(BeaconProxyBeaconUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *BeaconProxyBeaconUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *BeaconProxyBeaconUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// BeaconProxyBeaconUpgraded represents a BeaconUpgraded event raised by the BeaconProxy contract. +type BeaconProxyBeaconUpgraded struct { + Beacon common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_BeaconProxy *BeaconProxyFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*BeaconProxyBeaconUpgradedIterator, error) { + + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _BeaconProxy.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) + if err != nil { + return nil, err + } + return &BeaconProxyBeaconUpgradedIterator{contract: _BeaconProxy.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil +} + +// WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_BeaconProxy *BeaconProxyFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *BeaconProxyBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { + + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _BeaconProxy.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(BeaconProxyBeaconUpgraded) + if err := _BeaconProxy.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_BeaconProxy *BeaconProxyFilterer) ParseBeaconUpgraded(log types.Log) (*BeaconProxyBeaconUpgraded, error) { + event := new(BeaconProxyBeaconUpgraded) + if err := _BeaconProxy.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/console.sol/console.go b/v2/pkg/console.sol/console.go new file mode 100644 index 00000000..ac2e64e3 --- /dev/null +++ b/v2/pkg/console.sol/console.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package console + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ConsoleMetaData contains all meta data concerning the Console contract. +var ConsoleMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122036e7b352b1f4f21e7064fc214beafa9cc1ff9b18801b76f46109cf695d3dd28764736f6c634300081a0033", +} + +// ConsoleABI is the input ABI used to generate the binding from. +// Deprecated: Use ConsoleMetaData.ABI instead. +var ConsoleABI = ConsoleMetaData.ABI + +// ConsoleBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ConsoleMetaData.Bin instead. +var ConsoleBin = ConsoleMetaData.Bin + +// DeployConsole deploys a new Ethereum contract, binding an instance of Console to it. +func DeployConsole(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Console, error) { + parsed, err := ConsoleMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ConsoleBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Console{ConsoleCaller: ConsoleCaller{contract: contract}, ConsoleTransactor: ConsoleTransactor{contract: contract}, ConsoleFilterer: ConsoleFilterer{contract: contract}}, nil +} + +// Console is an auto generated Go binding around an Ethereum contract. +type Console struct { + ConsoleCaller // Read-only binding to the contract + ConsoleTransactor // Write-only binding to the contract + ConsoleFilterer // Log filterer for contract events +} + +// ConsoleCaller is an auto generated read-only Go binding around an Ethereum contract. +type ConsoleCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ConsoleTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ConsoleTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ConsoleFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ConsoleFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ConsoleSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ConsoleSession struct { + Contract *Console // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ConsoleCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ConsoleCallerSession struct { + Contract *ConsoleCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ConsoleTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ConsoleTransactorSession struct { + Contract *ConsoleTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ConsoleRaw is an auto generated low-level Go binding around an Ethereum contract. +type ConsoleRaw struct { + Contract *Console // Generic contract binding to access the raw methods on +} + +// ConsoleCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ConsoleCallerRaw struct { + Contract *ConsoleCaller // Generic read-only contract binding to access the raw methods on +} + +// ConsoleTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ConsoleTransactorRaw struct { + Contract *ConsoleTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewConsole creates a new instance of Console, bound to a specific deployed contract. +func NewConsole(address common.Address, backend bind.ContractBackend) (*Console, error) { + contract, err := bindConsole(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Console{ConsoleCaller: ConsoleCaller{contract: contract}, ConsoleTransactor: ConsoleTransactor{contract: contract}, ConsoleFilterer: ConsoleFilterer{contract: contract}}, nil +} + +// NewConsoleCaller creates a new read-only instance of Console, bound to a specific deployed contract. +func NewConsoleCaller(address common.Address, caller bind.ContractCaller) (*ConsoleCaller, error) { + contract, err := bindConsole(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ConsoleCaller{contract: contract}, nil +} + +// NewConsoleTransactor creates a new write-only instance of Console, bound to a specific deployed contract. +func NewConsoleTransactor(address common.Address, transactor bind.ContractTransactor) (*ConsoleTransactor, error) { + contract, err := bindConsole(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ConsoleTransactor{contract: contract}, nil +} + +// NewConsoleFilterer creates a new log filterer instance of Console, bound to a specific deployed contract. +func NewConsoleFilterer(address common.Address, filterer bind.ContractFilterer) (*ConsoleFilterer, error) { + contract, err := bindConsole(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ConsoleFilterer{contract: contract}, nil +} + +// bindConsole binds a generic wrapper to an already deployed contract. +func bindConsole(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ConsoleMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Console *ConsoleRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Console.Contract.ConsoleCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Console *ConsoleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Console.Contract.ConsoleTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Console *ConsoleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Console.Contract.ConsoleTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Console *ConsoleCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Console.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Console *ConsoleTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Console.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Console *ConsoleTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Console.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/console2.sol/console2.go b/v2/pkg/console2.sol/console2.go new file mode 100644 index 00000000..a99f4738 --- /dev/null +++ b/v2/pkg/console2.sol/console2.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package console2 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// Console2MetaData contains all meta data concerning the Console2 contract. +var Console2MetaData = &bind.MetaData{ + ABI: "[]", +} + +// Console2ABI is the input ABI used to generate the binding from. +// Deprecated: Use Console2MetaData.ABI instead. +var Console2ABI = Console2MetaData.ABI + +// Console2 is an auto generated Go binding around an Ethereum contract. +type Console2 struct { + Console2Caller // Read-only binding to the contract + Console2Transactor // Write-only binding to the contract + Console2Filterer // Log filterer for contract events +} + +// Console2Caller is an auto generated read-only Go binding around an Ethereum contract. +type Console2Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// Console2Transactor is an auto generated write-only Go binding around an Ethereum contract. +type Console2Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// Console2Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type Console2Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// Console2Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type Console2Session struct { + Contract *Console2 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// Console2CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type Console2CallerSession struct { + Contract *Console2Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// Console2TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type Console2TransactorSession struct { + Contract *Console2Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// Console2Raw is an auto generated low-level Go binding around an Ethereum contract. +type Console2Raw struct { + Contract *Console2 // Generic contract binding to access the raw methods on +} + +// Console2CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type Console2CallerRaw struct { + Contract *Console2Caller // Generic read-only contract binding to access the raw methods on +} + +// Console2TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type Console2TransactorRaw struct { + Contract *Console2Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewConsole2 creates a new instance of Console2, bound to a specific deployed contract. +func NewConsole2(address common.Address, backend bind.ContractBackend) (*Console2, error) { + contract, err := bindConsole2(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Console2{Console2Caller: Console2Caller{contract: contract}, Console2Transactor: Console2Transactor{contract: contract}, Console2Filterer: Console2Filterer{contract: contract}}, nil +} + +// NewConsole2Caller creates a new read-only instance of Console2, bound to a specific deployed contract. +func NewConsole2Caller(address common.Address, caller bind.ContractCaller) (*Console2Caller, error) { + contract, err := bindConsole2(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &Console2Caller{contract: contract}, nil +} + +// NewConsole2Transactor creates a new write-only instance of Console2, bound to a specific deployed contract. +func NewConsole2Transactor(address common.Address, transactor bind.ContractTransactor) (*Console2Transactor, error) { + contract, err := bindConsole2(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &Console2Transactor{contract: contract}, nil +} + +// NewConsole2Filterer creates a new log filterer instance of Console2, bound to a specific deployed contract. +func NewConsole2Filterer(address common.Address, filterer bind.ContractFilterer) (*Console2Filterer, error) { + contract, err := bindConsole2(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &Console2Filterer{contract: contract}, nil +} + +// bindConsole2 binds a generic wrapper to an already deployed contract. +func bindConsole2(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := Console2MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Console2 *Console2Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Console2.Contract.Console2Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Console2 *Console2Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Console2.Contract.Console2Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Console2 *Console2Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Console2.Contract.Console2Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Console2 *Console2CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Console2.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Console2 *Console2TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Console2.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Console2 *Console2TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Console2.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/context.sol/context.go b/v2/pkg/context.sol/context.go new file mode 100644 index 00000000..90b3cdd0 --- /dev/null +++ b/v2/pkg/context.sol/context.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package context + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ContextMetaData contains all meta data concerning the Context contract. +var ContextMetaData = &bind.MetaData{ + ABI: "[]", +} + +// ContextABI is the input ABI used to generate the binding from. +// Deprecated: Use ContextMetaData.ABI instead. +var ContextABI = ContextMetaData.ABI + +// Context is an auto generated Go binding around an Ethereum contract. +type Context struct { + ContextCaller // Read-only binding to the contract + ContextTransactor // Write-only binding to the contract + ContextFilterer // Log filterer for contract events +} + +// ContextCaller is an auto generated read-only Go binding around an Ethereum contract. +type ContextCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContextTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ContextTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContextFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ContextFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContextSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ContextSession struct { + Contract *Context // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ContextCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ContextCallerSession struct { + Contract *ContextCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ContextTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ContextTransactorSession struct { + Contract *ContextTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ContextRaw is an auto generated low-level Go binding around an Ethereum contract. +type ContextRaw struct { + Contract *Context // Generic contract binding to access the raw methods on +} + +// ContextCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ContextCallerRaw struct { + Contract *ContextCaller // Generic read-only contract binding to access the raw methods on +} + +// ContextTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ContextTransactorRaw struct { + Contract *ContextTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewContext creates a new instance of Context, bound to a specific deployed contract. +func NewContext(address common.Address, backend bind.ContractBackend) (*Context, error) { + contract, err := bindContext(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Context{ContextCaller: ContextCaller{contract: contract}, ContextTransactor: ContextTransactor{contract: contract}, ContextFilterer: ContextFilterer{contract: contract}}, nil +} + +// NewContextCaller creates a new read-only instance of Context, bound to a specific deployed contract. +func NewContextCaller(address common.Address, caller bind.ContractCaller) (*ContextCaller, error) { + contract, err := bindContext(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ContextCaller{contract: contract}, nil +} + +// NewContextTransactor creates a new write-only instance of Context, bound to a specific deployed contract. +func NewContextTransactor(address common.Address, transactor bind.ContractTransactor) (*ContextTransactor, error) { + contract, err := bindContext(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ContextTransactor{contract: contract}, nil +} + +// NewContextFilterer creates a new log filterer instance of Context, bound to a specific deployed contract. +func NewContextFilterer(address common.Address, filterer bind.ContractFilterer) (*ContextFilterer, error) { + contract, err := bindContext(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ContextFilterer{contract: contract}, nil +} + +// bindContext binds a generic wrapper to an already deployed contract. +func bindContext(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ContextMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Context *ContextRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Context.Contract.ContextCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Context *ContextRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Context.Contract.ContextTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Context *ContextRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Context.Contract.ContextTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Context *ContextCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Context.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Context *ContextTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Context.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Context *ContextTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Context.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/contextupgradeable.sol/contextupgradeable.go b/v2/pkg/contextupgradeable.sol/contextupgradeable.go new file mode 100644 index 00000000..1e54b32e --- /dev/null +++ b/v2/pkg/contextupgradeable.sol/contextupgradeable.go @@ -0,0 +1,315 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package contextupgradeable + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ContextUpgradeableMetaData contains all meta data concerning the ContextUpgradeable contract. +var ContextUpgradeableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]}]", +} + +// ContextUpgradeableABI is the input ABI used to generate the binding from. +// Deprecated: Use ContextUpgradeableMetaData.ABI instead. +var ContextUpgradeableABI = ContextUpgradeableMetaData.ABI + +// ContextUpgradeable is an auto generated Go binding around an Ethereum contract. +type ContextUpgradeable struct { + ContextUpgradeableCaller // Read-only binding to the contract + ContextUpgradeableTransactor // Write-only binding to the contract + ContextUpgradeableFilterer // Log filterer for contract events +} + +// ContextUpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. +type ContextUpgradeableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContextUpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ContextUpgradeableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContextUpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ContextUpgradeableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContextUpgradeableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ContextUpgradeableSession struct { + Contract *ContextUpgradeable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ContextUpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ContextUpgradeableCallerSession struct { + Contract *ContextUpgradeableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ContextUpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ContextUpgradeableTransactorSession struct { + Contract *ContextUpgradeableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ContextUpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. +type ContextUpgradeableRaw struct { + Contract *ContextUpgradeable // Generic contract binding to access the raw methods on +} + +// ContextUpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ContextUpgradeableCallerRaw struct { + Contract *ContextUpgradeableCaller // Generic read-only contract binding to access the raw methods on +} + +// ContextUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ContextUpgradeableTransactorRaw struct { + Contract *ContextUpgradeableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewContextUpgradeable creates a new instance of ContextUpgradeable, bound to a specific deployed contract. +func NewContextUpgradeable(address common.Address, backend bind.ContractBackend) (*ContextUpgradeable, error) { + contract, err := bindContextUpgradeable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ContextUpgradeable{ContextUpgradeableCaller: ContextUpgradeableCaller{contract: contract}, ContextUpgradeableTransactor: ContextUpgradeableTransactor{contract: contract}, ContextUpgradeableFilterer: ContextUpgradeableFilterer{contract: contract}}, nil +} + +// NewContextUpgradeableCaller creates a new read-only instance of ContextUpgradeable, bound to a specific deployed contract. +func NewContextUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*ContextUpgradeableCaller, error) { + contract, err := bindContextUpgradeable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ContextUpgradeableCaller{contract: contract}, nil +} + +// NewContextUpgradeableTransactor creates a new write-only instance of ContextUpgradeable, bound to a specific deployed contract. +func NewContextUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*ContextUpgradeableTransactor, error) { + contract, err := bindContextUpgradeable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ContextUpgradeableTransactor{contract: contract}, nil +} + +// NewContextUpgradeableFilterer creates a new log filterer instance of ContextUpgradeable, bound to a specific deployed contract. +func NewContextUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*ContextUpgradeableFilterer, error) { + contract, err := bindContextUpgradeable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ContextUpgradeableFilterer{contract: contract}, nil +} + +// bindContextUpgradeable binds a generic wrapper to an already deployed contract. +func bindContextUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ContextUpgradeableMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ContextUpgradeable *ContextUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ContextUpgradeable.Contract.ContextUpgradeableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ContextUpgradeable *ContextUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContextUpgradeable.Contract.ContextUpgradeableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ContextUpgradeable *ContextUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ContextUpgradeable.Contract.ContextUpgradeableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ContextUpgradeable *ContextUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ContextUpgradeable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ContextUpgradeable *ContextUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContextUpgradeable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ContextUpgradeable *ContextUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ContextUpgradeable.Contract.contract.Transact(opts, method, params...) +} + +// ContextUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ContextUpgradeable contract. +type ContextUpgradeableInitializedIterator struct { + Event *ContextUpgradeableInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContextUpgradeableInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContextUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContextUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContextUpgradeableInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContextUpgradeableInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContextUpgradeableInitialized represents a Initialized event raised by the ContextUpgradeable contract. +type ContextUpgradeableInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_ContextUpgradeable *ContextUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*ContextUpgradeableInitializedIterator, error) { + + logs, sub, err := _ContextUpgradeable.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &ContextUpgradeableInitializedIterator{contract: _ContextUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_ContextUpgradeable *ContextUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ContextUpgradeableInitialized) (event.Subscription, error) { + + logs, sub, err := _ContextUpgradeable.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContextUpgradeableInitialized) + if err := _ContextUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_ContextUpgradeable *ContextUpgradeableFilterer) ParseInitialized(log types.Log) (*ContextUpgradeableInitialized, error) { + event := new(ContextUpgradeableInitialized) + if err := _ContextUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/core.sol/core.go b/v2/pkg/core.sol/core.go new file mode 100644 index 00000000..20e8e920 --- /dev/null +++ b/v2/pkg/core.sol/core.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package core + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// CoreMetaData contains all meta data concerning the Core contract. +var CoreMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206b99ffed9fb2c99093653e333a919be75559602fd4000fc9962f0f4027d6168a64736f6c634300081a0033", +} + +// CoreABI is the input ABI used to generate the binding from. +// Deprecated: Use CoreMetaData.ABI instead. +var CoreABI = CoreMetaData.ABI + +// CoreBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use CoreMetaData.Bin instead. +var CoreBin = CoreMetaData.Bin + +// DeployCore deploys a new Ethereum contract, binding an instance of Core to it. +func DeployCore(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Core, error) { + parsed, err := CoreMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CoreBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Core{CoreCaller: CoreCaller{contract: contract}, CoreTransactor: CoreTransactor{contract: contract}, CoreFilterer: CoreFilterer{contract: contract}}, nil +} + +// Core is an auto generated Go binding around an Ethereum contract. +type Core struct { + CoreCaller // Read-only binding to the contract + CoreTransactor // Write-only binding to the contract + CoreFilterer // Log filterer for contract events +} + +// CoreCaller is an auto generated read-only Go binding around an Ethereum contract. +type CoreCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CoreTransactor is an auto generated write-only Go binding around an Ethereum contract. +type CoreTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CoreFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type CoreFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CoreSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type CoreSession struct { + Contract *Core // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// CoreCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type CoreCallerSession struct { + Contract *CoreCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// CoreTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type CoreTransactorSession struct { + Contract *CoreTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// CoreRaw is an auto generated low-level Go binding around an Ethereum contract. +type CoreRaw struct { + Contract *Core // Generic contract binding to access the raw methods on +} + +// CoreCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type CoreCallerRaw struct { + Contract *CoreCaller // Generic read-only contract binding to access the raw methods on +} + +// CoreTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type CoreTransactorRaw struct { + Contract *CoreTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewCore creates a new instance of Core, bound to a specific deployed contract. +func NewCore(address common.Address, backend bind.ContractBackend) (*Core, error) { + contract, err := bindCore(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Core{CoreCaller: CoreCaller{contract: contract}, CoreTransactor: CoreTransactor{contract: contract}, CoreFilterer: CoreFilterer{contract: contract}}, nil +} + +// NewCoreCaller creates a new read-only instance of Core, bound to a specific deployed contract. +func NewCoreCaller(address common.Address, caller bind.ContractCaller) (*CoreCaller, error) { + contract, err := bindCore(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &CoreCaller{contract: contract}, nil +} + +// NewCoreTransactor creates a new write-only instance of Core, bound to a specific deployed contract. +func NewCoreTransactor(address common.Address, transactor bind.ContractTransactor) (*CoreTransactor, error) { + contract, err := bindCore(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &CoreTransactor{contract: contract}, nil +} + +// NewCoreFilterer creates a new log filterer instance of Core, bound to a specific deployed contract. +func NewCoreFilterer(address common.Address, filterer bind.ContractFilterer) (*CoreFilterer, error) { + contract, err := bindCore(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &CoreFilterer{contract: contract}, nil +} + +// bindCore binds a generic wrapper to an already deployed contract. +func bindCore(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := CoreMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Core *CoreRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Core.Contract.CoreCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Core *CoreRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Core.Contract.CoreTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Core *CoreRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Core.Contract.CoreTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Core *CoreCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Core.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Core *CoreTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Core.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Core *CoreTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Core.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/defender.sol/defender.go b/v2/pkg/defender.sol/defender.go new file mode 100644 index 00000000..75c91808 --- /dev/null +++ b/v2/pkg/defender.sol/defender.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package defender + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// DefenderMetaData contains all meta data concerning the Defender contract. +var DefenderMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205e77611c2a167a5e16c9b4e93e900d9515ee8697eba9f144b6f319dcd7d591c664736f6c634300081a0033", +} + +// DefenderABI is the input ABI used to generate the binding from. +// Deprecated: Use DefenderMetaData.ABI instead. +var DefenderABI = DefenderMetaData.ABI + +// DefenderBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use DefenderMetaData.Bin instead. +var DefenderBin = DefenderMetaData.Bin + +// DeployDefender deploys a new Ethereum contract, binding an instance of Defender to it. +func DeployDefender(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Defender, error) { + parsed, err := DefenderMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(DefenderBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Defender{DefenderCaller: DefenderCaller{contract: contract}, DefenderTransactor: DefenderTransactor{contract: contract}, DefenderFilterer: DefenderFilterer{contract: contract}}, nil +} + +// Defender is an auto generated Go binding around an Ethereum contract. +type Defender struct { + DefenderCaller // Read-only binding to the contract + DefenderTransactor // Write-only binding to the contract + DefenderFilterer // Log filterer for contract events +} + +// DefenderCaller is an auto generated read-only Go binding around an Ethereum contract. +type DefenderCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// DefenderTransactor is an auto generated write-only Go binding around an Ethereum contract. +type DefenderTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// DefenderFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type DefenderFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// DefenderSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type DefenderSession struct { + Contract *Defender // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// DefenderCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type DefenderCallerSession struct { + Contract *DefenderCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// DefenderTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type DefenderTransactorSession struct { + Contract *DefenderTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// DefenderRaw is an auto generated low-level Go binding around an Ethereum contract. +type DefenderRaw struct { + Contract *Defender // Generic contract binding to access the raw methods on +} + +// DefenderCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type DefenderCallerRaw struct { + Contract *DefenderCaller // Generic read-only contract binding to access the raw methods on +} + +// DefenderTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type DefenderTransactorRaw struct { + Contract *DefenderTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewDefender creates a new instance of Defender, bound to a specific deployed contract. +func NewDefender(address common.Address, backend bind.ContractBackend) (*Defender, error) { + contract, err := bindDefender(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Defender{DefenderCaller: DefenderCaller{contract: contract}, DefenderTransactor: DefenderTransactor{contract: contract}, DefenderFilterer: DefenderFilterer{contract: contract}}, nil +} + +// NewDefenderCaller creates a new read-only instance of Defender, bound to a specific deployed contract. +func NewDefenderCaller(address common.Address, caller bind.ContractCaller) (*DefenderCaller, error) { + contract, err := bindDefender(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &DefenderCaller{contract: contract}, nil +} + +// NewDefenderTransactor creates a new write-only instance of Defender, bound to a specific deployed contract. +func NewDefenderTransactor(address common.Address, transactor bind.ContractTransactor) (*DefenderTransactor, error) { + contract, err := bindDefender(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &DefenderTransactor{contract: contract}, nil +} + +// NewDefenderFilterer creates a new log filterer instance of Defender, bound to a specific deployed contract. +func NewDefenderFilterer(address common.Address, filterer bind.ContractFilterer) (*DefenderFilterer, error) { + contract, err := bindDefender(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &DefenderFilterer{contract: contract}, nil +} + +// bindDefender binds a generic wrapper to an already deployed contract. +func bindDefender(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := DefenderMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Defender *DefenderRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Defender.Contract.DefenderCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Defender *DefenderRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Defender.Contract.DefenderTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Defender *DefenderRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Defender.Contract.DefenderTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Defender *DefenderCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Defender.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Defender *DefenderTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Defender.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Defender *DefenderTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Defender.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/defenderdeploy.sol/defenderdeploy.go b/v2/pkg/defenderdeploy.sol/defenderdeploy.go new file mode 100644 index 00000000..0f0f3faf --- /dev/null +++ b/v2/pkg/defenderdeploy.sol/defenderdeploy.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package defenderdeploy + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// DefenderDeployMetaData contains all meta data concerning the DefenderDeploy contract. +var DefenderDeployMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122024f703bf58fe16c06205a31f9ed26113603ad9c02820dbd6a3872487d3133e8564736f6c634300081a0033", +} + +// DefenderDeployABI is the input ABI used to generate the binding from. +// Deprecated: Use DefenderDeployMetaData.ABI instead. +var DefenderDeployABI = DefenderDeployMetaData.ABI + +// DefenderDeployBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use DefenderDeployMetaData.Bin instead. +var DefenderDeployBin = DefenderDeployMetaData.Bin + +// DeployDefenderDeploy deploys a new Ethereum contract, binding an instance of DefenderDeploy to it. +func DeployDefenderDeploy(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *DefenderDeploy, error) { + parsed, err := DefenderDeployMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(DefenderDeployBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &DefenderDeploy{DefenderDeployCaller: DefenderDeployCaller{contract: contract}, DefenderDeployTransactor: DefenderDeployTransactor{contract: contract}, DefenderDeployFilterer: DefenderDeployFilterer{contract: contract}}, nil +} + +// DefenderDeploy is an auto generated Go binding around an Ethereum contract. +type DefenderDeploy struct { + DefenderDeployCaller // Read-only binding to the contract + DefenderDeployTransactor // Write-only binding to the contract + DefenderDeployFilterer // Log filterer for contract events +} + +// DefenderDeployCaller is an auto generated read-only Go binding around an Ethereum contract. +type DefenderDeployCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// DefenderDeployTransactor is an auto generated write-only Go binding around an Ethereum contract. +type DefenderDeployTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// DefenderDeployFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type DefenderDeployFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// DefenderDeploySession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type DefenderDeploySession struct { + Contract *DefenderDeploy // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// DefenderDeployCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type DefenderDeployCallerSession struct { + Contract *DefenderDeployCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// DefenderDeployTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type DefenderDeployTransactorSession struct { + Contract *DefenderDeployTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// DefenderDeployRaw is an auto generated low-level Go binding around an Ethereum contract. +type DefenderDeployRaw struct { + Contract *DefenderDeploy // Generic contract binding to access the raw methods on +} + +// DefenderDeployCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type DefenderDeployCallerRaw struct { + Contract *DefenderDeployCaller // Generic read-only contract binding to access the raw methods on +} + +// DefenderDeployTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type DefenderDeployTransactorRaw struct { + Contract *DefenderDeployTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewDefenderDeploy creates a new instance of DefenderDeploy, bound to a specific deployed contract. +func NewDefenderDeploy(address common.Address, backend bind.ContractBackend) (*DefenderDeploy, error) { + contract, err := bindDefenderDeploy(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &DefenderDeploy{DefenderDeployCaller: DefenderDeployCaller{contract: contract}, DefenderDeployTransactor: DefenderDeployTransactor{contract: contract}, DefenderDeployFilterer: DefenderDeployFilterer{contract: contract}}, nil +} + +// NewDefenderDeployCaller creates a new read-only instance of DefenderDeploy, bound to a specific deployed contract. +func NewDefenderDeployCaller(address common.Address, caller bind.ContractCaller) (*DefenderDeployCaller, error) { + contract, err := bindDefenderDeploy(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &DefenderDeployCaller{contract: contract}, nil +} + +// NewDefenderDeployTransactor creates a new write-only instance of DefenderDeploy, bound to a specific deployed contract. +func NewDefenderDeployTransactor(address common.Address, transactor bind.ContractTransactor) (*DefenderDeployTransactor, error) { + contract, err := bindDefenderDeploy(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &DefenderDeployTransactor{contract: contract}, nil +} + +// NewDefenderDeployFilterer creates a new log filterer instance of DefenderDeploy, bound to a specific deployed contract. +func NewDefenderDeployFilterer(address common.Address, filterer bind.ContractFilterer) (*DefenderDeployFilterer, error) { + contract, err := bindDefenderDeploy(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &DefenderDeployFilterer{contract: contract}, nil +} + +// bindDefenderDeploy binds a generic wrapper to an already deployed contract. +func bindDefenderDeploy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := DefenderDeployMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_DefenderDeploy *DefenderDeployRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _DefenderDeploy.Contract.DefenderDeployCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_DefenderDeploy *DefenderDeployRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _DefenderDeploy.Contract.DefenderDeployTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_DefenderDeploy *DefenderDeployRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _DefenderDeploy.Contract.DefenderDeployTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_DefenderDeploy *DefenderDeployCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _DefenderDeploy.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_DefenderDeploy *DefenderDeployTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _DefenderDeploy.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_DefenderDeploy *DefenderDeployTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _DefenderDeploy.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/erc1967proxy.sol/erc1967proxy.go b/v2/pkg/erc1967proxy.sol/erc1967proxy.go new file mode 100644 index 00000000..7fd94cde --- /dev/null +++ b/v2/pkg/erc1967proxy.sol/erc1967proxy.go @@ -0,0 +1,368 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc1967proxy + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ERC1967ProxyMetaData contains all meta data concerning the ERC1967Proxy contract. +var ERC1967ProxyMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"payable\"},{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967InvalidImplementation\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967NonPayable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]}]", + Bin: "0x608060405260405161041d38038061041d83398101604081905261002291610268565b61002c8282610033565b5050610358565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b919061033c565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b038111156102ae57600080fd5b8301601f810185136102bf57600080fd5b80516001600160401b038111156102d8576102d861022e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103065761030661022e565b60405281815282820160200187101561031e57600080fd5b61032f826020830160208601610244565b8093505050509250929050565b6000825161034e818460208701610244565b9190910192915050565b60b7806103666000396000f3fe6080604052600a600c565b005b60186014601a565b605e565b565b600060597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e808015607c573d6000f35b3d6000fdfea2646970667358221220266fcff3f047fd27b99bc2ae00f2594c9dc6c8903cdba2daf7cf2623c610c93f64736f6c634300081a0033", +} + +// ERC1967ProxyABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC1967ProxyMetaData.ABI instead. +var ERC1967ProxyABI = ERC1967ProxyMetaData.ABI + +// ERC1967ProxyBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ERC1967ProxyMetaData.Bin instead. +var ERC1967ProxyBin = ERC1967ProxyMetaData.Bin + +// DeployERC1967Proxy deploys a new Ethereum contract, binding an instance of ERC1967Proxy to it. +func DeployERC1967Proxy(auth *bind.TransactOpts, backend bind.ContractBackend, implementation common.Address, _data []byte) (common.Address, *types.Transaction, *ERC1967Proxy, error) { + parsed, err := ERC1967ProxyMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC1967ProxyBin), backend, implementation, _data) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ERC1967Proxy{ERC1967ProxyCaller: ERC1967ProxyCaller{contract: contract}, ERC1967ProxyTransactor: ERC1967ProxyTransactor{contract: contract}, ERC1967ProxyFilterer: ERC1967ProxyFilterer{contract: contract}}, nil +} + +// ERC1967Proxy is an auto generated Go binding around an Ethereum contract. +type ERC1967Proxy struct { + ERC1967ProxyCaller // Read-only binding to the contract + ERC1967ProxyTransactor // Write-only binding to the contract + ERC1967ProxyFilterer // Log filterer for contract events +} + +// ERC1967ProxyCaller is an auto generated read-only Go binding around an Ethereum contract. +type ERC1967ProxyCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC1967ProxyTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC1967ProxyTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC1967ProxyFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC1967ProxyFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC1967ProxySession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC1967ProxySession struct { + Contract *ERC1967Proxy // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC1967ProxyCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC1967ProxyCallerSession struct { + Contract *ERC1967ProxyCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC1967ProxyTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC1967ProxyTransactorSession struct { + Contract *ERC1967ProxyTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC1967ProxyRaw is an auto generated low-level Go binding around an Ethereum contract. +type ERC1967ProxyRaw struct { + Contract *ERC1967Proxy // Generic contract binding to access the raw methods on +} + +// ERC1967ProxyCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC1967ProxyCallerRaw struct { + Contract *ERC1967ProxyCaller // Generic read-only contract binding to access the raw methods on +} + +// ERC1967ProxyTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC1967ProxyTransactorRaw struct { + Contract *ERC1967ProxyTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC1967Proxy creates a new instance of ERC1967Proxy, bound to a specific deployed contract. +func NewERC1967Proxy(address common.Address, backend bind.ContractBackend) (*ERC1967Proxy, error) { + contract, err := bindERC1967Proxy(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC1967Proxy{ERC1967ProxyCaller: ERC1967ProxyCaller{contract: contract}, ERC1967ProxyTransactor: ERC1967ProxyTransactor{contract: contract}, ERC1967ProxyFilterer: ERC1967ProxyFilterer{contract: contract}}, nil +} + +// NewERC1967ProxyCaller creates a new read-only instance of ERC1967Proxy, bound to a specific deployed contract. +func NewERC1967ProxyCaller(address common.Address, caller bind.ContractCaller) (*ERC1967ProxyCaller, error) { + contract, err := bindERC1967Proxy(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC1967ProxyCaller{contract: contract}, nil +} + +// NewERC1967ProxyTransactor creates a new write-only instance of ERC1967Proxy, bound to a specific deployed contract. +func NewERC1967ProxyTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC1967ProxyTransactor, error) { + contract, err := bindERC1967Proxy(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC1967ProxyTransactor{contract: contract}, nil +} + +// NewERC1967ProxyFilterer creates a new log filterer instance of ERC1967Proxy, bound to a specific deployed contract. +func NewERC1967ProxyFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC1967ProxyFilterer, error) { + contract, err := bindERC1967Proxy(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC1967ProxyFilterer{contract: contract}, nil +} + +// bindERC1967Proxy binds a generic wrapper to an already deployed contract. +func bindERC1967Proxy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC1967ProxyMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC1967Proxy *ERC1967ProxyRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC1967Proxy.Contract.ERC1967ProxyCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC1967Proxy *ERC1967ProxyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC1967Proxy.Contract.ERC1967ProxyTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC1967Proxy *ERC1967ProxyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC1967Proxy.Contract.ERC1967ProxyTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC1967Proxy *ERC1967ProxyCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC1967Proxy.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC1967Proxy *ERC1967ProxyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC1967Proxy.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC1967Proxy *ERC1967ProxyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC1967Proxy.Contract.contract.Transact(opts, method, params...) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_ERC1967Proxy *ERC1967ProxyTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _ERC1967Proxy.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_ERC1967Proxy *ERC1967ProxySession) Fallback(calldata []byte) (*types.Transaction, error) { + return _ERC1967Proxy.Contract.Fallback(&_ERC1967Proxy.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_ERC1967Proxy *ERC1967ProxyTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _ERC1967Proxy.Contract.Fallback(&_ERC1967Proxy.TransactOpts, calldata) +} + +// ERC1967ProxyUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the ERC1967Proxy contract. +type ERC1967ProxyUpgradedIterator struct { + Event *ERC1967ProxyUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC1967ProxyUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC1967ProxyUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC1967ProxyUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC1967ProxyUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC1967ProxyUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC1967ProxyUpgraded represents a Upgraded event raised by the ERC1967Proxy contract. +type ERC1967ProxyUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_ERC1967Proxy *ERC1967ProxyFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*ERC1967ProxyUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _ERC1967Proxy.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &ERC1967ProxyUpgradedIterator{contract: _ERC1967Proxy.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_ERC1967Proxy *ERC1967ProxyFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967ProxyUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _ERC1967Proxy.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC1967ProxyUpgraded) + if err := _ERC1967Proxy.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_ERC1967Proxy *ERC1967ProxyFilterer) ParseUpgraded(log types.Log) (*ERC1967ProxyUpgraded, error) { + event := new(ERC1967ProxyUpgraded) + if err := _ERC1967Proxy.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/erc1967utils.sol/erc1967utils.go b/v2/pkg/erc1967utils.sol/erc1967utils.go new file mode 100644 index 00000000..767ea417 --- /dev/null +++ b/v2/pkg/erc1967utils.sol/erc1967utils.go @@ -0,0 +1,626 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc1967utils + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ERC1967UtilsMetaData contains all meta data concerning the ERC1967Utils contract. +var ERC1967UtilsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"AdminChanged\",\"inputs\":[{\"name\":\"previousAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BeaconUpgraded\",\"inputs\":[{\"name\":\"beacon\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ERC1967InvalidAdmin\",\"inputs\":[{\"name\":\"admin\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967InvalidBeacon\",\"inputs\":[{\"name\":\"beacon\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967InvalidImplementation\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967NonPayable\",\"inputs\":[]}]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122001eb0535328502a373828dff3af9c93d4979f247a97487a5d4c2b93bcd54364f64736f6c634300081a0033", +} + +// ERC1967UtilsABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC1967UtilsMetaData.ABI instead. +var ERC1967UtilsABI = ERC1967UtilsMetaData.ABI + +// ERC1967UtilsBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ERC1967UtilsMetaData.Bin instead. +var ERC1967UtilsBin = ERC1967UtilsMetaData.Bin + +// DeployERC1967Utils deploys a new Ethereum contract, binding an instance of ERC1967Utils to it. +func DeployERC1967Utils(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC1967Utils, error) { + parsed, err := ERC1967UtilsMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC1967UtilsBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ERC1967Utils{ERC1967UtilsCaller: ERC1967UtilsCaller{contract: contract}, ERC1967UtilsTransactor: ERC1967UtilsTransactor{contract: contract}, ERC1967UtilsFilterer: ERC1967UtilsFilterer{contract: contract}}, nil +} + +// ERC1967Utils is an auto generated Go binding around an Ethereum contract. +type ERC1967Utils struct { + ERC1967UtilsCaller // Read-only binding to the contract + ERC1967UtilsTransactor // Write-only binding to the contract + ERC1967UtilsFilterer // Log filterer for contract events +} + +// ERC1967UtilsCaller is an auto generated read-only Go binding around an Ethereum contract. +type ERC1967UtilsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC1967UtilsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC1967UtilsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC1967UtilsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC1967UtilsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC1967UtilsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC1967UtilsSession struct { + Contract *ERC1967Utils // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC1967UtilsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC1967UtilsCallerSession struct { + Contract *ERC1967UtilsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC1967UtilsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC1967UtilsTransactorSession struct { + Contract *ERC1967UtilsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC1967UtilsRaw is an auto generated low-level Go binding around an Ethereum contract. +type ERC1967UtilsRaw struct { + Contract *ERC1967Utils // Generic contract binding to access the raw methods on +} + +// ERC1967UtilsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC1967UtilsCallerRaw struct { + Contract *ERC1967UtilsCaller // Generic read-only contract binding to access the raw methods on +} + +// ERC1967UtilsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC1967UtilsTransactorRaw struct { + Contract *ERC1967UtilsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC1967Utils creates a new instance of ERC1967Utils, bound to a specific deployed contract. +func NewERC1967Utils(address common.Address, backend bind.ContractBackend) (*ERC1967Utils, error) { + contract, err := bindERC1967Utils(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC1967Utils{ERC1967UtilsCaller: ERC1967UtilsCaller{contract: contract}, ERC1967UtilsTransactor: ERC1967UtilsTransactor{contract: contract}, ERC1967UtilsFilterer: ERC1967UtilsFilterer{contract: contract}}, nil +} + +// NewERC1967UtilsCaller creates a new read-only instance of ERC1967Utils, bound to a specific deployed contract. +func NewERC1967UtilsCaller(address common.Address, caller bind.ContractCaller) (*ERC1967UtilsCaller, error) { + contract, err := bindERC1967Utils(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC1967UtilsCaller{contract: contract}, nil +} + +// NewERC1967UtilsTransactor creates a new write-only instance of ERC1967Utils, bound to a specific deployed contract. +func NewERC1967UtilsTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC1967UtilsTransactor, error) { + contract, err := bindERC1967Utils(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC1967UtilsTransactor{contract: contract}, nil +} + +// NewERC1967UtilsFilterer creates a new log filterer instance of ERC1967Utils, bound to a specific deployed contract. +func NewERC1967UtilsFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC1967UtilsFilterer, error) { + contract, err := bindERC1967Utils(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC1967UtilsFilterer{contract: contract}, nil +} + +// bindERC1967Utils binds a generic wrapper to an already deployed contract. +func bindERC1967Utils(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC1967UtilsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC1967Utils *ERC1967UtilsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC1967Utils.Contract.ERC1967UtilsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC1967Utils *ERC1967UtilsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC1967Utils.Contract.ERC1967UtilsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC1967Utils *ERC1967UtilsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC1967Utils.Contract.ERC1967UtilsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC1967Utils *ERC1967UtilsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC1967Utils.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC1967Utils *ERC1967UtilsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC1967Utils.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC1967Utils *ERC1967UtilsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC1967Utils.Contract.contract.Transact(opts, method, params...) +} + +// ERC1967UtilsAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the ERC1967Utils contract. +type ERC1967UtilsAdminChangedIterator struct { + Event *ERC1967UtilsAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC1967UtilsAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC1967UtilsAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC1967UtilsAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC1967UtilsAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC1967UtilsAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC1967UtilsAdminChanged represents a AdminChanged event raised by the ERC1967Utils contract. +type ERC1967UtilsAdminChanged struct { + PreviousAdmin common.Address + NewAdmin common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_ERC1967Utils *ERC1967UtilsFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*ERC1967UtilsAdminChangedIterator, error) { + + logs, sub, err := _ERC1967Utils.contract.FilterLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return &ERC1967UtilsAdminChangedIterator{contract: _ERC1967Utils.contract, event: "AdminChanged", logs: logs, sub: sub}, nil +} + +// WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_ERC1967Utils *ERC1967UtilsFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *ERC1967UtilsAdminChanged) (event.Subscription, error) { + + logs, sub, err := _ERC1967Utils.contract.WatchLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC1967UtilsAdminChanged) + if err := _ERC1967Utils.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_ERC1967Utils *ERC1967UtilsFilterer) ParseAdminChanged(log types.Log) (*ERC1967UtilsAdminChanged, error) { + event := new(ERC1967UtilsAdminChanged) + if err := _ERC1967Utils.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC1967UtilsBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the ERC1967Utils contract. +type ERC1967UtilsBeaconUpgradedIterator struct { + Event *ERC1967UtilsBeaconUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC1967UtilsBeaconUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC1967UtilsBeaconUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC1967UtilsBeaconUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC1967UtilsBeaconUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC1967UtilsBeaconUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC1967UtilsBeaconUpgraded represents a BeaconUpgraded event raised by the ERC1967Utils contract. +type ERC1967UtilsBeaconUpgraded struct { + Beacon common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_ERC1967Utils *ERC1967UtilsFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*ERC1967UtilsBeaconUpgradedIterator, error) { + + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _ERC1967Utils.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) + if err != nil { + return nil, err + } + return &ERC1967UtilsBeaconUpgradedIterator{contract: _ERC1967Utils.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil +} + +// WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_ERC1967Utils *ERC1967UtilsFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967UtilsBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { + + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _ERC1967Utils.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC1967UtilsBeaconUpgraded) + if err := _ERC1967Utils.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_ERC1967Utils *ERC1967UtilsFilterer) ParseBeaconUpgraded(log types.Log) (*ERC1967UtilsBeaconUpgraded, error) { + event := new(ERC1967UtilsBeaconUpgraded) + if err := _ERC1967Utils.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC1967UtilsUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the ERC1967Utils contract. +type ERC1967UtilsUpgradedIterator struct { + Event *ERC1967UtilsUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC1967UtilsUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC1967UtilsUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC1967UtilsUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC1967UtilsUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC1967UtilsUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC1967UtilsUpgraded represents a Upgraded event raised by the ERC1967Utils contract. +type ERC1967UtilsUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_ERC1967Utils *ERC1967UtilsFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*ERC1967UtilsUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _ERC1967Utils.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &ERC1967UtilsUpgradedIterator{contract: _ERC1967Utils.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_ERC1967Utils *ERC1967UtilsFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967UtilsUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _ERC1967Utils.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC1967UtilsUpgraded) + if err := _ERC1967Utils.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_ERC1967Utils *ERC1967UtilsFilterer) ParseUpgraded(log types.Log) (*ERC1967UtilsUpgraded, error) { + event := new(ERC1967UtilsUpgraded) + if err := _ERC1967Utils.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/erc20.sol/erc20.go b/v2/pkg/erc20.sol/erc20.go new file mode 100644 index 00000000..62b2a3bc --- /dev/null +++ b/v2/pkg/erc20.sol/erc20.go @@ -0,0 +1,738 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc20 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ERC20MetaData contains all meta data concerning the ERC20 contract. +var ERC20MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ERC20InsufficientAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InsufficientBalance\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidApprover\",\"inputs\":[{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSender\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSpender\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}]}]", +} + +// ERC20ABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC20MetaData.ABI instead. +var ERC20ABI = ERC20MetaData.ABI + +// ERC20 is an auto generated Go binding around an Ethereum contract. +type ERC20 struct { + ERC20Caller // Read-only binding to the contract + ERC20Transactor // Write-only binding to the contract + ERC20Filterer // Log filterer for contract events +} + +// ERC20Caller is an auto generated read-only Go binding around an Ethereum contract. +type ERC20Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20Transactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC20Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC20Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC20Session struct { + Contract *ERC20 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC20CallerSession struct { + Contract *ERC20Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC20TransactorSession struct { + Contract *ERC20Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20Raw is an auto generated low-level Go binding around an Ethereum contract. +type ERC20Raw struct { + Contract *ERC20 // Generic contract binding to access the raw methods on +} + +// ERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC20CallerRaw struct { + Contract *ERC20Caller // Generic read-only contract binding to access the raw methods on +} + +// ERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC20TransactorRaw struct { + Contract *ERC20Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC20 creates a new instance of ERC20, bound to a specific deployed contract. +func NewERC20(address common.Address, backend bind.ContractBackend) (*ERC20, error) { + contract, err := bindERC20(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC20{ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil +} + +// NewERC20Caller creates a new read-only instance of ERC20, bound to a specific deployed contract. +func NewERC20Caller(address common.Address, caller bind.ContractCaller) (*ERC20Caller, error) { + contract, err := bindERC20(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC20Caller{contract: contract}, nil +} + +// NewERC20Transactor creates a new write-only instance of ERC20, bound to a specific deployed contract. +func NewERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC20Transactor, error) { + contract, err := bindERC20(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC20Transactor{contract: contract}, nil +} + +// NewERC20Filterer creates a new log filterer instance of ERC20, bound to a specific deployed contract. +func NewERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC20Filterer, error) { + contract, err := bindERC20(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC20Filterer{contract: contract}, nil +} + +// bindERC20 binds a generic wrapper to an already deployed contract. +func bindERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC20MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC20 *ERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20.Contract.ERC20Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC20 *ERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20.Contract.ERC20Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20 *ERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20.Contract.ERC20Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC20 *ERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC20 *ERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20 *ERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ERC20 *ERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ERC20 *ERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ERC20.Contract.Allowance(&_ERC20.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ERC20 *ERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ERC20.Contract.Allowance(&_ERC20.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ERC20 *ERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ERC20 *ERC20Session) BalanceOf(account common.Address) (*big.Int, error) { + return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ERC20 *ERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, account) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ERC20 *ERC20Caller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ERC20 *ERC20Session) Decimals() (uint8, error) { + return _ERC20.Contract.Decimals(&_ERC20.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ERC20 *ERC20CallerSession) Decimals() (uint8, error) { + return _ERC20.Contract.Decimals(&_ERC20.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ERC20 *ERC20Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ERC20 *ERC20Session) Name() (string, error) { + return _ERC20.Contract.Name(&_ERC20.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ERC20 *ERC20CallerSession) Name() (string, error) { + return _ERC20.Contract.Name(&_ERC20.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ERC20 *ERC20Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ERC20 *ERC20Session) Symbol() (string, error) { + return _ERC20.Contract.Symbol(&_ERC20.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ERC20 *ERC20CallerSession) Symbol() (string, error) { + return _ERC20.Contract.Symbol(&_ERC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ERC20 *ERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ERC20 *ERC20Session) TotalSupply() (*big.Int, error) { + return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ERC20 *ERC20CallerSession) TotalSupply() (*big.Int, error) { + return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ERC20 *ERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "approve", spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ERC20 *ERC20Session) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Approve(&_ERC20.TransactOpts, spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ERC20 *ERC20TransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Approve(&_ERC20.TransactOpts, spender, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ERC20 *ERC20Transactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "transfer", to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ERC20 *ERC20Session) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ERC20 *ERC20TransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ERC20 *ERC20Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "transferFrom", from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ERC20 *ERC20Session) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ERC20 *ERC20TransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, from, to, value) +} + +// ERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20 contract. +type ERC20ApprovalIterator struct { + Event *ERC20Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20Approval represents a Approval event raised by the ERC20 contract. +type ERC20Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ERC20 *ERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20ApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &ERC20ApprovalIterator{contract: _ERC20.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ERC20 *ERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20Approval) + if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ERC20 *ERC20Filterer) ParseApproval(log types.Log) (*ERC20Approval, error) { + event := new(ERC20Approval) + if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20 contract. +type ERC20TransferIterator struct { + Event *ERC20Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20Transfer represents a Transfer event raised by the ERC20 contract. +type ERC20Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ERC20 *ERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20TransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &ERC20TransferIterator{contract: _ERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ERC20 *ERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20Transfer) + if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ERC20 *ERC20Filterer) ParseTransfer(log types.Log) (*ERC20Transfer, error) { + event := new(ERC20Transfer) + if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/erc20/ierc20.sol/ierc20.go b/v2/pkg/erc20/ierc20.sol/ierc20.go new file mode 100644 index 00000000..57cb21f9 --- /dev/null +++ b/v2/pkg/erc20/ierc20.sol/ierc20.go @@ -0,0 +1,645 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc20 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC20MetaData contains all meta data concerning the IERC20 contract. +var IERC20MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", +} + +// IERC20ABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC20MetaData.ABI instead. +var IERC20ABI = IERC20MetaData.ABI + +// IERC20 is an auto generated Go binding around an Ethereum contract. +type IERC20 struct { + IERC20Caller // Read-only binding to the contract + IERC20Transactor // Write-only binding to the contract + IERC20Filterer // Log filterer for contract events +} + +// IERC20Caller is an auto generated read-only Go binding around an Ethereum contract. +type IERC20Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20Transactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC20Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC20Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC20Session struct { + Contract *IERC20 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC20CallerSession struct { + Contract *IERC20Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC20TransactorSession struct { + Contract *IERC20Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20Raw is an auto generated low-level Go binding around an Ethereum contract. +type IERC20Raw struct { + Contract *IERC20 // Generic contract binding to access the raw methods on +} + +// IERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC20CallerRaw struct { + Contract *IERC20Caller // Generic read-only contract binding to access the raw methods on +} + +// IERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC20TransactorRaw struct { + Contract *IERC20Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC20 creates a new instance of IERC20, bound to a specific deployed contract. +func NewIERC20(address common.Address, backend bind.ContractBackend) (*IERC20, error) { + contract, err := bindIERC20(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC20{IERC20Caller: IERC20Caller{contract: contract}, IERC20Transactor: IERC20Transactor{contract: contract}, IERC20Filterer: IERC20Filterer{contract: contract}}, nil +} + +// NewIERC20Caller creates a new read-only instance of IERC20, bound to a specific deployed contract. +func NewIERC20Caller(address common.Address, caller bind.ContractCaller) (*IERC20Caller, error) { + contract, err := bindIERC20(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC20Caller{contract: contract}, nil +} + +// NewIERC20Transactor creates a new write-only instance of IERC20, bound to a specific deployed contract. +func NewIERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC20Transactor, error) { + contract, err := bindIERC20(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC20Transactor{contract: contract}, nil +} + +// NewIERC20Filterer creates a new log filterer instance of IERC20, bound to a specific deployed contract. +func NewIERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC20Filterer, error) { + contract, err := bindIERC20(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC20Filterer{contract: contract}, nil +} + +// bindIERC20 binds a generic wrapper to an already deployed contract. +func bindIERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC20MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20 *IERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20.Contract.IERC20Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20 *IERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20.Contract.IERC20Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20 *IERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20.Contract.IERC20Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20 *IERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20 *IERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20 *IERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IERC20 *IERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _IERC20.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IERC20 *IERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IERC20 *IERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IERC20 *IERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _IERC20.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IERC20 *IERC20Session) BalanceOf(account common.Address) (*big.Int, error) { + return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IERC20 *IERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC20 *IERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IERC20.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC20 *IERC20Session) TotalSupply() (*big.Int, error) { + return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC20 *IERC20CallerSession) TotalSupply() (*big.Int, error) { + return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_IERC20 *IERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20.contract.Transact(opts, "approve", spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_IERC20 *IERC20Session) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_IERC20 *IERC20TransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_IERC20 *IERC20Transactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20.contract.Transact(opts, "transfer", to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_IERC20 *IERC20Session) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_IERC20 *IERC20TransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_IERC20 *IERC20Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20.contract.Transact(opts, "transferFrom", from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_IERC20 *IERC20Session) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_IERC20 *IERC20TransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, from, to, value) +} + +// IERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC20 contract. +type IERC20ApprovalIterator struct { + Event *IERC20Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20Approval represents a Approval event raised by the IERC20 contract. +type IERC20Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IERC20 *IERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*IERC20ApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _IERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &IERC20ApprovalIterator{contract: _IERC20.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IERC20 *IERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _IERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC20Approval) + if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IERC20 *IERC20Filterer) ParseApproval(log types.Log) (*IERC20Approval, error) { + event := new(IERC20Approval) + if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC20 contract. +type IERC20TransferIterator struct { + Event *IERC20Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20Transfer represents a Transfer event raised by the IERC20 contract. +type IERC20Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IERC20 *IERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*IERC20TransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &IERC20TransferIterator{contract: _IERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IERC20 *IERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC20Transfer) + if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IERC20 *IERC20Filterer) ParseTransfer(log types.Log) (*IERC20Transfer, error) { + event := new(IERC20Transfer) + if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/erc20burnable.sol/erc20burnable.go b/v2/pkg/erc20burnable.sol/erc20burnable.go new file mode 100644 index 00000000..c445450f --- /dev/null +++ b/v2/pkg/erc20burnable.sol/erc20burnable.go @@ -0,0 +1,780 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc20burnable + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ERC20BurnableMetaData contains all meta data concerning the ERC20Burnable contract. +var ERC20BurnableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"burnFrom\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ERC20InsufficientAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InsufficientBalance\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidApprover\",\"inputs\":[{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSender\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSpender\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}]}]", +} + +// ERC20BurnableABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC20BurnableMetaData.ABI instead. +var ERC20BurnableABI = ERC20BurnableMetaData.ABI + +// ERC20Burnable is an auto generated Go binding around an Ethereum contract. +type ERC20Burnable struct { + ERC20BurnableCaller // Read-only binding to the contract + ERC20BurnableTransactor // Write-only binding to the contract + ERC20BurnableFilterer // Log filterer for contract events +} + +// ERC20BurnableCaller is an auto generated read-only Go binding around an Ethereum contract. +type ERC20BurnableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20BurnableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC20BurnableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20BurnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC20BurnableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20BurnableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC20BurnableSession struct { + Contract *ERC20Burnable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20BurnableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC20BurnableCallerSession struct { + Contract *ERC20BurnableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC20BurnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC20BurnableTransactorSession struct { + Contract *ERC20BurnableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20BurnableRaw is an auto generated low-level Go binding around an Ethereum contract. +type ERC20BurnableRaw struct { + Contract *ERC20Burnable // Generic contract binding to access the raw methods on +} + +// ERC20BurnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC20BurnableCallerRaw struct { + Contract *ERC20BurnableCaller // Generic read-only contract binding to access the raw methods on +} + +// ERC20BurnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC20BurnableTransactorRaw struct { + Contract *ERC20BurnableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC20Burnable creates a new instance of ERC20Burnable, bound to a specific deployed contract. +func NewERC20Burnable(address common.Address, backend bind.ContractBackend) (*ERC20Burnable, error) { + contract, err := bindERC20Burnable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC20Burnable{ERC20BurnableCaller: ERC20BurnableCaller{contract: contract}, ERC20BurnableTransactor: ERC20BurnableTransactor{contract: contract}, ERC20BurnableFilterer: ERC20BurnableFilterer{contract: contract}}, nil +} + +// NewERC20BurnableCaller creates a new read-only instance of ERC20Burnable, bound to a specific deployed contract. +func NewERC20BurnableCaller(address common.Address, caller bind.ContractCaller) (*ERC20BurnableCaller, error) { + contract, err := bindERC20Burnable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC20BurnableCaller{contract: contract}, nil +} + +// NewERC20BurnableTransactor creates a new write-only instance of ERC20Burnable, bound to a specific deployed contract. +func NewERC20BurnableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20BurnableTransactor, error) { + contract, err := bindERC20Burnable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC20BurnableTransactor{contract: contract}, nil +} + +// NewERC20BurnableFilterer creates a new log filterer instance of ERC20Burnable, bound to a specific deployed contract. +func NewERC20BurnableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20BurnableFilterer, error) { + contract, err := bindERC20Burnable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC20BurnableFilterer{contract: contract}, nil +} + +// bindERC20Burnable binds a generic wrapper to an already deployed contract. +func bindERC20Burnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC20BurnableMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC20Burnable *ERC20BurnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20Burnable.Contract.ERC20BurnableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC20Burnable *ERC20BurnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20Burnable.Contract.ERC20BurnableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20Burnable *ERC20BurnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20Burnable.Contract.ERC20BurnableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC20Burnable *ERC20BurnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20Burnable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC20Burnable *ERC20BurnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20Burnable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20Burnable *ERC20BurnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20Burnable.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ERC20Burnable *ERC20BurnableCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _ERC20Burnable.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ERC20Burnable *ERC20BurnableSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ERC20Burnable.Contract.Allowance(&_ERC20Burnable.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ERC20Burnable *ERC20BurnableCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ERC20Burnable.Contract.Allowance(&_ERC20Burnable.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ERC20Burnable *ERC20BurnableCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _ERC20Burnable.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ERC20Burnable *ERC20BurnableSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ERC20Burnable.Contract.BalanceOf(&_ERC20Burnable.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ERC20Burnable *ERC20BurnableCallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ERC20Burnable.Contract.BalanceOf(&_ERC20Burnable.CallOpts, account) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ERC20Burnable *ERC20BurnableCaller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ERC20Burnable.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ERC20Burnable *ERC20BurnableSession) Decimals() (uint8, error) { + return _ERC20Burnable.Contract.Decimals(&_ERC20Burnable.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ERC20Burnable *ERC20BurnableCallerSession) Decimals() (uint8, error) { + return _ERC20Burnable.Contract.Decimals(&_ERC20Burnable.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ERC20Burnable *ERC20BurnableCaller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ERC20Burnable.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ERC20Burnable *ERC20BurnableSession) Name() (string, error) { + return _ERC20Burnable.Contract.Name(&_ERC20Burnable.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ERC20Burnable *ERC20BurnableCallerSession) Name() (string, error) { + return _ERC20Burnable.Contract.Name(&_ERC20Burnable.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ERC20Burnable *ERC20BurnableCaller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ERC20Burnable.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ERC20Burnable *ERC20BurnableSession) Symbol() (string, error) { + return _ERC20Burnable.Contract.Symbol(&_ERC20Burnable.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ERC20Burnable *ERC20BurnableCallerSession) Symbol() (string, error) { + return _ERC20Burnable.Contract.Symbol(&_ERC20Burnable.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ERC20Burnable *ERC20BurnableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ERC20Burnable.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ERC20Burnable *ERC20BurnableSession) TotalSupply() (*big.Int, error) { + return _ERC20Burnable.Contract.TotalSupply(&_ERC20Burnable.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ERC20Burnable *ERC20BurnableCallerSession) TotalSupply() (*big.Int, error) { + return _ERC20Burnable.Contract.TotalSupply(&_ERC20Burnable.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ERC20Burnable *ERC20BurnableTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.contract.Transact(opts, "approve", spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ERC20Burnable *ERC20BurnableSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.Contract.Approve(&_ERC20Burnable.TransactOpts, spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ERC20Burnable *ERC20BurnableTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.Contract.Approve(&_ERC20Burnable.TransactOpts, spender, value) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 value) returns() +func (_ERC20Burnable *ERC20BurnableTransactor) Burn(opts *bind.TransactOpts, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.contract.Transact(opts, "burn", value) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 value) returns() +func (_ERC20Burnable *ERC20BurnableSession) Burn(value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.Contract.Burn(&_ERC20Burnable.TransactOpts, value) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 value) returns() +func (_ERC20Burnable *ERC20BurnableTransactorSession) Burn(value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.Contract.Burn(&_ERC20Burnable.TransactOpts, value) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 value) returns() +func (_ERC20Burnable *ERC20BurnableTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.contract.Transact(opts, "burnFrom", account, value) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 value) returns() +func (_ERC20Burnable *ERC20BurnableSession) BurnFrom(account common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.Contract.BurnFrom(&_ERC20Burnable.TransactOpts, account, value) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 value) returns() +func (_ERC20Burnable *ERC20BurnableTransactorSession) BurnFrom(account common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.Contract.BurnFrom(&_ERC20Burnable.TransactOpts, account, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ERC20Burnable *ERC20BurnableTransactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.contract.Transact(opts, "transfer", to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ERC20Burnable *ERC20BurnableSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.Contract.Transfer(&_ERC20Burnable.TransactOpts, to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ERC20Burnable *ERC20BurnableTransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.Contract.Transfer(&_ERC20Burnable.TransactOpts, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ERC20Burnable *ERC20BurnableTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.contract.Transact(opts, "transferFrom", from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ERC20Burnable *ERC20BurnableSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.Contract.TransferFrom(&_ERC20Burnable.TransactOpts, from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ERC20Burnable *ERC20BurnableTransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ERC20Burnable.Contract.TransferFrom(&_ERC20Burnable.TransactOpts, from, to, value) +} + +// ERC20BurnableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20Burnable contract. +type ERC20BurnableApprovalIterator struct { + Event *ERC20BurnableApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20BurnableApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20BurnableApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20BurnableApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20BurnableApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20BurnableApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20BurnableApproval represents a Approval event raised by the ERC20Burnable contract. +type ERC20BurnableApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ERC20Burnable *ERC20BurnableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20BurnableApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ERC20Burnable.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &ERC20BurnableApprovalIterator{contract: _ERC20Burnable.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ERC20Burnable *ERC20BurnableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20BurnableApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ERC20Burnable.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20BurnableApproval) + if err := _ERC20Burnable.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ERC20Burnable *ERC20BurnableFilterer) ParseApproval(log types.Log) (*ERC20BurnableApproval, error) { + event := new(ERC20BurnableApproval) + if err := _ERC20Burnable.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20BurnableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20Burnable contract. +type ERC20BurnableTransferIterator struct { + Event *ERC20BurnableTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20BurnableTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20BurnableTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20BurnableTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20BurnableTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20BurnableTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20BurnableTransfer represents a Transfer event raised by the ERC20Burnable contract. +type ERC20BurnableTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ERC20Burnable *ERC20BurnableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20BurnableTransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20Burnable.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &ERC20BurnableTransferIterator{contract: _ERC20Burnable.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ERC20Burnable *ERC20BurnableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20BurnableTransfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20Burnable.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20BurnableTransfer) + if err := _ERC20Burnable.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ERC20Burnable *ERC20BurnableFilterer) ParseTransfer(log types.Log) (*ERC20BurnableTransfer, error) { + event := new(ERC20BurnableTransfer) + if err := _ERC20Burnable.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/erc20custodynew.sol/erc20custodynew.go b/v2/pkg/erc20custodynew.sol/erc20custodynew.go new file mode 100644 index 00000000..bbd8cdd6 --- /dev/null +++ b/v2/pkg/erc20custodynew.sol/erc20custodynew.go @@ -0,0 +1,792 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc20custodynew + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ERC20CustodyNewMetaData contains all meta data concerning the ERC20CustodyNew contract. +var ERC20CustodyNewMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_gateway\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tssAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"gateway\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIGatewayEVM\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndCall\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndRevert\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndCall\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndRevert\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x608060405234801561001057600080fd5b50604051610b4a380380610b4a83398101604081905261002f916100bc565b60016000556001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ef565b80516001600160a01b03811681146100b757600080fd5b919050565b600080604083850312156100cf57600080fd5b6100d8836100a0565b91506100e6602084016100a0565b90509250929050565b610a4c806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80635b112591116100505780635b112591146100ca578063c8a02362146100ea578063d9caed12146100fd57600080fd5b8063116191b61461006c57806321fc65f2146100b5575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100c86100c3366004610822565b610110565b005b60025461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100c86100f8366004610822565b61029a565b6100c861010b3660046108bf565b61040b565b6101186104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610169576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546101909073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906101ee9088908890889088908890600401610945565b600060405180830381600087803b15801561020857600080fd5b505af115801561021c573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610281939291906109a2565b60405180910390a36102936001600055565b5050505050565b6102a26104fb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102f3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015461031a9073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906103789088908890889088908890600401610945565b600060405180830381600087803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8858585604051610281939291906109a2565b6104136104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61048573ffffffffffffffffffffffffffffffffffffffff8416838361053e565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104e491815260200190565b60405180910390a36104f66001600055565b505050565b600260005403610537576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f6918591906000906105d790841683610650565b905080516000141580156105fc5750808060200190518101906105fa91906109c5565b155b156104f6576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b606061065e83836000610665565b9392505050565b6060814710156106a3576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610647565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516106cc91906109e7565b60006040518083038185875af1925050503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b509150915061071e868383610728565b9695505050505050565b60608261073d57610738826107b7565b61065e565b8151158015610761575073ffffffffffffffffffffffffffffffffffffffff84163b155b156107b0576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610647565b508061065e565b8051156107c75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461081d57600080fd5b919050565b60008060008060006080868803121561083a57600080fd5b610843866107f9565b9450610851602087016107f9565b935060408601359250606086013567ffffffffffffffff81111561087457600080fd5b8601601f8101881361088557600080fd5b803567ffffffffffffffff81111561089c57600080fd5b8860208284010111156108ae57600080fd5b959894975092955050506020019190565b6000806000606084860312156108d457600080fd5b6108dd846107f9565b92506108eb602085016107f9565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006109976080830184866108fc565b979650505050505050565b8381526040602082015260006109bc6040830184866108fc565b95945050505050565b6000602082840312156109d757600080fd5b8151801515811461065e57600080fd5b6000825160005b81811015610a0857602081860181015185830152016109ee565b50600092019182525091905056fea264697066735822122041336b1568f49be1aa3dcd208e804b373772741e9b7e1726a8869e99fced60c764736f6c634300081a0033", +} + +// ERC20CustodyNewABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC20CustodyNewMetaData.ABI instead. +var ERC20CustodyNewABI = ERC20CustodyNewMetaData.ABI + +// ERC20CustodyNewBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ERC20CustodyNewMetaData.Bin instead. +var ERC20CustodyNewBin = ERC20CustodyNewMetaData.Bin + +// DeployERC20CustodyNew deploys a new Ethereum contract, binding an instance of ERC20CustodyNew to it. +func DeployERC20CustodyNew(auth *bind.TransactOpts, backend bind.ContractBackend, _gateway common.Address, _tssAddress common.Address) (common.Address, *types.Transaction, *ERC20CustodyNew, error) { + parsed, err := ERC20CustodyNewMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC20CustodyNewBin), backend, _gateway, _tssAddress) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ERC20CustodyNew{ERC20CustodyNewCaller: ERC20CustodyNewCaller{contract: contract}, ERC20CustodyNewTransactor: ERC20CustodyNewTransactor{contract: contract}, ERC20CustodyNewFilterer: ERC20CustodyNewFilterer{contract: contract}}, nil +} + +// ERC20CustodyNew is an auto generated Go binding around an Ethereum contract. +type ERC20CustodyNew struct { + ERC20CustodyNewCaller // Read-only binding to the contract + ERC20CustodyNewTransactor // Write-only binding to the contract + ERC20CustodyNewFilterer // Log filterer for contract events +} + +// ERC20CustodyNewCaller is an auto generated read-only Go binding around an Ethereum contract. +type ERC20CustodyNewCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyNewTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC20CustodyNewTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyNewFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC20CustodyNewFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyNewSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC20CustodyNewSession struct { + Contract *ERC20CustodyNew // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20CustodyNewCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC20CustodyNewCallerSession struct { + Contract *ERC20CustodyNewCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC20CustodyNewTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC20CustodyNewTransactorSession struct { + Contract *ERC20CustodyNewTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20CustodyNewRaw is an auto generated low-level Go binding around an Ethereum contract. +type ERC20CustodyNewRaw struct { + Contract *ERC20CustodyNew // Generic contract binding to access the raw methods on +} + +// ERC20CustodyNewCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC20CustodyNewCallerRaw struct { + Contract *ERC20CustodyNewCaller // Generic read-only contract binding to access the raw methods on +} + +// ERC20CustodyNewTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC20CustodyNewTransactorRaw struct { + Contract *ERC20CustodyNewTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC20CustodyNew creates a new instance of ERC20CustodyNew, bound to a specific deployed contract. +func NewERC20CustodyNew(address common.Address, backend bind.ContractBackend) (*ERC20CustodyNew, error) { + contract, err := bindERC20CustodyNew(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC20CustodyNew{ERC20CustodyNewCaller: ERC20CustodyNewCaller{contract: contract}, ERC20CustodyNewTransactor: ERC20CustodyNewTransactor{contract: contract}, ERC20CustodyNewFilterer: ERC20CustodyNewFilterer{contract: contract}}, nil +} + +// NewERC20CustodyNewCaller creates a new read-only instance of ERC20CustodyNew, bound to a specific deployed contract. +func NewERC20CustodyNewCaller(address common.Address, caller bind.ContractCaller) (*ERC20CustodyNewCaller, error) { + contract, err := bindERC20CustodyNew(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC20CustodyNewCaller{contract: contract}, nil +} + +// NewERC20CustodyNewTransactor creates a new write-only instance of ERC20CustodyNew, bound to a specific deployed contract. +func NewERC20CustodyNewTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20CustodyNewTransactor, error) { + contract, err := bindERC20CustodyNew(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC20CustodyNewTransactor{contract: contract}, nil +} + +// NewERC20CustodyNewFilterer creates a new log filterer instance of ERC20CustodyNew, bound to a specific deployed contract. +func NewERC20CustodyNewFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20CustodyNewFilterer, error) { + contract, err := bindERC20CustodyNew(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC20CustodyNewFilterer{contract: contract}, nil +} + +// bindERC20CustodyNew binds a generic wrapper to an already deployed contract. +func bindERC20CustodyNew(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC20CustodyNewMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC20CustodyNew *ERC20CustodyNewRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20CustodyNew.Contract.ERC20CustodyNewCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC20CustodyNew *ERC20CustodyNewRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20CustodyNew.Contract.ERC20CustodyNewTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20CustodyNew *ERC20CustodyNewRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20CustodyNew.Contract.ERC20CustodyNewTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC20CustodyNew *ERC20CustodyNewCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20CustodyNew.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC20CustodyNew *ERC20CustodyNewTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20CustodyNew.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20CustodyNew *ERC20CustodyNewTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20CustodyNew.Contract.contract.Transact(opts, method, params...) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ERC20CustodyNew *ERC20CustodyNewCaller) Gateway(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20CustodyNew.contract.Call(opts, &out, "gateway") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ERC20CustodyNew *ERC20CustodyNewSession) Gateway() (common.Address, error) { + return _ERC20CustodyNew.Contract.Gateway(&_ERC20CustodyNew.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ERC20CustodyNew *ERC20CustodyNewCallerSession) Gateway() (common.Address, error) { + return _ERC20CustodyNew.Contract.Gateway(&_ERC20CustodyNew.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ERC20CustodyNew *ERC20CustodyNewCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20CustodyNew.contract.Call(opts, &out, "tssAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ERC20CustodyNew *ERC20CustodyNewSession) TssAddress() (common.Address, error) { + return _ERC20CustodyNew.Contract.TssAddress(&_ERC20CustodyNew.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ERC20CustodyNew *ERC20CustodyNewCallerSession) TssAddress() (common.Address, error) { + return _ERC20CustodyNew.Contract.TssAddress(&_ERC20CustodyNew.CallOpts) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xd9caed12. +// +// Solidity: function withdraw(address token, address to, uint256 amount) returns() +func (_ERC20CustodyNew *ERC20CustodyNewTransactor) Withdraw(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20CustodyNew.contract.Transact(opts, "withdraw", token, to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xd9caed12. +// +// Solidity: function withdraw(address token, address to, uint256 amount) returns() +func (_ERC20CustodyNew *ERC20CustodyNewSession) Withdraw(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20CustodyNew.Contract.Withdraw(&_ERC20CustodyNew.TransactOpts, token, to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xd9caed12. +// +// Solidity: function withdraw(address token, address to, uint256 amount) returns() +func (_ERC20CustodyNew *ERC20CustodyNewTransactorSession) Withdraw(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20CustodyNew.Contract.Withdraw(&_ERC20CustodyNew.TransactOpts, token, to, amount) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x21fc65f2. +// +// Solidity: function withdrawAndCall(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNew *ERC20CustodyNewTransactor) WithdrawAndCall(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNew.contract.Transact(opts, "withdrawAndCall", token, to, amount, data) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x21fc65f2. +// +// Solidity: function withdrawAndCall(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNew *ERC20CustodyNewSession) WithdrawAndCall(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNew.Contract.WithdrawAndCall(&_ERC20CustodyNew.TransactOpts, token, to, amount, data) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x21fc65f2. +// +// Solidity: function withdrawAndCall(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNew *ERC20CustodyNewTransactorSession) WithdrawAndCall(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNew.Contract.WithdrawAndCall(&_ERC20CustodyNew.TransactOpts, token, to, amount, data) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0xc8a02362. +// +// Solidity: function withdrawAndRevert(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNew *ERC20CustodyNewTransactor) WithdrawAndRevert(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNew.contract.Transact(opts, "withdrawAndRevert", token, to, amount, data) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0xc8a02362. +// +// Solidity: function withdrawAndRevert(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNew *ERC20CustodyNewSession) WithdrawAndRevert(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNew.Contract.WithdrawAndRevert(&_ERC20CustodyNew.TransactOpts, token, to, amount, data) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0xc8a02362. +// +// Solidity: function withdrawAndRevert(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNew *ERC20CustodyNewTransactorSession) WithdrawAndRevert(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNew.Contract.WithdrawAndRevert(&_ERC20CustodyNew.TransactOpts, token, to, amount, data) +} + +// ERC20CustodyNewWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the ERC20CustodyNew contract. +type ERC20CustodyNewWithdrawIterator struct { + Event *ERC20CustodyNewWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyNewWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyNewWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyNewWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyNewWithdraw represents a Withdraw event raised by the ERC20CustodyNew contract. +type ERC20CustodyNewWithdraw struct { + Token common.Address + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_ERC20CustodyNew *ERC20CustodyNewFilterer) FilterWithdraw(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyNewWithdrawIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNew.contract.FilterLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyNewWithdrawIterator{contract: _ERC20CustodyNew.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_ERC20CustodyNew *ERC20CustodyNewFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *ERC20CustodyNewWithdraw, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNew.contract.WatchLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyNewWithdraw) + if err := _ERC20CustodyNew.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_ERC20CustodyNew *ERC20CustodyNewFilterer) ParseWithdraw(log types.Log) (*ERC20CustodyNewWithdraw, error) { + event := new(ERC20CustodyNewWithdraw) + if err := _ERC20CustodyNew.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyNewWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the ERC20CustodyNew contract. +type ERC20CustodyNewWithdrawAndCallIterator struct { + Event *ERC20CustodyNewWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyNewWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyNewWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyNewWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyNewWithdrawAndCall represents a WithdrawAndCall event raised by the ERC20CustodyNew contract. +type ERC20CustodyNewWithdrawAndCall struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndCall is a free log retrieval operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNew *ERC20CustodyNewFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyNewWithdrawAndCallIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNew.contract.FilterLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyNewWithdrawAndCallIterator{contract: _ERC20CustodyNew.contract, event: "WithdrawAndCall", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndCall is a free log subscription operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNew *ERC20CustodyNewFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *ERC20CustodyNewWithdrawAndCall, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNew.contract.WatchLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyNewWithdrawAndCall) + if err := _ERC20CustodyNew.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndCall is a log parse operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNew *ERC20CustodyNewFilterer) ParseWithdrawAndCall(log types.Log) (*ERC20CustodyNewWithdrawAndCall, error) { + event := new(ERC20CustodyNewWithdrawAndCall) + if err := _ERC20CustodyNew.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyNewWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the ERC20CustodyNew contract. +type ERC20CustodyNewWithdrawAndRevertIterator struct { + Event *ERC20CustodyNewWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyNewWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyNewWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyNewWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyNewWithdrawAndRevert represents a WithdrawAndRevert event raised by the ERC20CustodyNew contract. +type ERC20CustodyNewWithdrawAndRevert struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndRevert is a free log retrieval operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNew *ERC20CustodyNewFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyNewWithdrawAndRevertIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNew.contract.FilterLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyNewWithdrawAndRevertIterator{contract: _ERC20CustodyNew.contract, event: "WithdrawAndRevert", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndRevert is a free log subscription operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNew *ERC20CustodyNewFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *ERC20CustodyNewWithdrawAndRevert, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNew.contract.WatchLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyNewWithdrawAndRevert) + if err := _ERC20CustodyNew.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndRevert is a log parse operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNew *ERC20CustodyNewFilterer) ParseWithdrawAndRevert(log types.Log) (*ERC20CustodyNewWithdrawAndRevert, error) { + event := new(ERC20CustodyNewWithdrawAndRevert) + if err := _ERC20CustodyNew.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/erc20custodynewechidnatest.sol/erc20custodynewechidnatest.go b/v2/pkg/erc20custodynewechidnatest.sol/erc20custodynewechidnatest.go new file mode 100644 index 00000000..bad0ccec --- /dev/null +++ b/v2/pkg/erc20custodynewechidnatest.sol/erc20custodynewechidnatest.go @@ -0,0 +1,875 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc20custodynewechidnatest + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ERC20CustodyNewEchidnaTestMetaData contains all meta data concerning the ERC20CustodyNewEchidnaTest contract. +var ERC20CustodyNewEchidnaTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"echidnaCaller\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gateway\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIGatewayEVM\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"testERC20\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractTestERC20\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"testWithdrawAndCall\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndCall\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndRevert\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndCall\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndRevert\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x600480546001600160a01b03191633908117909155600e60809081526d11d85d195dd85e5155934b9cdbdb60921b60a05260e49190915261012361010452604460c090815261012460405260e080516001600160e01b0390811663485cc95560e01b179091526100719291906101f316565b600580546001600160a01b03929092166001600160a01b03199283168117909155600680549092161790553480156100a857600080fd5b5060065460045460016000556001600160a01b0391821691168115806100d557506001600160a01b038116155b156100f35760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b0319918216179091556002805492909316911617905560405161012b9061370b565b60408082526004908201819052631d195cdd60e21b606083015260806020830181905282015263151154d560e21b60a082015260c001604051809103906000f08015801561017d573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392831617905560065460405163ae7a3a6f60e01b815230600482015291169063ae7a3a6f90602401600060405180830381600087803b1580156101d657600080fd5b505af11580156101ea573d6000803e3d6000fd5b5050505061478c565b60006101fd613718565b610208848483610212565b9150505b92915050565b60008061021f858461028e565b90506102836040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f7879000000815250828660405160200161026d929190613821565b60408051601f198184030181529190528561029a565b9150505b9392505050565b600061028783836102ce565b60c081015151600090156102c4576102bd84848460c001516102ef60201b60201c565b9050610287565b6102bd8484610468565b60006102da8383610535565b6102878383602001518461029a60201b60201c565b6000806102fa610545565b9050600061030886836105df565b905060006103258260600151836020015185610a0260201b60201c565b9050600061033583838989610bb7565b9050600061034282611833565b602081015181519192509060030b1561039b5789826040015160405160200161036c929190613845565b60408051601f198184030181529082905262461bcd60e51b8252610392916004016138ab565b60405180910390fd5b60006103e46040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a2000000000000000000000008152508360016119ca60201b60201c565b60405163c6ce059d60e01b81529091506000805160206162118339815191529063c6ce059d906104189084906004016138ab565b602060405180830381865afa158015610435573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045991906138be565b9b9a5050505050505050505050565b604051638d1cc92560e01b8152600090819060008051602061621183398151915290638d1cc9259061049e9087906004016138ab565b600060405180830381865afa1580156104bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104e391908101906139b3565b9050600061051282856040516020016104fd9291906139e7565b60408051601f19818403018152919052611b6a565b90506001600160a01b03811661020857848460405160200161036c929190613a16565b61054182826000611b7d565b5050565b60408051808201825260038152621bdd5d60ea1b602082015290516334515cdb60e21b815260609160008051602061621183398151915291829063d145736c90610593908490600401613aa5565b600060405180830381865afa1580156105b0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105d89190810190613ada565b9250505090565b6106116040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b600060008051602061621183398151915290506106566040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b61065f85611c57565b6020820152600061066f86611eac565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106d99190810190613ada565b868385602001516040516020016106f39493929190613b22565b60408051601f19818403018152908290526360f9bb1160e01b825291506000906001600160a01b038616906360f9bb11906107329085906004016138ab565b600060405180830381865afa15801561074f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107779190810190613ada565b604051636da11afb60e11b81529091506001600160a01b0386169063db4235f6906107a6908490600401613bba565b602060405180830381865afa1580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e79190613bf3565b6107fc578160405160200161036c9190613c15565b6040516309389f5960e31b81526001600160a01b038616906349c4fac890610828908490600401613c8c565b600060405180830381865afa158015610845573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261086d9190810190613ada565b8452604051636da11afb60e11b81526001600160a01b0386169063db4235f69061089b908490600401613cd2565b602060405180830381865afa1580156108b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dc9190613bf3565b15610958576040516309389f5960e31b81526001600160a01b038616906349c4fac89061090d908490600401613cd2565b600060405180830381865afa15801561092a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109529190810190613ada565b60408501525b846001600160a01b03166349c4fac882866000015160405160200161097d9190613d13565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016109a9929190613d6e565b600060405180830381865afa1580156109c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109ee9190810190613ada565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b6060815260200190600190039081610a1e579050509050604051806040016040528060048152602001630677265760e41b81525081600081518110610a6557610a65613d93565b6020026020010181905250604051806040016040528060038152602001620b5c9b60ea1b81525081600181518110610a9f57610a9f613d93565b602002602001018190525084604051602001610abb9190613da9565b60405160208183030381529060405281600281518110610add57610add613d93565b602002602001018190525082604051602001610af99190613dde565b60405160208183030381529060405281600381518110610b1b57610b1b613d93565b60209081029190910101526000610b3182611833565b9050600081602001519050610b98610b6b60405180604001604052806005815260200164173539b7b760d91b81525061202f60201b60201c565b6040805180820182526000808252602091820152815180830190925284518252808501908201529061205c565b610bad578560405160200161036c9190613e0d565b9695505050505050565b60a08101516040805180820182526000808252602091820152815180830190925282518083529281019101526060906000805160206162118339815191529015610c01565b511590565b610d1d57826020015115610c915760405162461bcd60e51b8152602060048201526058602482015260008051602061623183398151915260448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a401610392565b8260c0015115610d1d5760405162461bcd60e51b8152602060048201526053602482015260008051602061623183398151915260448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a401610392565b6040805160ff8082526120008201909252600091816020015b6060815260200190600190039081610d365790505090506000604051806040016040528060038152602001620dce0f60eb1b815250828280610d7790613ea2565b935060ff1681518110610d8c57610d8c613d93565b60200260200101819052506040518060400160405280600d81526020016c302e302e312d616c7068612e3760981b815250604051602001610dcd9190613ec1565b604051602081830303815290604052828280610de890613ea2565b935060ff1681518110610dfd57610dfd613d93565b6020026020010181905250604051806040016040528060068152602001656465706c6f7960d01b815250828280610e3390613ea2565b935060ff1681518110610e4857610e48613d93565b60200260200101819052506040518060400160405280600e81526020016d2d2d636f6e74726163744e616d6560901b815250828280610e8690613ea2565b935060ff1681518110610e9b57610e9b613d93565b60200260200101819052508760200151828280610eb790613ea2565b935060ff1681518110610ecc57610ecc613d93565b60200260200101819052506040518060400160405280600e81526020016d05a5ac6dedce8e4c2c6e8a0c2e8d60931b815250828280610f0a90613ea2565b935060ff1681518110610f1f57610f1f613d93565b602090810291909101015287518282610f3781613ea2565b935060ff1681518110610f4c57610f4c613d93565b6020026020010181905250604051806040016040528060098152602001680b4b58da185a5b925960ba1b815250828280610f8590613ea2565b935060ff1681518110610f9a57610f9a613d93565b6020908102919091010152610fae466120bd565b8282610fb981613ea2565b935060ff1681518110610fce57610fce613d93565b60200260200101819052506040518060400160405280600f81526020016e2d2d6275696c64496e666f46696c6560881b81525082828061100d90613ea2565b935060ff168151811061102257611022613d93565b60200260200101819052508682828061103a90613ea2565b935060ff168151811061104f5761104f613d93565b602090810291909101015285511561115d5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f64650000000000000000000000602082015282826110a081613ea2565b935060ff16815181106110b5576110b5613d93565b60209081029190910101526040516371aad10d60e01b81526001600160a01b038416906371aad10d906110ec9089906004016138ab565b600060405180830381865afa158015611109573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111319190810190613ada565b828261113c81613ea2565b935060ff168151811061115157611151613d93565b60200260200101819052505b84602001511561120a576040805180820190915260128152712d2d766572696679536f75726365436f646560701b6020820152828261119b81613ea2565b935060ff16815181106111b0576111b0613d93565b60200260200101819052506040518060400160405280600581526020016466616c736560d81b8152508282806111e590613ea2565b935060ff16815181106111fa576111fa613d93565b6020026020010181905250611371565b611220610bfc8660a0015161202f60201b60201c565b6112a35760408051808201909152600d81526c2d2d6c6963656e73655479706560981b6020820152828261125381613ea2565b935060ff168151811061126857611268613d93565b60200260200101819052508460a001516040516020016112889190613da9565b6040516020818303038152906040528282806111e590613ea2565b8460c001511580156112c857506112c6610bfc896040015161202f60201b60201c565b155b156113715760408051808201909152600d81526c2d2d6c6963656e73655479706560981b602082015282826112fc81613ea2565b935060ff168151811061131157611311613d93565b60209081029190910101526113258861214f565b6040516020016113359190613da9565b60405160208183030381529060405282828061135090613ea2565b935060ff168151811061136557611365613d93565b60200260200101819052505b611387610bfc866040015161202f60201b60201c565b61140a5760408051808201909152600b81526a0b4b5c995b185e595c925960aa1b602082015282826113b881613ea2565b935060ff16815181106113cd576113cd613d93565b602002602001018190525084604001518282806113e990613ea2565b935060ff16815181106113fe576113fe613d93565b60200260200101819052505b6060850151156114fb576040805180820190915260068152650b4b5cd85b1d60d21b6020820152828261143c81613ea2565b935060ff168151811061145157611451613d93565b60209081029190910101526060850151604051631623433d60e31b815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa1580156114a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114cf9190810190613ada565b82826114da81613ea2565b935060ff16815181106114ef576114ef613d93565b60200260200101819052505b60e0850151511561158d5760408051808201909152600a8152690b4b59d85cd31a5b5a5d60b21b6020820152828261153281613ea2565b935060ff168151811061154757611547613d93565b602090810291909101015260e085015151611561906120bd565b828261156c81613ea2565b935060ff168151811061158157611581613d93565b60200260200101819052505b60e0850151602001511561162a5760408051808201909152600a8152692d2d676173507269636560b01b602082015282826115c781613ea2565b935060ff16815181106115dc576115dc613d93565b60200260200101819052506115fe8560e00151602001516120bd60201b60201c565b828261160981613ea2565b935060ff168151811061161e5761161e613d93565b60200260200101819052505b60e085015160400151156116cb5760408051808201909152600e81526d2d2d6d617846656550657247617360901b6020820152828261166881613ea2565b935060ff168151811061167d5761167d613d93565b602002602001018190525061169f8560e00151604001516120bd60201b60201c565b82826116aa81613ea2565b935060ff16815181106116bf576116bf613d93565b60200260200101819052505b60e0850151606001511561177b5760408051808201909152601681527f2d2d6d61785072696f72697479466565506572476173000000000000000000006020820152828261171881613ea2565b935060ff168151811061172d5761172d613d93565b602002602001018190525061174f8560e00151606001516120bd60201b60201c565b828261175a81613ea2565b935060ff168151811061176f5761176f613d93565b60200260200101819052505b60008160ff166001600160401b03811115611798576117986138e7565b6040519080825280602002602001820160405280156117cb57816020015b60608152602001906001900390816117b65790505b50905060005b8260ff168160ff16101561182457838160ff16815181106117f4576117f4613d93565b6020026020010151828260ff168151811061181157611811613d93565b60209081029190910101526001016117d1565b5093505050505b949350505050565b61185a6040518060600160405280600060030b815260200160608152602001606081525090565b6040805180820182526004808252630c4c2e6d60e31b602083015291516334515cdb60e21b815260008051602061621183398151915292600091849163d145736c916118a891869101613f18565b600060405180830381865afa1580156118c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118ed9190810190613ada565b905060006118fb8683612805565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b815260040161192b9190613f5f565b6000604051808303816000875af115801561194a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119729190810190613fc4565b805190915060030b1580159061198b5750602081015151155b801561199a5750604081015151155b15610bad57816000815181106119b2576119b2613d93565b602002602001015160405160200161036c9190614077565b606060006119ff8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528651825280870190820152909150611a369082905b9061293f565b15611b33576000611ab382611aad81611aa7611a798a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90612966565b906129c3565b9050611ae7611ae0604051806040016040528060018152602001600560f91b81525061202f60201b60201c565b829061293f565b15611b2157611b1e611b17604051806040016040528060018152602001600560f91b81525061202f60201b60201c565b8290612a48565b90505b611b2a81612a6e565b92505050610287565b8215611b4c57848460405160200161036c929190614247565b5050604080516020810190915260008152610287565b509392505050565b6000808251602084016000f09392505050565b8160a0015115611b8c57505050565b6000611b99848484612ad3565b90506000611ba682611833565b602081015181519192509060030b158015611c195750611c19611bed604051806040016040528060078152602001665355434345535360c81b81525061202f60201b60201c565b604080518082018252600080825260209182015281518083019092528451825280850190820152611a30565b15611c2657505050505050565b60408201515115611c4657816040015160405160200161036c91906142c2565b8060405160200161036c919061430c565b60606000611c8c8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050611cc3611cbc604051806040016040528060048152602001630b9cdbdb60e21b81525061202f60201b60201c565b829061205c565b15611d0557610287611d00611cf9604051806040016040528060048152602001630b9cdbdb60e21b81525061202f60201b60201c565b8390612fe6565b612a6e565b611d37611d30604051806040016040528060018152602001601d60f91b81525061202f60201b60201c565b8290613070565b600103611d9f57611d69611b17604051806040016040528060018152602001601d60f91b81525061202f60201b60201c565b50610287611d00611d98604051806040016040528060018152602001601d60f91b81525061202f60201b60201c565b8390612a48565b611dce611cbc60405180604001604052806005815260200164173539b7b760d91b81525061202f60201b60201c565b15611e9b576000611e0682611e01604051806040016040528060018152602001602f60f81b81525061202f60201b60201c565b613105565b905060008160018351611e19919061435c565b81518110611e2957611e29613d93565b60200260200101519050611e92611d00611e6560405180604001604052806005815260200164173539b7b760d91b81525061202f60201b60201c565b60408051808201825260008082526020918201528151808301909252855182528086019082015290612fe6565b95945050505050565b8260405160200161036c919061436f565b60606000611ee18360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050611f11611cbc604051806040016040528060048152602001630b9cdbdb60e21b81525061202f60201b60201c565b15611f1f5761028781612a6e565b611f4a611d30604051806040016040528060018152602001601d60f91b81525061202f60201b60201c565b600103611f7f57610287611d00611d98604051806040016040528060018152602001601d60f91b81525061202f60201b60201c565b611fae611cbc60405180604001604052806005815260200164173539b7b760d91b81525061202f60201b60201c565b15611e9b576000611fe182611e01604051806040016040528060018152602001602f60f81b81525061202f60201b60201c565b905060018151111561201d578060028251611ffc919061435c565b8151811061200c5761200c613d93565b602002602001015192505050919050565b508260405160200161036c919061436f565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b8051825160009111156120715750600061020c565b8151835160208501516000929161208791614429565b612091919061435c565b9050826020015181036120a857600191505061020c565b82516020840151819020912014905092915050565b606060006120ca836131a9565b60010190506000816001600160401b038111156120e9576120e96138e7565b6040519080825280601f01601f191660200182016040528015612113576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461211d57509392505050565b60606000612166836040015161202f60201b60201c565b90506121a361219c6040518060400160405280600a8152602001691553931250d15394d15160b21b81525061202f60201b60201c565b829061328b565b156121ca5750506040805180820190915260048152634e6f6e6560e01b6020820152919050565b6121fd61219c60405180604001604052806009815260200168556e6c6963656e736560b81b81525061202f60201b60201c565b15612229575050604080518082019091526009815268556e6c6963656e736560b81b6020820152919050565b61225661219c6040518060400160405280600381526020016213525560ea1b81525061202f60201b60201c565b1561227c57505060408051808201909152600381526213525560ea1b6020820152919050565b6122b261219c6040518060400160405280600c81526020016b47504c2d322e302d6f6e6c7960a01b81525061202f60201b60201c565b806122f257506122f261219c6040518060400160405280601081526020016f23a8261699171816b7b916b630ba32b960811b81525061202f60201b60201c565b1561231e57505060408051808201909152600981526823a72a9023a8263b1960b91b6020820152919050565b61235461219c6040518060400160405280600c81526020016b47504c2d332e302d6f6e6c7960a01b81525061202f60201b60201c565b80612394575061239461219c6040518060400160405280601081526020016f23a8261699971816b7b916b630ba32b960811b81525061202f60201b60201c565b156123c0575050604080518082019091526009815268474e552047504c763360b81b6020820152919050565b6123f761219c6040518060400160405280600d81526020016c4c47504c2d322e312d6f6e6c7960981b81525061202f60201b60201c565b80612438575061243861219c604051806040016040528060118152602001702623a8261699171896b7b916b630ba32b960791b81525061202f60201b60201c565b1561246757505060408051808201909152600c81526b474e55204c47504c76322e3160a01b6020820152919050565b61249e61219c6040518060400160405280600d81526020016c4c47504c2d332e302d6f6e6c7960981b81525061202f60201b60201c565b806124df57506124df61219c604051806040016040528060118152602001702623a8261699971816b7b916b630ba32b960791b81525061202f60201b60201c565b1561250c57505060408051808201909152600a815269474e55204c47504c763360b01b6020820152919050565b61254261219c6040518060400160405280600c81526020016b4253442d322d436c6175736560a01b81525061202f60201b60201c565b1561257157505060408051808201909152600c81526b4253442d322d436c6175736560a01b6020820152919050565b6125a761219c6040518060400160405280600c81526020016b4253442d332d436c6175736560a01b81525061202f60201b60201c565b156125d657505060408051808201909152600c81526b4253442d332d436c6175736560a01b6020820152919050565b61260761219c6040518060400160405280600781526020016604d504c2d322e360cc1b81525061202f60201b60201c565b1561263157505060408051808201909152600781526604d504c2d322e360cc1b6020820152919050565b61266261219c6040518060400160405280600781526020016604f534c2d332e360cc1b81525061202f60201b60201c565b1561268c57505060408051808201909152600781526604f534c2d332e360cc1b6020820152919050565b6126c061219c6040518060400160405280600a81526020016904170616368652d322e360b41b81525061202f60201b60201c565b156126ed57505060408051808201909152600a81526904170616368652d322e360b41b6020820152919050565b61272461219c6040518060400160405280600d81526020016c4147504c2d332e302d6f6e6c7960981b81525061202f60201b60201c565b80612765575061276561219c6040518060400160405280601181526020017020a3a8261699971816b7b916b630ba32b960791b81525061202f60201b60201c565b1561279257505060408051808201909152600a815269474e55204147504c763360b01b6020820152919050565b6127c461219c604051806040016040528060088152602001674255534c2d312e3160c01b81525061202f60201b60201c565b156127ee57505060408051808201909152600781526642534c20312e3160c81b6020820152919050565b6040808401518451915161036c929060200161443c565b60608060005b8451811015612890578185828151811061282757612827613d93565b60200260200101516040516020016128409291906139e7565b60405160208183030381529060405291506001855161285f919061435c565b81146128885781604051602001612876919061458c565b60405160208183030381529060405291505b60010161280b565b5060408051600380825260808201909252600091816020015b60608152602001906001900390816128a957905050905083816000815181106128d4576128d4613d93565b6020026020010181905250604051806040016040528060028152602001612d6360f01b8152508160018151811061290d5761290d613d93565b6020026020010181905250818160028151811061292c5761292c613d93565b6020908102919091010152949350505050565b602080830151835183519284015160009361295d929184919061329f565b14159392505050565b604080518082019091526000808252602080830182905284518582015185519286015161299393906133b0565b90508360200151816129a5919061435c565b845185906129b490839061435c565b90525060208401525090919050565b60408051808201909152600080825260208201528151835110156129e857508161020c565b6020808301519084015160019114612a0f5750815160208481015190840151829020919020145b8015612a4057825184518590612a2690839061435c565b9052508251602085018051612a3c908390614429565b9052505b509192915050565b6040805180820190915260008082526020820152612a678383836134d0565b5092915050565b6060600082600001516001600160401b03811115612a8e57612a8e6138e7565b6040519080825280601f01601f191660200182016040528015612ab8576020820181803683370190505b50602084810151855192935090830191612a67918391613576565b60606000612adf610545565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081612afc5790505090506000604051806040016040528060038152602001620dce0f60eb1b815250828280612b3d90613ea2565b935060ff1681518110612b5257612b52613d93565b6020026020010181905250604051806040016040528060078152602001665e312e33322e3360c81b815250604051602001612b8d91906145b1565b604051602081830303815290604052828280612ba890613ea2565b935060ff1681518110612bbd57612bbd613d93565b60200260200101819052506040518060400160405280600881526020016776616c696461746560c01b815250828280612bf590613ea2565b935060ff1681518110612c0a57612c0a613d93565b602002602001018190525082604051602001612c269190613dde565b604051602081830303815290604052828280612c4190613ea2565b935060ff1681518110612c5657612c56613d93565b60200260200101819052506040518060400160405280600a8152602001690b4b58dbdb9d1c9858dd60b21b815250828280612c9090613ea2565b935060ff1681518110612ca557612ca5613d93565b6020908102919091010152612cba87846135f0565b8282612cc581613ea2565b935060ff1681518110612cda57612cda613d93565b602090810291909101015285515115612d725760408051808201909152600b81526a2d2d7265666572656e636560a81b60208201528282612d1a81613ea2565b935060ff1681518110612d2f57612d2f613d93565b60209081029190910101528551612d4690846135f0565b8282612d5181613ea2565b935060ff1681518110612d6657612d66613d93565b60200260200101819052505b856080015115612de05760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282612dbb81613ea2565b935060ff1681518110612dd057612dd0613d93565b6020026020010181905250612e3b565b8415612e3b576040805180820190915260128152712d2d726571756972655265666572656e636560701b60208201528282612e1a81613ea2565b935060ff1681518110612e2f57612e2f613d93565b60200260200101819052505b60408601515115612ec75760408051808201909152600d81526c2d2d756e73616665416c6c6f7760981b60208201528282612e7581613ea2565b935060ff1681518110612e8a57612e8a613d93565b60200260200101819052508560400151828280612ea690613ea2565b935060ff1681518110612ebb57612ebb613d93565b60200260200101819052505b856060015115612f315760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d657300000000000000000000000060208201528282612f1081613ea2565b935060ff1681518110612f2557612f25613d93565b60200260200101819052505b60008160ff166001600160401b03811115612f4e57612f4e6138e7565b604051908082528060200260200182016040528015612f8157816020015b6060815260200190600190039081612f6c5790505b50905060005b8260ff168160ff161015612fda57838160ff1681518110612faa57612faa613d93565b6020026020010151828260ff1681518110612fc757612fc7613d93565b6020908102919091010152600101612f87565b50979650505050505050565b604080518082019091526000808252602082015281518351101561300b57508161020c565b8151835160208501516000929161302191614429565b61302b919061435c565b6020840151909150600190821461304c575082516020840151819020908220145b80156130675783518551869061306390839061435c565b9052505b50929392505050565b8051825160208085015190840151600093849390926130909284906133b0565b61309a9190614429565b90505b835160208501516130ae9190614429565b8111612a6757816130be816145f6565b92505082600001516130f48560200151836130d9919061435c565b86516130e5919061435c565b855160208701518591906133b0565b6130fe9190614429565b905061309d565b606060006131138484613070565b61311e906001614429565b6001600160401b03811115613135576131356138e7565b60405190808252806020026020018201604052801561316857816020015b60608152602001906001900390816131535790505b50905060005b8151811015611b6257613184611d008686612a48565b82828151811061319657613196613d93565b602090810291909101015260010161316e565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106131f2577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061321e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061323c57662386f26fc10000830492506010015b6305f5e1008310613254576305f5e100830492506008015b612710831061326857612710830492506004015b6064831061327a576064830492506002015b600a831061020c5760010192915050565b60006132978383613630565b159392505050565b6000808584116133a6576020841161335257600084156132ea5760016132c686602061435c565b6132d190600861460f565b6132dc90600261470d565b6132e6919061435c565b1990505b83518116856132f98989614429565b613303919061435c565b805190935082165b81811461333d57878411613325578794505050505061182b565b8361332f81614719565b94505082845116905061330b565b6133478785614429565b94505050505061182b565b83832061335f858861435c565b6133699087614429565b91505b8582106133a457848220808203613391576133878684614429565b935050505061182b565b61339c60018461435c565b92505061336c565b505b5092949350505050565b600083818685116134bb576020851161346a57600085156133fc5760016133d887602061435c565b6133e390600861460f565b6133ee90600261470d565b6133f8919061435c565b1990505b8451811660008761340d8b8b614429565b613417919061435c565b855190915083165b82811461345c57818610613444576134378b8b614429565b965050505050505061182b565b8561344e816145f6565b96505083865116905061341f565b85965050505050505061182b565b508383206000905b61347c868961435c565b82116134b957858320808203613498578394505050505061182b565b6134a3600185614429565b93505081806134b1906145f6565b925050613472565b505b6134c58787614429565b979650505050505050565b60408051808201909152600080825260208083018290528551868201518651928701516134fd93906133b0565b602080870180519186019190915251909150613519908261435c565b83528451602086015161352c9190614429565b810361353b576000855261356d565b835183516135499190614429565b8551869061355890839061435c565b90525083516135679082614429565b60208601525b50909392505050565b602081106135ae578151835261358d602084614429565b925061359a602083614429565b91506135a760208261435c565b9050613576565b60001981156135dd5760016135c483602061435c565b6135d09061010061470d565b6135da919061435c565b90505b9151835183169219169190911790915250565b606060006135fe84846105df565b805160208083015160405193945061361893909101614730565b60405160208183030381529060405291505092915050565b8151815160009190811115613643575081515b6020808501519084015160005b838110156136fc57825182518082146136cc5760001960208710156136ab5760018461367d89602061435c565b6136879190614429565b61369290600861460f565b61369d90600261470d565b6136a7919061435c565b1990505b81811683821681810391146136c957975061020c9650505050505050565b50505b6136d7602086614429565b94506136e4602085614429565b935050506020816136f59190614429565b9050613650565b5084518651610bad919061476c565b610c9f8061557283390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161375b613760565b905290565b6040518061010001604052806000151581526020016000151581526020016060815260200160008019168152602001606081526020016060815260200160001515815260200161375b6040518060800160405280600081526020016000815260200160008152602001600081525090565b60005b838110156137ec5781810151838201526020016137d4565b50506000910152565b6000815180845261380d8160208601602086016137d1565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061182b908301846137f5565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161387d81601a8501602088016137d1565b6101d160f51b601a91840191820152835161389f81601c8401602088016137d1565b01601c01949350505050565b60208152600061028760208301846137f5565b6000602082840312156138d057600080fd5b81516001600160a01b038116811461028757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561391f5761391f6138e7565b60405290565b6000806001600160401b0384111561393f5761393f6138e7565b50604051601f19601f85018116603f011681018181106001600160401b038211171561396d5761396d6138e7565b60405283815290508082840185101561398557600080fd5b611b628460208301856137d1565b600082601f8301126139a457600080fd5b61028783835160208501613925565b6000602082840312156139c557600080fd5b81516001600160401b038111156139db57600080fd5b61020884828501613993565b600083516139f98184602088016137d1565b835190830190613a0d8183602088016137d1565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351613a4e81601a8501602088016137d1565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a918401918201528351613a8b8160338401602088016137d1565b601160f91b60339290910191820152603401949350505050565b60408152600b60408201526a1193d55391149657d3d55560aa1b606082015260806020820152600061028760808301846137f5565b600060208284031215613aec57600080fd5b81516001600160401b03811115613b0257600080fd5b8201601f81018413613b1357600080fd5b61020884825160208401613925565b60008551613b34818460208a016137d1565b602f60f81b9083019081528551613b52816001840160208a016137d1565b602f60f81b600192909101918201528451613b748160028401602089016137d1565b600181830101915050602f60f81b60018201528351613b9a8160028401602088016137d1565b64173539b7b760d91b600292909101918201526007019695505050505050565b604081526000613bcd60408301846137f5565b828103602084015260048152630b985cdd60e21b60208201526040810191505092915050565b600060208284031215613c0557600080fd5b8151801515811461028757600080fd5b7f436f756c64206e6f742066696e642041535420696e2061727469666163742000815260008251613c4d81601f8501602087016137d1565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f939091019283015250611b5b60f21b603f820152604101919050565b604081526000613c9f60408301846137f5565b8281036020840152601181527005cc2e6e85cc2c4e6ded8eae8caa0c2e8d607b1b60208201526040810191505092915050565b604081526000613ce560408301846137f5565b8281036020840152600c81526b2e6173742e6c6963656e736560a01b60208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b27000000000000000000000000815260008251613d4b8160148501602087016137d1565b6b13ae9735b2b1b1b0b5991a9b60a11b6014939091019283015250602001919050565b604081526000613d8160408301856137f5565b828103602084015261028381856137f5565b634e487b7160e01b600052603260045260246000fd5b601160f91b81528151600090613dc68160018501602087016137d1565b601160f91b6001939091019283015250600201919050565b60008251613df08184602087016137d1565b6a2f6275696c642d696e666f60a81b920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201526a0391031b7b73a3930b1ba160ad1b604082015260008251613e7f81604b8501602087016137d1565b91909101604b0192915050565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103613eb857613eb8613e8c565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81526801a595b9d0b58db1a560be1b602082015260008251613f0b8160298501602087016137d1565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f5041544800000000000000000000606082015260806020820152600061028760808301846137f5565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015613fb857603f19878603018452613fa38583516137f5565b94506020938401939190910190600101613f87565b50929695505050505050565b600060208284031215613fd657600080fd5b81516001600160401b03811115613fec57600080fd5b820160608185031215613ffe57600080fd5b6140066138fd565b81518060030b811461401757600080fd5b815260208201516001600160401b0381111561403257600080fd5b61403e86828501613993565b60208301525060408201516001600160401b0381111561405d57600080fd5b61406986828501613993565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e642077697468208152601160f91b6020820152600082516140b98160218501602087016137d1565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e65207769746820707265666978208152602760f81b6020820152600083516142898160218501602088016137d1565b6c0139034b71037baba383aba1d1609d1b60219184019182015283516142b681602e8401602088016137d1565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c815268034b230ba34b7b71d160bd1b602082015260008251613f0b8160298501602087016137d1565b7f55706772616465207361666574792076616c69646174696f6e206661696c65648152611d0560f11b60208201526000825161434f8160228501602087016137d1565b9190910160220192915050565b8181038181111561020c5761020c613e8c565b6d021b7b73a3930b1ba103730b6b2960951b81526000825161439881600e8501602087016137d1565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201526730b1ba173539b7b760c11b606e820152607601919050565b8082018082111561020c5761020c613e8c565b7f53504458206c6963656e7365206964656e7469666965722000000000000000008152600083516144748160188501602088016137d1565b6301034b7160e51b601891840191820152835161449881601c8401602088016137d1565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b6000825161459e8184602087016137d1565b600160fd1b920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f726540000000008152600082516145e981601c8501602087016137d1565b91909101601c0192915050565b60006001820161460857614608613e8c565b5060010190565b808202811582820484141761020c5761020c613e8c565b6001815b60018411156146615780850481111561464557614645613e8c565b600184161561465357908102905b60019390931c92800261462a565b935093915050565b6000826146785750600161020c565b816146855750600061020c565b816001811461469b57600281146146a5576146c1565b600191505061020c565b60ff8411156146b6576146b6613e8c565b50506001821b61020c565b5060208310610133831016604e8410600b84101617156146e4575081810a61020c565b6146f16000198484614626565b806000190482111561470557614705613e8c565b029392505050565b60006102878383614669565b60008161472857614728613e8c565b506000190190565b600083516147428184602088016137d1565b601d60f91b90830190815283516147608160018401602088016137d1565b01600101949350505050565b8181036000831280158383131683831282161715612a6757612a67613e8c565b610dd78061479b6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80636133b4bb1161005b5780636133b4bb1461012b57806381100bf01461013e578063c8a023621461015e578063d9caed121461017157600080fd5b8063116191b61461008d57806321fc65f2146100d65780633c2f05a8146100eb5780635b1125911461010b575b600080fd5b6001546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100e96100e4366004610aff565b610184565b005b6003546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6002546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6100e9610139366004610b6e565b61030e565b6004546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6100e961016c366004610aff565b61052a565b6100e961017f366004610bc8565b61069b565b61018c61078b565b60025473ffffffffffffffffffffffffffffffffffffffff1633146101dd576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546102049073ffffffffffffffffffffffffffffffffffffffff8781169116856107ce565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906102629088908890889088908890600401610c4e565b600060405180830381600087803b15801561027c57600080fd5b505af1158015610290573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e8585856040516102f593929190610cab565b60405180910390a36103076001600055565b5050505050565b60035473ffffffffffffffffffffffffffffffffffffffff166340c10f1930610338866005610cce565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401600060405180830381600087803b1580156103a357600080fd5b505af11580156103b7573d6000803e3d6000fd5b50506003546006546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152600560248201529116925063a9059cbb91506044016020604051808303816000875af1158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a9190610d08565b506003546104819073ffffffffffffffffffffffffffffffffffffffff1685858585610184565b6003546001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116906370a0823190602401602060405180830381865afa1580156104f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105179190610d2a565b1561052457610524610d43565b50505050565b61053261078b565b60025473ffffffffffffffffffffffffffffffffffffffff163314610583576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546105aa9073ffffffffffffffffffffffffffffffffffffffff8781169116856107ce565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906106089088908890889088908890600401610c4e565b600060405180830381600087803b15801561062257600080fd5b505af1158015610636573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c88585856040516102f593929190610cab565b6106a361078b565b60025473ffffffffffffffffffffffffffffffffffffffff1633146106f4576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61071573ffffffffffffffffffffffffffffffffffffffff841683836107ce565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8360405161077491815260200190565b60405180910390a36107866001600055565b505050565b6002600054036107c7576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261078691859190600090610867908416836108e0565b9050805160001415801561088c57508080602001905181019061088a9190610d08565b155b15610786576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606108ee838360006108f7565b90505b92915050565b606081471015610935576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016108d7565b6000808573ffffffffffffffffffffffffffffffffffffffff16848660405161095e9190610d72565b60006040518083038185875af1925050503d806000811461099b576040519150601f19603f3d011682016040523d82523d6000602084013e6109a0565b606091505b50915091506109b08683836109bc565b925050505b9392505050565b6060826109d1576109cc82610a4b565b6109b5565b81511580156109f5575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610a44576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016108d7565b50806109b5565b805115610a5b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008083601f840112610ac857600080fd5b50813567ffffffffffffffff811115610ae057600080fd5b602083019150836020828501011115610af857600080fd5b9250929050565b600080600080600060808688031215610b1757600080fd5b610b2086610a8d565b9450610b2e60208701610a8d565b935060408601359250606086013567ffffffffffffffff811115610b5157600080fd5b610b5d88828901610ab6565b969995985093965092949392505050565b60008060008060608587031215610b8457600080fd5b610b8d85610a8d565b935060208501359250604085013567ffffffffffffffff811115610bb057600080fd5b610bbc87828801610ab6565b95989497509550505050565b600080600060608486031215610bdd57600080fd5b610be684610a8d565b9250610bf460208501610a8d565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610ca0608083018486610c05565b979650505050505050565b838152604060208201526000610cc5604083018486610c05565b95945050505050565b808201808211156108f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060208284031215610d1a57600080fd5b815180151581146109b557600080fd5b600060208284031215610d3c57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b81811015610d935760208186018101518583015201610d79565b50600092019182525091905056fea2646970667358221220b0a7bb2e0e1fca0564f282b7e276b762b03ff9d51eb208ba06692fe22a5d3e1664736f6c634300081a0033608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f7420", +} + +// ERC20CustodyNewEchidnaTestABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC20CustodyNewEchidnaTestMetaData.ABI instead. +var ERC20CustodyNewEchidnaTestABI = ERC20CustodyNewEchidnaTestMetaData.ABI + +// ERC20CustodyNewEchidnaTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ERC20CustodyNewEchidnaTestMetaData.Bin instead. +var ERC20CustodyNewEchidnaTestBin = ERC20CustodyNewEchidnaTestMetaData.Bin + +// DeployERC20CustodyNewEchidnaTest deploys a new Ethereum contract, binding an instance of ERC20CustodyNewEchidnaTest to it. +func DeployERC20CustodyNewEchidnaTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20CustodyNewEchidnaTest, error) { + parsed, err := ERC20CustodyNewEchidnaTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC20CustodyNewEchidnaTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ERC20CustodyNewEchidnaTest{ERC20CustodyNewEchidnaTestCaller: ERC20CustodyNewEchidnaTestCaller{contract: contract}, ERC20CustodyNewEchidnaTestTransactor: ERC20CustodyNewEchidnaTestTransactor{contract: contract}, ERC20CustodyNewEchidnaTestFilterer: ERC20CustodyNewEchidnaTestFilterer{contract: contract}}, nil +} + +// ERC20CustodyNewEchidnaTest is an auto generated Go binding around an Ethereum contract. +type ERC20CustodyNewEchidnaTest struct { + ERC20CustodyNewEchidnaTestCaller // Read-only binding to the contract + ERC20CustodyNewEchidnaTestTransactor // Write-only binding to the contract + ERC20CustodyNewEchidnaTestFilterer // Log filterer for contract events +} + +// ERC20CustodyNewEchidnaTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type ERC20CustodyNewEchidnaTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyNewEchidnaTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC20CustodyNewEchidnaTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyNewEchidnaTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC20CustodyNewEchidnaTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyNewEchidnaTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC20CustodyNewEchidnaTestSession struct { + Contract *ERC20CustodyNewEchidnaTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20CustodyNewEchidnaTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC20CustodyNewEchidnaTestCallerSession struct { + Contract *ERC20CustodyNewEchidnaTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC20CustodyNewEchidnaTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC20CustodyNewEchidnaTestTransactorSession struct { + Contract *ERC20CustodyNewEchidnaTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20CustodyNewEchidnaTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type ERC20CustodyNewEchidnaTestRaw struct { + Contract *ERC20CustodyNewEchidnaTest // Generic contract binding to access the raw methods on +} + +// ERC20CustodyNewEchidnaTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC20CustodyNewEchidnaTestCallerRaw struct { + Contract *ERC20CustodyNewEchidnaTestCaller // Generic read-only contract binding to access the raw methods on +} + +// ERC20CustodyNewEchidnaTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC20CustodyNewEchidnaTestTransactorRaw struct { + Contract *ERC20CustodyNewEchidnaTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC20CustodyNewEchidnaTest creates a new instance of ERC20CustodyNewEchidnaTest, bound to a specific deployed contract. +func NewERC20CustodyNewEchidnaTest(address common.Address, backend bind.ContractBackend) (*ERC20CustodyNewEchidnaTest, error) { + contract, err := bindERC20CustodyNewEchidnaTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC20CustodyNewEchidnaTest{ERC20CustodyNewEchidnaTestCaller: ERC20CustodyNewEchidnaTestCaller{contract: contract}, ERC20CustodyNewEchidnaTestTransactor: ERC20CustodyNewEchidnaTestTransactor{contract: contract}, ERC20CustodyNewEchidnaTestFilterer: ERC20CustodyNewEchidnaTestFilterer{contract: contract}}, nil +} + +// NewERC20CustodyNewEchidnaTestCaller creates a new read-only instance of ERC20CustodyNewEchidnaTest, bound to a specific deployed contract. +func NewERC20CustodyNewEchidnaTestCaller(address common.Address, caller bind.ContractCaller) (*ERC20CustodyNewEchidnaTestCaller, error) { + contract, err := bindERC20CustodyNewEchidnaTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC20CustodyNewEchidnaTestCaller{contract: contract}, nil +} + +// NewERC20CustodyNewEchidnaTestTransactor creates a new write-only instance of ERC20CustodyNewEchidnaTest, bound to a specific deployed contract. +func NewERC20CustodyNewEchidnaTestTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20CustodyNewEchidnaTestTransactor, error) { + contract, err := bindERC20CustodyNewEchidnaTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC20CustodyNewEchidnaTestTransactor{contract: contract}, nil +} + +// NewERC20CustodyNewEchidnaTestFilterer creates a new log filterer instance of ERC20CustodyNewEchidnaTest, bound to a specific deployed contract. +func NewERC20CustodyNewEchidnaTestFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20CustodyNewEchidnaTestFilterer, error) { + contract, err := bindERC20CustodyNewEchidnaTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC20CustodyNewEchidnaTestFilterer{contract: contract}, nil +} + +// bindERC20CustodyNewEchidnaTest binds a generic wrapper to an already deployed contract. +func bindERC20CustodyNewEchidnaTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC20CustodyNewEchidnaTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20CustodyNewEchidnaTest.Contract.ERC20CustodyNewEchidnaTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.ERC20CustodyNewEchidnaTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.ERC20CustodyNewEchidnaTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20CustodyNewEchidnaTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.contract.Transact(opts, method, params...) +} + +// EchidnaCaller is a free data retrieval call binding the contract method 0x81100bf0. +// +// Solidity: function echidnaCaller() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestCaller) EchidnaCaller(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20CustodyNewEchidnaTest.contract.Call(opts, &out, "echidnaCaller") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EchidnaCaller is a free data retrieval call binding the contract method 0x81100bf0. +// +// Solidity: function echidnaCaller() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestSession) EchidnaCaller() (common.Address, error) { + return _ERC20CustodyNewEchidnaTest.Contract.EchidnaCaller(&_ERC20CustodyNewEchidnaTest.CallOpts) +} + +// EchidnaCaller is a free data retrieval call binding the contract method 0x81100bf0. +// +// Solidity: function echidnaCaller() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestCallerSession) EchidnaCaller() (common.Address, error) { + return _ERC20CustodyNewEchidnaTest.Contract.EchidnaCaller(&_ERC20CustodyNewEchidnaTest.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestCaller) Gateway(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20CustodyNewEchidnaTest.contract.Call(opts, &out, "gateway") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestSession) Gateway() (common.Address, error) { + return _ERC20CustodyNewEchidnaTest.Contract.Gateway(&_ERC20CustodyNewEchidnaTest.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestCallerSession) Gateway() (common.Address, error) { + return _ERC20CustodyNewEchidnaTest.Contract.Gateway(&_ERC20CustodyNewEchidnaTest.CallOpts) +} + +// TestERC20 is a free data retrieval call binding the contract method 0x3c2f05a8. +// +// Solidity: function testERC20() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestCaller) TestERC20(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20CustodyNewEchidnaTest.contract.Call(opts, &out, "testERC20") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TestERC20 is a free data retrieval call binding the contract method 0x3c2f05a8. +// +// Solidity: function testERC20() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestSession) TestERC20() (common.Address, error) { + return _ERC20CustodyNewEchidnaTest.Contract.TestERC20(&_ERC20CustodyNewEchidnaTest.CallOpts) +} + +// TestERC20 is a free data retrieval call binding the contract method 0x3c2f05a8. +// +// Solidity: function testERC20() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestCallerSession) TestERC20() (common.Address, error) { + return _ERC20CustodyNewEchidnaTest.Contract.TestERC20(&_ERC20CustodyNewEchidnaTest.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20CustodyNewEchidnaTest.contract.Call(opts, &out, "tssAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestSession) TssAddress() (common.Address, error) { + return _ERC20CustodyNewEchidnaTest.Contract.TssAddress(&_ERC20CustodyNewEchidnaTest.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestCallerSession) TssAddress() (common.Address, error) { + return _ERC20CustodyNewEchidnaTest.Contract.TssAddress(&_ERC20CustodyNewEchidnaTest.CallOpts) +} + +// TestWithdrawAndCall is a paid mutator transaction binding the contract method 0x6133b4bb. +// +// Solidity: function testWithdrawAndCall(address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestTransactor) TestWithdrawAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.contract.Transact(opts, "testWithdrawAndCall", to, amount, data) +} + +// TestWithdrawAndCall is a paid mutator transaction binding the contract method 0x6133b4bb. +// +// Solidity: function testWithdrawAndCall(address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestSession) TestWithdrawAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.TestWithdrawAndCall(&_ERC20CustodyNewEchidnaTest.TransactOpts, to, amount, data) +} + +// TestWithdrawAndCall is a paid mutator transaction binding the contract method 0x6133b4bb. +// +// Solidity: function testWithdrawAndCall(address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestTransactorSession) TestWithdrawAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.TestWithdrawAndCall(&_ERC20CustodyNewEchidnaTest.TransactOpts, to, amount, data) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xd9caed12. +// +// Solidity: function withdraw(address token, address to, uint256 amount) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestTransactor) Withdraw(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.contract.Transact(opts, "withdraw", token, to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xd9caed12. +// +// Solidity: function withdraw(address token, address to, uint256 amount) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestSession) Withdraw(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.Withdraw(&_ERC20CustodyNewEchidnaTest.TransactOpts, token, to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xd9caed12. +// +// Solidity: function withdraw(address token, address to, uint256 amount) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestTransactorSession) Withdraw(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.Withdraw(&_ERC20CustodyNewEchidnaTest.TransactOpts, token, to, amount) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x21fc65f2. +// +// Solidity: function withdrawAndCall(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestTransactor) WithdrawAndCall(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.contract.Transact(opts, "withdrawAndCall", token, to, amount, data) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x21fc65f2. +// +// Solidity: function withdrawAndCall(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestSession) WithdrawAndCall(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.WithdrawAndCall(&_ERC20CustodyNewEchidnaTest.TransactOpts, token, to, amount, data) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x21fc65f2. +// +// Solidity: function withdrawAndCall(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestTransactorSession) WithdrawAndCall(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.WithdrawAndCall(&_ERC20CustodyNewEchidnaTest.TransactOpts, token, to, amount, data) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0xc8a02362. +// +// Solidity: function withdrawAndRevert(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestTransactor) WithdrawAndRevert(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.contract.Transact(opts, "withdrawAndRevert", token, to, amount, data) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0xc8a02362. +// +// Solidity: function withdrawAndRevert(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestSession) WithdrawAndRevert(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.WithdrawAndRevert(&_ERC20CustodyNewEchidnaTest.TransactOpts, token, to, amount, data) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0xc8a02362. +// +// Solidity: function withdrawAndRevert(address token, address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestTransactorSession) WithdrawAndRevert(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyNewEchidnaTest.Contract.WithdrawAndRevert(&_ERC20CustodyNewEchidnaTest.TransactOpts, token, to, amount, data) +} + +// ERC20CustodyNewEchidnaTestWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the ERC20CustodyNewEchidnaTest contract. +type ERC20CustodyNewEchidnaTestWithdrawIterator struct { + Event *ERC20CustodyNewEchidnaTestWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyNewEchidnaTestWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewEchidnaTestWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewEchidnaTestWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyNewEchidnaTestWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyNewEchidnaTestWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyNewEchidnaTestWithdraw represents a Withdraw event raised by the ERC20CustodyNewEchidnaTest contract. +type ERC20CustodyNewEchidnaTestWithdraw struct { + Token common.Address + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestFilterer) FilterWithdraw(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyNewEchidnaTestWithdrawIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNewEchidnaTest.contract.FilterLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyNewEchidnaTestWithdrawIterator{contract: _ERC20CustodyNewEchidnaTest.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *ERC20CustodyNewEchidnaTestWithdraw, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNewEchidnaTest.contract.WatchLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyNewEchidnaTestWithdraw) + if err := _ERC20CustodyNewEchidnaTest.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestFilterer) ParseWithdraw(log types.Log) (*ERC20CustodyNewEchidnaTestWithdraw, error) { + event := new(ERC20CustodyNewEchidnaTestWithdraw) + if err := _ERC20CustodyNewEchidnaTest.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyNewEchidnaTestWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the ERC20CustodyNewEchidnaTest contract. +type ERC20CustodyNewEchidnaTestWithdrawAndCallIterator struct { + Event *ERC20CustodyNewEchidnaTestWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyNewEchidnaTestWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewEchidnaTestWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewEchidnaTestWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyNewEchidnaTestWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyNewEchidnaTestWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyNewEchidnaTestWithdrawAndCall represents a WithdrawAndCall event raised by the ERC20CustodyNewEchidnaTest contract. +type ERC20CustodyNewEchidnaTestWithdrawAndCall struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndCall is a free log retrieval operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyNewEchidnaTestWithdrawAndCallIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNewEchidnaTest.contract.FilterLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyNewEchidnaTestWithdrawAndCallIterator{contract: _ERC20CustodyNewEchidnaTest.contract, event: "WithdrawAndCall", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndCall is a free log subscription operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *ERC20CustodyNewEchidnaTestWithdrawAndCall, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNewEchidnaTest.contract.WatchLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyNewEchidnaTestWithdrawAndCall) + if err := _ERC20CustodyNewEchidnaTest.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndCall is a log parse operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestFilterer) ParseWithdrawAndCall(log types.Log) (*ERC20CustodyNewEchidnaTestWithdrawAndCall, error) { + event := new(ERC20CustodyNewEchidnaTestWithdrawAndCall) + if err := _ERC20CustodyNewEchidnaTest.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyNewEchidnaTestWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the ERC20CustodyNewEchidnaTest contract. +type ERC20CustodyNewEchidnaTestWithdrawAndRevertIterator struct { + Event *ERC20CustodyNewEchidnaTestWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyNewEchidnaTestWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewEchidnaTestWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyNewEchidnaTestWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyNewEchidnaTestWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyNewEchidnaTestWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyNewEchidnaTestWithdrawAndRevert represents a WithdrawAndRevert event raised by the ERC20CustodyNewEchidnaTest contract. +type ERC20CustodyNewEchidnaTestWithdrawAndRevert struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndRevert is a free log retrieval operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyNewEchidnaTestWithdrawAndRevertIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNewEchidnaTest.contract.FilterLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyNewEchidnaTestWithdrawAndRevertIterator{contract: _ERC20CustodyNewEchidnaTest.contract, event: "WithdrawAndRevert", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndRevert is a free log subscription operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *ERC20CustodyNewEchidnaTestWithdrawAndRevert, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20CustodyNewEchidnaTest.contract.WatchLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyNewEchidnaTestWithdrawAndRevert) + if err := _ERC20CustodyNewEchidnaTest.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndRevert is a log parse operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ERC20CustodyNewEchidnaTest *ERC20CustodyNewEchidnaTestFilterer) ParseWithdrawAndRevert(log types.Log) (*ERC20CustodyNewEchidnaTestWithdrawAndRevert, error) { + event := new(ERC20CustodyNewEchidnaTestWithdrawAndRevert) + if err := _ERC20CustodyNewEchidnaTest.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/gatewayevm.sol/gatewayevm.go b/v2/pkg/gatewayevm.sol/gatewayevm.go new file mode 100644 index 00000000..8b0ea580 --- /dev/null +++ b/v2/pkg/gatewayevm.sol/gatewayevm.go @@ -0,0 +1,2078 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package gatewayevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// GatewayEVMMetaData contains all meta data concerning the GatewayEVM contract. +var GatewayEVMMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"UPGRADE_INTERFACE_VERSION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"call\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"custody\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositAndCall\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"depositAndCall\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"execute\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"executeRevert\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"executeWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_tssAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_zetaToken\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proxiableUUID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revertWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setConnector\",\"inputs\":[{\"name\":\"_zetaConnector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setCustody\",\"inputs\":[{\"name\":\"_custody\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"upgradeToAndCall\",\"inputs\":[{\"name\":\"newImplementation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"zetaConnector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"zetaToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Executed\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Reverted\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RevertedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ERC1967InvalidImplementation\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967NonPayable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"UUPSUnauthorizedCallContext\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UUPSUnsupportedProxiableUUID\",\"inputs\":[{\"name\":\"slot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516125cc6100fd600039600081816114fb01528181611524015261196a01526125cc6000f3fe6080604052600436106101755760003560e01c80635b112591116100cb578063ae7a3a6f1161007f578063f2fde38b11610059578063f2fde38b14610414578063f340fa0114610434578063f45346dc1461044757600080fd5b8063ae7a3a6f146103b4578063b8969bd4146103d4578063dda79b75146103f457600080fd5b80638c6f037f116100b05780638c6f037f1461030e5780638da5cb5b1461032e578063ad3cb1cc1461036b57600080fd5b80635b112591146102d9578063715018a6146102f957600080fd5b806335c018db1161012d5780635131ab59116101075780635131ab591461027657806352d1902d1461029657806357bec62f146102b957600080fd5b806335c018db14610230578063485cc955146102435780634f1ef2861461026357600080fd5b80631cff79cd1161015e5780631cff79cd146101bc57806321e093b1146101e557806329c59b5d1461021d57600080fd5b806310188aef1461017a5780631b8b921d1461019c575b600080fd5b34801561018657600080fd5b5061019a6101953660046120e9565b610467565b005b3480156101a857600080fd5b5061019a6101b736600461214d565b610568565b6101cf6101ca36600461214d565b6105ba565b6040516101dc919061220e565b60405180910390f35b3480156101f157600080fd5b50600354610205906001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b61019a61022b36600461214d565b61065f565b61019a61023e36600461214d565b610784565b34801561024f57600080fd5b5061019a61025e366004612221565b61091c565b61019a610271366004612283565b610b49565b34801561028257600080fd5b5061019a61029136600461238a565b610b68565b3480156102a257600080fd5b506102ab610e6f565b6040519081526020016101dc565b3480156102c557600080fd5b50600254610205906001600160a01b031681565b3480156102e557600080fd5b50600154610205906001600160a01b031681565b34801561030557600080fd5b5061019a610e9e565b34801561031a57600080fd5b5061019a6103293660046123f9565b610eb2565b34801561033a57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610205565b34801561037757600080fd5b506101cf6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156103c057600080fd5b5061019a6103cf3660046120e9565b610f4f565b3480156103e057600080fd5b5061019a6103ef36600461238a565b611050565b34801561040057600080fd5b50600054610205906001600160a01b031681565b34801561042057600080fd5b5061019a61042f3660046120e9565b6111f4565b61019a6104423660046120e9565b611250565b34801561045357600080fd5b5061019a61046236600461244b565b611375565b6001546001600160a01b031633146104ab576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546001600160a01b0316156104ee576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811661052e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde384846040516105ad9291906124d0565b60405180910390a3505050565b6001546060906001600160a01b03163314610601576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061060e858585611420565b9050846001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34868660405161064d939291906124ec565b60405180910390a290505b9392505050565b34600003610699576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146106e6576040519150601f19603f3d011682016040523d82523d6000602084013e6106eb565b606091505b509091505080151560000361072c576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600087876040516107769493929190612506565b60405180910390a350505050565b6001546001600160a01b031633146107c8576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080846001600160a01b03163460405160006040518083038185875af1925050503d8060008114610816576040519150601f19603f3d011682016040523d82523d6000602084013e61081b565b606091505b509150915081610857576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b59061089e90879087906004016124d0565b600060405180830381600087803b1580156108b857600080fd5b505af11580156108cc573d6000803e3d6000fd5b50505050846001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c34868660405161090d939291906124ec565b60405180910390a25050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109675750825b905060008267ffffffffffffffff1660011480156109845750303b155b905081158015610992575080155b156109c9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610a2a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b0387161580610a4757506001600160a01b038616155b15610a7e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a87336114c7565b610a8f6114d8565b610a976114e0565b600180546001600160a01b03808a167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560038054928916929091169190911790558315610b405784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610b516114f0565b610b5a826115c0565b610b6482826115c8565b5050565b610b706116ec565b6000546001600160a01b03163314801590610b9657506002546001600160a01b03163314155b15610bcd576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003610c07576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c11858561176d565b610c47576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905286169063095ea7b3906044016020604051808303816000875af1158015610caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd3919061252f565b610d09576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d16858484611420565b9050610d22868661176d565b610d58576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610db8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc9190612551565b90508015610dee57610dee87826117fd565b856001600160a01b0316876001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382878787604051610e35939291906124ec565b60405180910390a35050610e6860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6000610e7961195f565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610ea66119c1565b610eb06000611a35565b565b83600003610eec576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ef7338486611abe565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a486868686604051610f409493929190612506565b60405180910390a35050505050565b6001546001600160a01b03163314610f93576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b031615610fd6576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116611016576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6110586116ec565b6000546001600160a01b0316331480159061107e57506002546001600160a01b03163314155b156110b5576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826000036110ef576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111036001600160a01b0386168585611c09565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638fcaa0b59061114a90859085906004016124d0565b600060405180830381600087803b15801561116457600080fd5b505af1158015611178573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78585856040516111c3939291906124ec565b60405180910390a3610e6860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6111fc6119c1565b6001600160a01b038116611244576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b61124d81611a35565b50565b3460000361128a576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146112d7576040519150601f19603f3d011682016040523d82523d6000602084013e6112dc565b606091505b509091505080151560000361131d576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b816000036113af576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba338284611abe565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a484846040516105ad9291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b6060600080856001600160a01b031634868660405161144092919061256a565b60006040518083038185875af1925050503d806000811461147d576040519150601f19603f3d011682016040523d82523d6000602084013e611482565b606091505b5091509150816114be576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b95945050505050565b6114cf611c7d565b61124d81611ce4565b610eb0611c7d565b6114e8611c7d565b610eb0611cec565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061158957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661157d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15610eb0576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61124d6119c1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611640575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261163d91810190612551565b60015b611681576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b038316600482015260240161123b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146116dd576040517faa1d49a40000000000000000000000000000000000000000000000000000000081526004810182905260240161123b565b6116e78383611cf4565b505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611767576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af11580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610658919061252f565b6003546001600160a01b039081169083160361191f576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af115801561187f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a3919061252f565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b15801561190357600080fd5b505af1158015611917573d6000803e3d6000fd5b505050505050565b600054610b64906001600160a01b03848116911683611c09565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610eb0576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336119f37f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610eb0576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161123b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6003546001600160a01b0390811690831603611bed57611ae96001600160a01b038316843084611d4a565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b79919061252f565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611bd957600080fd5b505af1158015610b40573d6000803e3d6000fd5b6000546116e7906001600160a01b038481169186911684611d4a565b6040516001600160a01b038381166024830152604482018390526116e791859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d89565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610eb0576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111fc611c7d565b611939611c7d565b611cfd82611e05565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611d42576116e78282611ead565b610b64611f1a565b6040516001600160a01b038481166024830152838116604483015260648201839052611d839186918216906323b872dd90608401611c36565b50505050565b6000611d9e6001600160a01b03841683611f52565b90508051600014158015611dc3575080806020019051810190611dc1919061252f565b155b156116e7576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260240161123b565b806001600160a01b03163b600003611e54576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260240161123b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611eca919061257a565b600060405180830381855af49150503d8060008114611f05576040519150601f19603f3d011682016040523d82523d6000602084013e611f0a565b606091505b50915091506114be858383611f60565b3415610eb0576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606061065883836000611fd5565b606082611f7557611f708261208b565b610658565b8151158015611f8c57506001600160a01b0384163b155b15611fce576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260240161123b565b5080610658565b606081471015612013576040517fcd78605900000000000000000000000000000000000000000000000000000000815230600482015260240161123b565b600080856001600160a01b0316848660405161202f919061257a565b60006040518083038185875af1925050503d806000811461206c576040519150601f19603f3d011682016040523d82523d6000602084013e612071565b606091505b5091509150612081868383611f60565b9695505050505050565b80511561209b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b03811681146120e457600080fd5b919050565b6000602082840312156120fb57600080fd5b610658826120cd565b60008083601f84011261211657600080fd5b50813567ffffffffffffffff81111561212e57600080fd5b60208301915083602082850101111561214657600080fd5b9250929050565b60008060006040848603121561216257600080fd5b61216b846120cd565b9250602084013567ffffffffffffffff81111561218757600080fd5b61219386828701612104565b9497909650939450505050565b60005b838110156121bb5781810151838201526020016121a3565b50506000910152565b600081518084526121dc8160208601602086016121a0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061065860208301846121c4565b6000806040838503121561223457600080fd5b61223d836120cd565b915061224b602084016120cd565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561229657600080fd5b61229f836120cd565b9150602083013567ffffffffffffffff8111156122bb57600080fd5b8301601f810185136122cc57600080fd5b803567ffffffffffffffff8111156122e6576122e6612254565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561235257612352612254565b60405281815282820160200187101561236a57600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000806000806000608086880312156123a257600080fd5b6123ab866120cd565b94506123b9602087016120cd565b935060408601359250606086013567ffffffffffffffff8111156123dc57600080fd5b6123e888828901612104565b969995985093965092949392505050565b60008060008060006080868803121561241157600080fd5b61241a866120cd565b94506020860135935061242f604087016120cd565b9250606086013567ffffffffffffffff8111156123dc57600080fd5b60008060006060848603121561246057600080fd5b612469846120cd565b92506020840135915061247e604085016120cd565b90509250925092565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6020815260006124e4602083018486612487565b949350505050565b8381526040602082015260006114be604083018486612487565b8481526001600160a01b0384166020820152606060408201526000612081606083018486612487565b60006020828403121561254157600080fd5b8151801515811461065857600080fd5b60006020828403121561256357600080fd5b5051919050565b8183823760009101908152919050565b6000825161258c8184602087016121a0565b919091019291505056fea2646970667358221220e61dbe900f49590d1bcc0dbd88158d680a474b3ee3da9c5f5d8252f09253a6d964736f6c634300081a0033", +} + +// GatewayEVMABI is the input ABI used to generate the binding from. +// Deprecated: Use GatewayEVMMetaData.ABI instead. +var GatewayEVMABI = GatewayEVMMetaData.ABI + +// GatewayEVMBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use GatewayEVMMetaData.Bin instead. +var GatewayEVMBin = GatewayEVMMetaData.Bin + +// DeployGatewayEVM deploys a new Ethereum contract, binding an instance of GatewayEVM to it. +func DeployGatewayEVM(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GatewayEVM, error) { + parsed, err := GatewayEVMMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(GatewayEVMBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &GatewayEVM{GatewayEVMCaller: GatewayEVMCaller{contract: contract}, GatewayEVMTransactor: GatewayEVMTransactor{contract: contract}, GatewayEVMFilterer: GatewayEVMFilterer{contract: contract}}, nil +} + +// GatewayEVM is an auto generated Go binding around an Ethereum contract. +type GatewayEVM struct { + GatewayEVMCaller // Read-only binding to the contract + GatewayEVMTransactor // Write-only binding to the contract + GatewayEVMFilterer // Log filterer for contract events +} + +// GatewayEVMCaller is an auto generated read-only Go binding around an Ethereum contract. +type GatewayEVMCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMTransactor is an auto generated write-only Go binding around an Ethereum contract. +type GatewayEVMTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type GatewayEVMFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type GatewayEVMSession struct { + Contract *GatewayEVM // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type GatewayEVMCallerSession struct { + Contract *GatewayEVMCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// GatewayEVMTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type GatewayEVMTransactorSession struct { + Contract *GatewayEVMTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMRaw is an auto generated low-level Go binding around an Ethereum contract. +type GatewayEVMRaw struct { + Contract *GatewayEVM // Generic contract binding to access the raw methods on +} + +// GatewayEVMCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type GatewayEVMCallerRaw struct { + Contract *GatewayEVMCaller // Generic read-only contract binding to access the raw methods on +} + +// GatewayEVMTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type GatewayEVMTransactorRaw struct { + Contract *GatewayEVMTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewGatewayEVM creates a new instance of GatewayEVM, bound to a specific deployed contract. +func NewGatewayEVM(address common.Address, backend bind.ContractBackend) (*GatewayEVM, error) { + contract, err := bindGatewayEVM(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &GatewayEVM{GatewayEVMCaller: GatewayEVMCaller{contract: contract}, GatewayEVMTransactor: GatewayEVMTransactor{contract: contract}, GatewayEVMFilterer: GatewayEVMFilterer{contract: contract}}, nil +} + +// NewGatewayEVMCaller creates a new read-only instance of GatewayEVM, bound to a specific deployed contract. +func NewGatewayEVMCaller(address common.Address, caller bind.ContractCaller) (*GatewayEVMCaller, error) { + contract, err := bindGatewayEVM(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &GatewayEVMCaller{contract: contract}, nil +} + +// NewGatewayEVMTransactor creates a new write-only instance of GatewayEVM, bound to a specific deployed contract. +func NewGatewayEVMTransactor(address common.Address, transactor bind.ContractTransactor) (*GatewayEVMTransactor, error) { + contract, err := bindGatewayEVM(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &GatewayEVMTransactor{contract: contract}, nil +} + +// NewGatewayEVMFilterer creates a new log filterer instance of GatewayEVM, bound to a specific deployed contract. +func NewGatewayEVMFilterer(address common.Address, filterer bind.ContractFilterer) (*GatewayEVMFilterer, error) { + contract, err := bindGatewayEVM(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &GatewayEVMFilterer{contract: contract}, nil +} + +// bindGatewayEVM binds a generic wrapper to an already deployed contract. +func bindGatewayEVM(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := GatewayEVMMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVM *GatewayEVMRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVM.Contract.GatewayEVMCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVM *GatewayEVMRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVM.Contract.GatewayEVMTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVM *GatewayEVMRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVM.Contract.GatewayEVMTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVM *GatewayEVMCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVM.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVM *GatewayEVMTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVM.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVM *GatewayEVMTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVM.Contract.contract.Transact(opts, method, params...) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayEVM *GatewayEVMCaller) UPGRADEINTERFACEVERSION(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "UPGRADE_INTERFACE_VERSION") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayEVM *GatewayEVMSession) UPGRADEINTERFACEVERSION() (string, error) { + return _GatewayEVM.Contract.UPGRADEINTERFACEVERSION(&_GatewayEVM.CallOpts) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayEVM *GatewayEVMCallerSession) UPGRADEINTERFACEVERSION() (string, error) { + return _GatewayEVM.Contract.UPGRADEINTERFACEVERSION(&_GatewayEVM.CallOpts) +} + +// Custody is a free data retrieval call binding the contract method 0xdda79b75. +// +// Solidity: function custody() view returns(address) +func (_GatewayEVM *GatewayEVMCaller) Custody(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "custody") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Custody is a free data retrieval call binding the contract method 0xdda79b75. +// +// Solidity: function custody() view returns(address) +func (_GatewayEVM *GatewayEVMSession) Custody() (common.Address, error) { + return _GatewayEVM.Contract.Custody(&_GatewayEVM.CallOpts) +} + +// Custody is a free data retrieval call binding the contract method 0xdda79b75. +// +// Solidity: function custody() view returns(address) +func (_GatewayEVM *GatewayEVMCallerSession) Custody() (common.Address, error) { + return _GatewayEVM.Contract.Custody(&_GatewayEVM.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayEVM *GatewayEVMCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayEVM *GatewayEVMSession) Owner() (common.Address, error) { + return _GatewayEVM.Contract.Owner(&_GatewayEVM.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayEVM *GatewayEVMCallerSession) Owner() (common.Address, error) { + return _GatewayEVM.Contract.Owner(&_GatewayEVM.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayEVM *GatewayEVMCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "proxiableUUID") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayEVM *GatewayEVMSession) ProxiableUUID() ([32]byte, error) { + return _GatewayEVM.Contract.ProxiableUUID(&_GatewayEVM.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayEVM *GatewayEVMCallerSession) ProxiableUUID() ([32]byte, error) { + return _GatewayEVM.Contract.ProxiableUUID(&_GatewayEVM.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_GatewayEVM *GatewayEVMCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "tssAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_GatewayEVM *GatewayEVMSession) TssAddress() (common.Address, error) { + return _GatewayEVM.Contract.TssAddress(&_GatewayEVM.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_GatewayEVM *GatewayEVMCallerSession) TssAddress() (common.Address, error) { + return _GatewayEVM.Contract.TssAddress(&_GatewayEVM.CallOpts) +} + +// ZetaConnector is a free data retrieval call binding the contract method 0x57bec62f. +// +// Solidity: function zetaConnector() view returns(address) +func (_GatewayEVM *GatewayEVMCaller) ZetaConnector(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "zetaConnector") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaConnector is a free data retrieval call binding the contract method 0x57bec62f. +// +// Solidity: function zetaConnector() view returns(address) +func (_GatewayEVM *GatewayEVMSession) ZetaConnector() (common.Address, error) { + return _GatewayEVM.Contract.ZetaConnector(&_GatewayEVM.CallOpts) +} + +// ZetaConnector is a free data retrieval call binding the contract method 0x57bec62f. +// +// Solidity: function zetaConnector() view returns(address) +func (_GatewayEVM *GatewayEVMCallerSession) ZetaConnector() (common.Address, error) { + return _GatewayEVM.Contract.ZetaConnector(&_GatewayEVM.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayEVM *GatewayEVMCaller) ZetaToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "zetaToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayEVM *GatewayEVMSession) ZetaToken() (common.Address, error) { + return _GatewayEVM.Contract.ZetaToken(&_GatewayEVM.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayEVM *GatewayEVMCallerSession) ZetaToken() (common.Address, error) { + return _GatewayEVM.Contract.ZetaToken(&_GatewayEVM.CallOpts) +} + +// Call is a paid mutator transaction binding the contract method 0x1b8b921d. +// +// Solidity: function call(address receiver, bytes payload) returns() +func (_GatewayEVM *GatewayEVMTransactor) Call(opts *bind.TransactOpts, receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "call", receiver, payload) +} + +// Call is a paid mutator transaction binding the contract method 0x1b8b921d. +// +// Solidity: function call(address receiver, bytes payload) returns() +func (_GatewayEVM *GatewayEVMSession) Call(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.Call(&_GatewayEVM.TransactOpts, receiver, payload) +} + +// Call is a paid mutator transaction binding the contract method 0x1b8b921d. +// +// Solidity: function call(address receiver, bytes payload) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) Call(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.Call(&_GatewayEVM.TransactOpts, receiver, payload) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf340fa01. +// +// Solidity: function deposit(address receiver) payable returns() +func (_GatewayEVM *GatewayEVMTransactor) Deposit(opts *bind.TransactOpts, receiver common.Address) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "deposit", receiver) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf340fa01. +// +// Solidity: function deposit(address receiver) payable returns() +func (_GatewayEVM *GatewayEVMSession) Deposit(receiver common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.Deposit(&_GatewayEVM.TransactOpts, receiver) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf340fa01. +// +// Solidity: function deposit(address receiver) payable returns() +func (_GatewayEVM *GatewayEVMTransactorSession) Deposit(receiver common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.Deposit(&_GatewayEVM.TransactOpts, receiver) +} + +// Deposit0 is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address receiver, uint256 amount, address asset) returns() +func (_GatewayEVM *GatewayEVMTransactor) Deposit0(opts *bind.TransactOpts, receiver common.Address, amount *big.Int, asset common.Address) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "deposit0", receiver, amount, asset) +} + +// Deposit0 is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address receiver, uint256 amount, address asset) returns() +func (_GatewayEVM *GatewayEVMSession) Deposit0(receiver common.Address, amount *big.Int, asset common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.Deposit0(&_GatewayEVM.TransactOpts, receiver, amount, asset) +} + +// Deposit0 is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address receiver, uint256 amount, address asset) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) Deposit0(receiver common.Address, amount *big.Int, asset common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.Deposit0(&_GatewayEVM.TransactOpts, receiver, amount, asset) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x29c59b5d. +// +// Solidity: function depositAndCall(address receiver, bytes payload) payable returns() +func (_GatewayEVM *GatewayEVMTransactor) DepositAndCall(opts *bind.TransactOpts, receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "depositAndCall", receiver, payload) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x29c59b5d. +// +// Solidity: function depositAndCall(address receiver, bytes payload) payable returns() +func (_GatewayEVM *GatewayEVMSession) DepositAndCall(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.DepositAndCall(&_GatewayEVM.TransactOpts, receiver, payload) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x29c59b5d. +// +// Solidity: function depositAndCall(address receiver, bytes payload) payable returns() +func (_GatewayEVM *GatewayEVMTransactorSession) DepositAndCall(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.DepositAndCall(&_GatewayEVM.TransactOpts, receiver, payload) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0x8c6f037f. +// +// Solidity: function depositAndCall(address receiver, uint256 amount, address asset, bytes payload) returns() +func (_GatewayEVM *GatewayEVMTransactor) DepositAndCall0(opts *bind.TransactOpts, receiver common.Address, amount *big.Int, asset common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "depositAndCall0", receiver, amount, asset, payload) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0x8c6f037f. +// +// Solidity: function depositAndCall(address receiver, uint256 amount, address asset, bytes payload) returns() +func (_GatewayEVM *GatewayEVMSession) DepositAndCall0(receiver common.Address, amount *big.Int, asset common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.DepositAndCall0(&_GatewayEVM.TransactOpts, receiver, amount, asset, payload) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0x8c6f037f. +// +// Solidity: function depositAndCall(address receiver, uint256 amount, address asset, bytes payload) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) DepositAndCall0(receiver common.Address, amount *big.Int, asset common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.DepositAndCall0(&_GatewayEVM.TransactOpts, receiver, amount, asset, payload) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_GatewayEVM *GatewayEVMTransactor) Execute(opts *bind.TransactOpts, destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "execute", destination, data) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_GatewayEVM *GatewayEVMSession) Execute(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.Execute(&_GatewayEVM.TransactOpts, destination, data) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_GatewayEVM *GatewayEVMTransactorSession) Execute(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.Execute(&_GatewayEVM.TransactOpts, destination, data) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x35c018db. +// +// Solidity: function executeRevert(address destination, bytes data) payable returns() +func (_GatewayEVM *GatewayEVMTransactor) ExecuteRevert(opts *bind.TransactOpts, destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "executeRevert", destination, data) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x35c018db. +// +// Solidity: function executeRevert(address destination, bytes data) payable returns() +func (_GatewayEVM *GatewayEVMSession) ExecuteRevert(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.ExecuteRevert(&_GatewayEVM.TransactOpts, destination, data) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x35c018db. +// +// Solidity: function executeRevert(address destination, bytes data) payable returns() +func (_GatewayEVM *GatewayEVMTransactorSession) ExecuteRevert(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.ExecuteRevert(&_GatewayEVM.TransactOpts, destination, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVM *GatewayEVMTransactor) ExecuteWithERC20(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "executeWithERC20", token, to, amount, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVM *GatewayEVMSession) ExecuteWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.ExecuteWithERC20(&_GatewayEVM.TransactOpts, token, to, amount, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) ExecuteWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.ExecuteWithERC20(&_GatewayEVM.TransactOpts, token, to, amount, data) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken) returns() +func (_GatewayEVM *GatewayEVMTransactor) Initialize(opts *bind.TransactOpts, _tssAddress common.Address, _zetaToken common.Address) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "initialize", _tssAddress, _zetaToken) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken) returns() +func (_GatewayEVM *GatewayEVMSession) Initialize(_tssAddress common.Address, _zetaToken common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.Initialize(&_GatewayEVM.TransactOpts, _tssAddress, _zetaToken) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) Initialize(_tssAddress common.Address, _zetaToken common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.Initialize(&_GatewayEVM.TransactOpts, _tssAddress, _zetaToken) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayEVM *GatewayEVMTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayEVM *GatewayEVMSession) RenounceOwnership() (*types.Transaction, error) { + return _GatewayEVM.Contract.RenounceOwnership(&_GatewayEVM.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayEVM *GatewayEVMTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _GatewayEVM.Contract.RenounceOwnership(&_GatewayEVM.TransactOpts) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVM *GatewayEVMTransactor) RevertWithERC20(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "revertWithERC20", token, to, amount, data) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVM *GatewayEVMSession) RevertWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.RevertWithERC20(&_GatewayEVM.TransactOpts, token, to, amount, data) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) RevertWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.RevertWithERC20(&_GatewayEVM.TransactOpts, token, to, amount, data) +} + +// SetConnector is a paid mutator transaction binding the contract method 0x10188aef. +// +// Solidity: function setConnector(address _zetaConnector) returns() +func (_GatewayEVM *GatewayEVMTransactor) SetConnector(opts *bind.TransactOpts, _zetaConnector common.Address) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "setConnector", _zetaConnector) +} + +// SetConnector is a paid mutator transaction binding the contract method 0x10188aef. +// +// Solidity: function setConnector(address _zetaConnector) returns() +func (_GatewayEVM *GatewayEVMSession) SetConnector(_zetaConnector common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.SetConnector(&_GatewayEVM.TransactOpts, _zetaConnector) +} + +// SetConnector is a paid mutator transaction binding the contract method 0x10188aef. +// +// Solidity: function setConnector(address _zetaConnector) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) SetConnector(_zetaConnector common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.SetConnector(&_GatewayEVM.TransactOpts, _zetaConnector) +} + +// SetCustody is a paid mutator transaction binding the contract method 0xae7a3a6f. +// +// Solidity: function setCustody(address _custody) returns() +func (_GatewayEVM *GatewayEVMTransactor) SetCustody(opts *bind.TransactOpts, _custody common.Address) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "setCustody", _custody) +} + +// SetCustody is a paid mutator transaction binding the contract method 0xae7a3a6f. +// +// Solidity: function setCustody(address _custody) returns() +func (_GatewayEVM *GatewayEVMSession) SetCustody(_custody common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.SetCustody(&_GatewayEVM.TransactOpts, _custody) +} + +// SetCustody is a paid mutator transaction binding the contract method 0xae7a3a6f. +// +// Solidity: function setCustody(address _custody) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) SetCustody(_custody common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.SetCustody(&_GatewayEVM.TransactOpts, _custody) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayEVM *GatewayEVMTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayEVM *GatewayEVMSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.TransferOwnership(&_GatewayEVM.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.TransferOwnership(&_GatewayEVM.TransactOpts, newOwner) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayEVM *GatewayEVMTransactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "upgradeToAndCall", newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayEVM *GatewayEVMSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.UpgradeToAndCall(&_GatewayEVM.TransactOpts, newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayEVM *GatewayEVMTransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVM.Contract.UpgradeToAndCall(&_GatewayEVM.TransactOpts, newImplementation, data) +} + +// GatewayEVMCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the GatewayEVM contract. +type GatewayEVMCallIterator struct { + Event *GatewayEVMCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMCall represents a Call event raised by the GatewayEVM contract. +type GatewayEVMCall struct { + Sender common.Address + Receiver common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVM *GatewayEVMFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMCallIterator{contract: _GatewayEVM.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVM *GatewayEVMFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayEVMCall, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMCall) + if err := _GatewayEVM.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVM *GatewayEVMFilterer) ParseCall(log types.Log) (*GatewayEVMCall, error) { + event := new(GatewayEVMCall) + if err := _GatewayEVM.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the GatewayEVM contract. +type GatewayEVMDepositIterator struct { + Event *GatewayEVMDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMDeposit represents a Deposit event raised by the GatewayEVM contract. +type GatewayEVMDeposit struct { + Sender common.Address + Receiver common.Address + Amount *big.Int + Asset common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVM *GatewayEVMFilterer) FilterDeposit(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMDepositIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMDepositIterator{contract: _GatewayEVM.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVM *GatewayEVMFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *GatewayEVMDeposit, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMDeposit) + if err := _GatewayEVM.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVM *GatewayEVMFilterer) ParseDeposit(log types.Log) (*GatewayEVMDeposit, error) { + event := new(GatewayEVMDeposit) + if err := _GatewayEVM.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMExecutedIterator is returned from FilterExecuted and is used to iterate over the raw logs and unpacked data for Executed events raised by the GatewayEVM contract. +type GatewayEVMExecutedIterator struct { + Event *GatewayEVMExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMExecuted represents a Executed event raised by the GatewayEVM contract. +type GatewayEVMExecuted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMExecutedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMExecutedIterator{contract: _GatewayEVM.contract, event: "Executed", logs: logs, sub: sub}, nil +} + +// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) WatchExecuted(opts *bind.WatchOpts, sink chan<- *GatewayEVMExecuted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMExecuted) + if err := _GatewayEVM.contract.UnpackLog(event, "Executed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) ParseExecuted(log types.Log) (*GatewayEVMExecuted, error) { + event := new(GatewayEVMExecuted) + if err := _GatewayEVM.contract.UnpackLog(event, "Executed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMExecutedWithERC20Iterator is returned from FilterExecutedWithERC20 and is used to iterate over the raw logs and unpacked data for ExecutedWithERC20 events raised by the GatewayEVM contract. +type GatewayEVMExecutedWithERC20Iterator struct { + Event *GatewayEVMExecutedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMExecutedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMExecutedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMExecutedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMExecutedWithERC20 represents a ExecutedWithERC20 event raised by the GatewayEVM contract. +type GatewayEVMExecutedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) FilterExecutedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMExecutedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMExecutedWithERC20Iterator{contract: _GatewayEVM.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) WatchExecutedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMExecutedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMExecutedWithERC20) + if err := _GatewayEVM.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) ParseExecutedWithERC20(log types.Log) (*GatewayEVMExecutedWithERC20, error) { + event := new(GatewayEVMExecutedWithERC20) + if err := _GatewayEVM.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the GatewayEVM contract. +type GatewayEVMInitializedIterator struct { + Event *GatewayEVMInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInitialized represents a Initialized event raised by the GatewayEVM contract. +type GatewayEVMInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayEVM *GatewayEVMFilterer) FilterInitialized(opts *bind.FilterOpts) (*GatewayEVMInitializedIterator, error) { + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &GatewayEVMInitializedIterator{contract: _GatewayEVM.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayEVM *GatewayEVMFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *GatewayEVMInitialized) (event.Subscription, error) { + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInitialized) + if err := _GatewayEVM.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayEVM *GatewayEVMFilterer) ParseInitialized(log types.Log) (*GatewayEVMInitialized, error) { + event := new(GatewayEVMInitialized) + if err := _GatewayEVM.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the GatewayEVM contract. +type GatewayEVMOwnershipTransferredIterator struct { + Event *GatewayEVMOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMOwnershipTransferred represents a OwnershipTransferred event raised by the GatewayEVM contract. +type GatewayEVMOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayEVM *GatewayEVMFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*GatewayEVMOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &GatewayEVMOwnershipTransferredIterator{contract: _GatewayEVM.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayEVM *GatewayEVMFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *GatewayEVMOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMOwnershipTransferred) + if err := _GatewayEVM.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayEVM *GatewayEVMFilterer) ParseOwnershipTransferred(log types.Log) (*GatewayEVMOwnershipTransferred, error) { + event := new(GatewayEVMOwnershipTransferred) + if err := _GatewayEVM.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMRevertedIterator is returned from FilterReverted and is used to iterate over the raw logs and unpacked data for Reverted events raised by the GatewayEVM contract. +type GatewayEVMRevertedIterator struct { + Event *GatewayEVMReverted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMRevertedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMRevertedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMRevertedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMReverted represents a Reverted event raised by the GatewayEVM contract. +type GatewayEVMReverted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMRevertedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMRevertedIterator{contract: _GatewayEVM.contract, event: "Reverted", logs: logs, sub: sub}, nil +} + +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) WatchReverted(opts *bind.WatchOpts, sink chan<- *GatewayEVMReverted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMReverted) + if err := _GatewayEVM.contract.UnpackLog(event, "Reverted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) ParseReverted(log types.Log) (*GatewayEVMReverted, error) { + event := new(GatewayEVMReverted) + if err := _GatewayEVM.contract.UnpackLog(event, "Reverted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMRevertedWithERC20Iterator is returned from FilterRevertedWithERC20 and is used to iterate over the raw logs and unpacked data for RevertedWithERC20 events raised by the GatewayEVM contract. +type GatewayEVMRevertedWithERC20Iterator struct { + Event *GatewayEVMRevertedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMRevertedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMRevertedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMRevertedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMRevertedWithERC20 represents a RevertedWithERC20 event raised by the GatewayEVM contract. +type GatewayEVMRevertedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) FilterRevertedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMRevertedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMRevertedWithERC20Iterator{contract: _GatewayEVM.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) WatchRevertedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMRevertedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMRevertedWithERC20) + if err := _GatewayEVM.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) ParseRevertedWithERC20(log types.Log) (*GatewayEVMRevertedWithERC20, error) { + event := new(GatewayEVMRevertedWithERC20) + if err := _GatewayEVM.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the GatewayEVM contract. +type GatewayEVMUpgradedIterator struct { + Event *GatewayEVMUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgraded represents a Upgraded event raised by the GatewayEVM contract. +type GatewayEVMUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayEVM *GatewayEVMFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*GatewayEVMUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradedIterator{contract: _GatewayEVM.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayEVM *GatewayEVMFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgraded) + if err := _GatewayEVM.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayEVM *GatewayEVMFilterer) ParseUpgraded(log types.Log) (*GatewayEVMUpgraded, error) { + event := new(GatewayEVMUpgraded) + if err := _GatewayEVM.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/gatewayevm.t.sol/gatewayevminboundtest.go b/v2/pkg/gatewayevm.t.sol/gatewayevminboundtest.go new file mode 100644 index 00000000..fb1c8309 --- /dev/null +++ b/v2/pkg/gatewayevm.t.sol/gatewayevminboundtest.go @@ -0,0 +1,5357 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package gatewayevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdInvariantFuzzArtifactSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzArtifactSelector struct { + Artifact string + Selectors [][4]byte +} + +// StdInvariantFuzzInterface is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzInterface struct { + Addr common.Address + Artifacts []string +} + +// StdInvariantFuzzSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzSelector struct { + Addr common.Address + Selectors [][4]byte +} + +// GatewayEVMInboundTestMetaData contains all meta data concerning the GatewayEVMInboundTest contract. +var GatewayEVMInboundTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"IS_TEST\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"failed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setUp\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzArtifactSelector[]\",\"components\":[{\"name\":\"artifact\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetInterfaces\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzInterface[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"artifacts\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"testCallWithPayload\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositERC20ToCustody\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositERC20ToCustodyWithPayload\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositEthToTss\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositEthToTssWithPayload\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testFailDepositERC20ToCustodyIfAmountIs0\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testFailDepositERC20ToCustodyWithPayloadIfAmountIs0\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testFailDepositEthToTssIfAmountIs0\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testFailDepositEthToTssWithPayloadIfAmountIs0\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Executed\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedERC20\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNoParams\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNonPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strs\",\"type\":\"string[]\",\"indexed\":false,\"internalType\":\"string[]\"},{\"name\":\"nums\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"str\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedRevert\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Reverted\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RevertedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_address\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes32\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_int\",\"inputs\":[{\"name\":\"\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_address\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes32\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_string\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_string\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_uint\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"logs\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055620f4240602855348015603357600080fd5b5061a674806100436000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063916a17c6116100d8578063ba414fa61161008c578063e20c9f7111610066578063e20c9f711461027b578063f96c02df14610283578063fa7626d41461028b57600080fd5b8063ba414fa614610253578063bb93f11e1461026b578063c13d738f1461027357600080fd5b8063aa030c1c116100bd578063aa030c1c1461023b578063b0464fdc14610243578063b5508aa91461024b57600080fd5b8063916a17c61461021e5780639fd1e5971461023357600080fd5b806330f7c04f1161013a5780636459542a116101145780636459542a146101ec57806366d9a9a0146101f457806385226c811461020957600080fd5b806330f7c04f146101d45780633e5e3c23146101dc5780633f7286f4146101e457600080fd5b80630a9254e41161016b5780630a9254e4146101995780631ed7831c146101a15780632ade3880146101bf57600080fd5b806306978ca3146101875780630724d8e314610191575b600080fd5b61018f610298565b005b61018f6103c5565b61018f61057c565b6101a9610c87565b6040516101b6919061687e565b60405180910390f35b6101c7610ce9565b6040516101b6919061691a565b61018f610e2b565b6101a9611298565b6101a96112f8565b61018f611358565b6101fc611755565b6040516101b69190616a80565b6102116118d7565b6040516101b69190616b1e565b6102266119a7565b6040516101b69190616b95565b61018f611aa2565b61018f611cbe565b610226611ea3565b610211611f9e565b61025b61206e565b60405190151581526020016101b6565b61018f612142565b61018f6122dc565b6101a961248b565b61018f6124eb565b601f5461025b9060ff1681565b6040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e74455448416d6f756e7400000000000000000000006044820152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb390606401600060405180830381600087803b15801561032e57600080fd5b505af1158015610342573d6000803e3d6000fd5b50506020546026546040517ff340fa010000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063f340fa01915083906024016000604051808303818588803b1580156103a957600080fd5b505af11580156103bd573d6000803e3d6000fd5b505050505050565b6027546020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039182166084820152620186a092919091163190737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b505060265460255460408051878152600060208201819052606082840181905282015290516001600160a01b0393841695509290911692507f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4919081900360800190a36020546026546040517ff340fa010000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291169063f340fa019084906024016000604051808303818588803b15801561053b57600080fd5b505af115801561054f573d6000803e3d6000fd5b50506027546001600160a01b0316319250610577915061057190508484616c5b565b8261268d565b505050565b602580547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602680548216611234179055602780549091166156781790556040516105ce9061679e565b60408082526004908201527f746573740000000000000000000000000000000000000000000000000000000060608201526080602082018190526003908201527f54544b000000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f080158015610653573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040516106989061679e565b604080825260049082018190527f7a6574610000000000000000000000000000000000000000000000000000000060608301526080602083018190528201527f5a4554410000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f08015801561071c573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081178255604080518082018252600e81527f4761746577617945564d2e736f6c0000000000000000000000000000000000006020820152602754915191909416928101929092526044820152610800919060640160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f485cc9550000000000000000000000000000000000000000000000000000000017905261270c565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560275460405191921690610884906167ab565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156108b7573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055602054602454602754604051928416939182169291169061090c906167b8565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610948573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556027546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b1580156109f457600080fd5b505af1158015610a08573d6000803e3d6000fd5b50506027546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b50506020546021546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b158015610af857600080fd5b505af1158015610b0c573d6000803e3d6000fd5b50506020546022546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b158015610b7257600080fd5b505af1158015610b86573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b50506023546025546028546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810191909152911692506340c10f199150604401600060405180830381600087803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b50505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610cdf57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cc1575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015610e2257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610e0b578382906000526020600020018054610d7e90616c6e565b80601f0160208091040260200160405190810160405280929190818152602001828054610daa90616c6e565b8015610df75780601f10610dcc57610100808354040283529160200191610df7565b820191906000526020600020905b815481529060010190602001808311610dda57829003601f168201915b505050505081526020019060010190610d5f565b505050508152505081526020019060010190610d0d565b50505050905090565b6023546021546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a09260009216906370a0823190602401602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190616cbb565b9050610ec860008261268d565b6026546040516001600160a01b03909116602482015260009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae76000000000000000000000000000000000000000000000000000000000179052602354905491517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03928316600482015260248101879052929350169063095ea7b3906044016020604051808303816000875af1158015610fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcf9190616cd4565b506020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561105e57600080fd5b505af1158015611072573d6000803e3d6000fd5b50506026546025546023546040516001600160a01b03938416955091831693507f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4926110c5928992909116908790616cf6565b60405180910390a36020546026546023546040517f8c6f037f0000000000000000000000000000000000000000000000000000000081526001600160a01b0393841693638c6f037f9361112693908216928992909116908790600401616d1e565b600060405180830381600087803b15801561114057600080fd5b505af1158015611154573d6000803e3d6000fd5b50506023546021546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e49190616cbb565b90506111f0848261268d565b6023546025546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa15801561125a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127e9190616cbb565b9050611291856028546105719190616d55565b5050505050565b60606018805480602002602001604051908101604052809291908181526020018280548015610cdf576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610cc1575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610cdf576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610cc1575050505050905090565b6023546021546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a09260009216906370a0823190602401602060405180830381865afa1580156113c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e89190616cbb565b90506113f560008261268d565b6023546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af1158015611463573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114879190616cd4565b506020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561151657600080fd5b505af115801561152a573d6000803e3d6000fd5b5050602654602554602354604080518881526001600160a01b039283166020820152606081830181905260009082015290519382169550911692507f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4919081900360800190a36020546026546023546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316600482015260248101869052908216604482015291169063f45346dc90606401600060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b50506023546021546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015611684573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a89190616cbb565b90506116b4838261268d565b6023546025546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa15801561171e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117429190616cbb565b9050610c81846028546105719190616d55565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015610e2257838290600052602060002090600202016040518060400160405290816000820180546117ac90616c6e565b80601f01602080910402602001604051908101604052809291908181526020018280546117d890616c6e565b80156118255780601f106117fa57610100808354040283529160200191611825565b820191906000526020600020905b81548152906001019060200180831161180857829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156118bf57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161186c5790505b50505050508152505081526020019060010190611779565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610e2257838290600052602060002001805461191a90616c6e565b80601f016020809104026020016040519081016040528092919081815260200182805461194690616c6e565b80156119935780601f1061196857610100808354040283529160200191611993565b820191906000526020600020905b81548152906001019060200180831161197657829003601f168201915b5050505050815260200190600101906118fb565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015610e225760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015611a8a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611a375790505b505050505081525050815260200190600101906119cb565b6027546026546040516001600160a01b039182166024820152620186a09291909116319060009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae760000000000000000000000000000000000000000000000000000000001790525490517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015611bb357600080fd5b505af1158015611bc7573d6000803e3d6000fd5b50506026546025546040516001600160a01b039283169450911691507f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a490611c159087906000908790616cf6565b60405180910390a36020546026546040517f29c59b5d0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316926329c59b5d928792611c6f92909116908690600401616d68565b6000604051808303818588803b158015611c8857600080fd5b505af1158015611c9c573d6000803e3d6000fd5b50506027546001600160a01b0316319250610c81915061057190508585616c5b565b6026546040516001600160a01b03909116602482015260009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae760000000000000000000000000000000000000000000000000000000001790525490517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015611dc157600080fd5b505af1158015611dd5573d6000803e3d6000fd5b50506026546025546040516001600160a01b039283169450911691507f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde390611e1e908590616d8a565b60405180910390a36020546026546040517f1b8b921d0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831692631b8b921d92611e75929116908590600401616d68565b600060405180830381600087803b158015611e8f57600080fd5b505af1158015611291573d6000803e3d6000fd5b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015610e225760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015611f8657602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611f335790505b50505050508152505081526020019060010190611ec7565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610e22578382906000526020600020018054611fe190616c6e565b80601f016020809104026020016040519081016040528092919081815260200182805461200d90616c6e565b801561205a5780601f1061202f5761010080835404028352916020019161205a565b820191906000526020600020905b81548152906001019060200180831161203d57829003601f168201915b505050505081526020019060010190611fc2565b60085460009060ff1615612086575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015612117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213b9190616cbb565b1415905090565b6026546040516001600160a01b039091166024820152600090819060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae76000000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906122399060040160208082526017908201527f496e73756666696369656e744552433230416d6f756e74000000000000000000604082015260600190565b600060405180830381600087803b15801561225357600080fd5b505af1158015612267573d6000803e3d6000fd5b50506020546026546023546040517f8c6f037f0000000000000000000000000000000000000000000000000000000081526001600160a01b039384169550638c6f037f94506122c29392831692889216908790600401616d1e565b600060405180830381600087803b1580156103a957600080fd5b6026546040516001600160a01b039091166024820152600090819060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae76000000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906123d39060040160208082526015908201527f496e73756666696369656e74455448416d6f756e740000000000000000000000604082015260600190565b600060405180830381600087803b1580156123ed57600080fd5b505af1158015612401573d6000803e3d6000fd5b50506020546026546040517f29c59b5d0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506329c59b5d935086926124559216908690600401616d68565b6000604051808303818588803b15801561246e57600080fd5b505af1158015612482573d6000803e3d6000fd5b50505050505050565b60606015805480602002602001604051908101604052809291908181526020018280548015610cdf576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610cc1575050505050905090565b6023546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260006024820181905292919091169063095ea7b3906044016020604051808303816000875af115801561255e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125829190616cd4565b506040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e73756666696369656e744552433230416d6f756e740000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb390606401600060405180830381600087803b15801561261657600080fd5b505af115801561262a573d6000803e3d6000fd5b50506020546026546023546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810187905290821660448201529116925063f45346dc9150606401611e75565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b1580156126f857600080fd5b505afa1580156103bd573d6000803e3d6000fd5b60006127166167c5565b61272184848361272b565b9150505b92915050565b60008061273885846127a6565b905061279b6040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f78790000008152508286604051602001612786929190616d68565b604051602081830303815290604052856127b2565b9150505b9392505050565b600061279f83836127e0565b60c081015151600090156127d6576127cf84848460c001516127fb565b905061279f565b6127cf84846129a1565b60006127ec8383612a8c565b61279f838360200151846127b2565b600080612806612a9c565b905060006128148683612b6f565b9050600061282b8260600151836020015185613015565b9050600061283b83838989613227565b90506000612848826140a4565b602081015181519192509060030b156128bb57898260400151604051602001612872929190616d9d565b60408051601f19818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526128b291600401616d8a565b60405180910390fd5b60006128fe6040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001614273565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d90612951908490600401616d8a565b602060405180830381865afa15801561296e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129929190616e1e565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc925906129f6908790600401616d8a565b600060405180830381865afa158015612a13573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a3b9190810190616f2f565b90506000612a698285604051602001612a55929190616f64565b604051602081830303815290604052614473565b90506001600160a01b038116612721578484604051602001612872929190616f93565b612a9882826000614486565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c90612b2390849060040161703e565b600060405180830381865afa158015612b40573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b689190810190617085565b9250505090565b612ba16040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d9050612bec6040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b612bf585614589565b60208201526000612c058661496e565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015612c47573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c6f9190810190617085565b86838560200151604051602001612c8994939291906170ce565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190612ce1908590600401616d8a565b600060405180830381865afa158015612cfe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d269190810190617085565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f690612d6e9084906004016171d2565b602060405180830381865afa158015612d8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612daf9190616cd4565b612dc457816040516020016128729190617224565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890612e099084906004016172b6565b600060405180830381865afa158015612e26573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e4e9190810190617085565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f690612e95908490600401617308565b602060405180830381865afa158015612eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed69190616cd4565b15612f6b576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890612f20908490600401617308565b600060405180830381865afa158015612f3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f659190810190617085565b60408501525b846001600160a01b03166349c4fac8828660000151604051602001612f90919061735a565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401612fbc9291906173c6565b600060405180830381865afa158015612fd9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130019190810190617085565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816130315790505090506040518060400160405280600481526020017f677265700000000000000000000000000000000000000000000000000000000081525081600081518110613091576130916173eb565b60200260200101819052506040518060400160405280600381526020017f2d726c0000000000000000000000000000000000000000000000000000000000815250816001815181106130e5576130e56173eb565b602002602001018190525084604051602001613101919061741a565b60405160208183030381529060405281600281518110613123576131236173eb565b60200260200101819052508260405160200161313f9190617486565b60405160208183030381529060405281600381518110613161576131616173eb565b60200260200101819052506000613177826140a4565b602080820151604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000081850190815282518084018452600080825290860152825180840190935290518252928101929092529192506132089060408051808201825260008082526020918201528151808301909252845182528085019082015290614bf1565b61321d578560405160200161287291906174c7565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9015613277565b511590565b6133eb57826020015115613333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a4016128b2565b8260c00151156133eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a4016128b2565b6040805160ff8082526120008201909252600091816020015b606081526020019060019003908161340457905050905060006040518060400160405280600381526020017f6e7078000000000000000000000000000000000000000000000000000000000081525082828061345f90617558565b935060ff1681518110613474576134746173eb565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e37000000000000000000000000000000000000008152506040516020016134c59190617577565b6040516020818303038152906040528282806134e090617558565b935060ff16815181106134f5576134f56173eb565b60200260200101819052506040518060400160405280600681526020017f6465706c6f79000000000000000000000000000000000000000000000000000081525082828061354290617558565b935060ff1681518110613557576135576173eb565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d650000000000000000000000000000000000008152508282806135a490617558565b935060ff16815181106135b9576135b96173eb565b602002602001018190525087602001518282806135d590617558565b935060ff16815181106135ea576135ea6173eb565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163745061746800000000000000000000000000000000000081525082828061363790617558565b935060ff168151811061364c5761364c6173eb565b60209081029190910101528751828261366481617558565b935060ff1681518110613679576136796173eb565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e496400000000000000000000000000000000000000000000008152508282806136c690617558565b935060ff16815181106136db576136db6173eb565b60200260200101819052506136ef46614c52565b82826136fa81617558565b935060ff168151811061370f5761370f6173eb565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c65000000000000000000000000000000000081525082828061375c90617558565b935060ff1681518110613771576137716173eb565b60200260200101819052508682828061378990617558565b935060ff168151811061379e5761379e6173eb565b60209081029190910101528551156138c55760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f64650000000000000000000000602082015282826137ef81617558565b935060ff1681518110613804576138046173eb565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d90613854908990600401616d8a565b600060405180830381865afa158015613871573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138999190810190617085565b82826138a481617558565b935060ff16815181106138b9576138b96173eb565b60200260200101819052505b8460200151156139955760408051808201909152601281527f2d2d766572696679536f75726365436f646500000000000000000000000000006020820152828261390e81617558565b935060ff1681518110613923576139236173eb565b60200260200101819052506040518060400160405280600581526020017f66616c736500000000000000000000000000000000000000000000000000000081525082828061397090617558565b935060ff1681518110613985576139856173eb565b6020026020010181905250613b5c565b6139cd6132728660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b613a605760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282613a1081617558565b935060ff1681518110613a2557613a256173eb565b60200260200101819052508460a00151604051602001613a45919061741a565b60405160208183030381529060405282828061397090617558565b8460c00151158015613aa3575060408089015181518083018352600080825260209182015282518084019093528151835290810190820152613aa190511590565b155b15613b5c5760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282613ae781617558565b935060ff1681518110613afc57613afc6173eb565b6020026020010181905250613b1088614cf2565b604051602001613b20919061741a565b604051602081830303815290604052828280613b3b90617558565b935060ff1681518110613b5057613b506173eb565b60200260200101819052505b60408086015181518083018352600080825260209182015282518084019093528151835290810190820152613b9090511590565b613c255760408051808201909152600b81527f2d2d72656c61796572496400000000000000000000000000000000000000000060208201528282613bd381617558565b935060ff1681518110613be857613be86173eb565b60200260200101819052508460400151828280613c0490617558565b935060ff1681518110613c1957613c196173eb565b60200260200101819052505b606085015115613d465760408051808201909152600681527f2d2d73616c74000000000000000000000000000000000000000000000000000060208201528282613c6e81617558565b935060ff1681518110613c8357613c836173eb565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015613cf2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613d1a9190810190617085565b8282613d2581617558565b935060ff1681518110613d3a57613d3a6173eb565b60200260200101819052505b60e08501515115613ded5760408051808201909152600a81527f2d2d6761734c696d69740000000000000000000000000000000000000000000060208201528282613d9081617558565b935060ff1681518110613da557613da56173eb565b6020026020010181905250613dc18560e0015160000151614c52565b8282613dcc81617558565b935060ff1681518110613de157613de16173eb565b60200260200101819052505b60e08501516020015115613e975760408051808201909152600a81527f2d2d67617350726963650000000000000000000000000000000000000000000060208201528282613e3a81617558565b935060ff1681518110613e4f57613e4f6173eb565b6020026020010181905250613e6b8560e0015160200151614c52565b8282613e7681617558565b935060ff1681518110613e8b57613e8b6173eb565b60200260200101819052505b60e08501516040015115613f415760408051808201909152600e81527f2d2d6d617846656550657247617300000000000000000000000000000000000060208201528282613ee481617558565b935060ff1681518110613ef957613ef96173eb565b6020026020010181905250613f158560e0015160400151614c52565b8282613f2081617558565b935060ff1681518110613f3557613f356173eb565b60200260200101819052505b60e08501516060015115613feb5760408051808201909152601681527f2d2d6d61785072696f726974794665655065724761730000000000000000000060208201528282613f8e81617558565b935060ff1681518110613fa357613fa36173eb565b6020026020010181905250613fbf8560e0015160600151614c52565b8282613fca81617558565b935060ff1681518110613fdf57613fdf6173eb565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561400957614009616e47565b60405190808252806020026020018201604052801561403c57816020015b60608152602001906001900390816140275790505b50905060005b8260ff168160ff16101561409557838160ff1681518110614065576140656173eb565b6020026020010151828260ff1681518110614082576140826173eb565b6020908102919091010152600101614042565b5093505050505b949350505050565b6140cb6040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c91614151918691016175e2565b600060405180830381865afa15801561416e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526141969190810190617085565b905060006141a486836157e1565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b81526004016141d49190616b1e565b6000604051808303816000875af11580156141f3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261421b9190810190617629565b805190915060030b158015906142345750602081015151155b80156142435750604081015151155b1561321d578160008151811061425b5761425b6173eb565b602002602001015160405160200161287291906176df565b606060006142a88560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925286518252808701908201529091506142df9082905b90615936565b1561443c57600061435c82614356846143506143228a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b9061595d565b906159bf565b604080518082018252600181527f0a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506143c0908290615936565b1561442a57604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614427905b8290615a44565b90505b61443381615a6a565b9250505061279f565b82156144555784846040516020016128729291906178cb565b505060408051602081019091526000815261279f565b509392505050565b6000808251602084016000f09392505050565b8160a001511561449557505050565b60006144a2848484615ad3565b905060006144af826140a4565b602081015181519192509060030b15801561454b5750604080518082018252600781527f53554343455353000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261454b906040805180820182526000808252602091820152815180830190925284518252808501908201526142d9565b1561455857505050505050565b604082015151156145785781604001516040516020016128729190617972565b8060405160200161287291906179d0565b606060006145be8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150614623905b8290614bf1565b1561469257604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261279f9061468d90839061606e565b615a6a565b604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526146f4905b82906160f8565b6001036147c157604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261475a90614420565b50604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261279f9061468d905b8390615a44565b604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526148209061461c565b1561495757604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290614888908390616192565b90506000816001835161489b9190616d55565b815181106148ab576148ab6173eb565b6020026020010151905061494e61468d6149216040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925285518252808601908201529061606e565b95945050505050565b826040516020016128729190617a3b565b50919050565b606060006149a38360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150614a059061461c565b15614a135761279f81615a6a565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614a72906146ed565b600103614adc57604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261279f9061468d906147ba565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614b3b9061461c565b1561495757604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290614ba3908390616192565b9050600181511115614bdf578060028251614bbe9190616d55565b81518110614bce57614bce6173eb565b602002602001015192505050919050565b50826040516020016128729190617a3b565b805182516000911115614c0657506000612725565b81518351602085015160009291614c1c91616c5b565b614c269190616d55565b905082602001518103614c3d576001915050612725565b82516020840151819020912014905092915050565b60606000614c5f83616237565b600101905060008167ffffffffffffffff811115614c7f57614c7f616e47565b6040519080825280601f01601f191660200182016040528015614ca9576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084614cb357509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091614d7e905b8290616319565b15614dbe57505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e7365000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614e1d90614d77565b15614e5d57505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d4954000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614ebc90614d77565b15614efc57505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c79000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614f5b90614d77565b80614fc05750604080518082018252601081527f47504c2d322e302d6f722d6c617465720000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614fc090614d77565b1561500057505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c7900000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261505f90614d77565b806150c45750604080518082018252601081527f47504c2d332e302d6f722d6c6174657200000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526150c490614d77565b1561510457505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261516390614d77565b806151c85750604080518082018252601181527f4c47504c2d322e312d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526151c890614d77565b1561520857505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261526790614d77565b806152cc5750604080518082018252601181527f4c47504c2d332e302d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526152cc90614d77565b1561530c57505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261536b90614d77565b156153ab57505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261540a90614d77565b1561544a57505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e3000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526154a990614d77565b156154e957505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261554890614d77565b1561558857505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e3000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526155e790614d77565b1561562757505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261568690614d77565b806156eb5750604080518082018252601181527f4147504c2d332e302d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526156eb90614d77565b1561572b57505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e310000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261578a90614d77565b156157ca57505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b604080840151845191516128729290602001617b19565b60608060005b845181101561586c5781858281518110615803576158036173eb565b602002602001015160405160200161581c929190616f64565b60405160208183030381529060405291506001855161583b9190616d55565b811461586457816040516020016158529190617c82565b60405160208183030381529060405291505b6001016157e7565b5060408051600380825260808201909252600091816020015b606081526020019060019003908161588557905050905083816000815181106158b0576158b06173eb565b60200260200101819052506040518060400160405280600281526020017f2d6300000000000000000000000000000000000000000000000000000000000081525081600181518110615904576159046173eb565b60200260200101819052508181600281518110615923576159236173eb565b6020908102919091010152949350505050565b6020808301518351835192840151600093615954929184919061632d565b14159392505050565b6040805180820190915260008082526020820152600061598f846000015185602001518560000151866020015161643e565b90508360200151816159a19190616d55565b845185906159b0908390616d55565b90525060208401525090919050565b60408051808201909152600080825260208201528151835110156159e4575081612725565b6020808301519084015160019114615a0b5750815160208481015190840151829020919020145b8015615a3c57825184518590615a22908390616d55565b9052508251602085018051615a38908390616c5b565b9052505b509192915050565b6040805180820190915260008082526020820152615a6383838361655e565b5092915050565b60606000826000015167ffffffffffffffff811115615a8b57615a8b616e47565b6040519080825280601f01601f191660200182016040528015615ab5576020820181803683370190505b5090506000602082019050615a638185602001518660000151616609565b60606000615adf612a9c565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081615afc57905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280615b5790617558565b935060ff1681518110615b6c57615b6c6173eb565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e3300000000000000000000000000000000000000000000000000815250604051602001615bbd9190617cc3565b604051602081830303815290604052828280615bd890617558565b935060ff1681518110615bed57615bed6173eb565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280615c3a90617558565b935060ff1681518110615c4f57615c4f6173eb565b602002602001018190525082604051602001615c6b9190617486565b604051602081830303815290604052828280615c8690617558565b935060ff1681518110615c9b57615c9b6173eb565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280615ce890617558565b935060ff1681518110615cfd57615cfd6173eb565b6020026020010181905250615d128784616683565b8282615d1d81617558565b935060ff1681518110615d3257615d326173eb565b602090810291909101015285515115615dde5760408051808201909152600b81527f2d2d7265666572656e636500000000000000000000000000000000000000000060208201528282615d8481617558565b935060ff1681518110615d9957615d996173eb565b6020026020010181905250615db2866000015184616683565b8282615dbd81617558565b935060ff1681518110615dd257615dd26173eb565b60200260200101819052505b856080015115615e4c5760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282615e2781617558565b935060ff1681518110615e3c57615e3c6173eb565b6020026020010181905250615eb2565b8415615eb25760408051808201909152601281527f2d2d726571756972655265666572656e6365000000000000000000000000000060208201528282615e9181617558565b935060ff1681518110615ea657615ea66173eb565b60200260200101819052505b60408601515115615f4e5760408051808201909152600d81527f2d2d756e73616665416c6c6f770000000000000000000000000000000000000060208201528282615efc81617558565b935060ff1681518110615f1157615f116173eb565b60200260200101819052508560400151828280615f2d90617558565b935060ff1681518110615f4257615f426173eb565b60200260200101819052505b856060015115615fb85760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d657300000000000000000000000060208201528282615f9781617558565b935060ff1681518110615fac57615fac6173eb565b60200260200101819052505b60008160ff1667ffffffffffffffff811115615fd657615fd6616e47565b60405190808252806020026020018201604052801561600957816020015b6060815260200190600190039081615ff45790505b50905060005b8260ff168160ff16101561606257838160ff1681518110616032576160326173eb565b6020026020010151828260ff168151811061604f5761604f6173eb565b602090810291909101015260010161600f565b50979650505050505050565b6040805180820190915260008082526020820152815183511015616093575081612725565b815183516020850151600092916160a991616c5b565b6160b39190616d55565b602084015190915060019082146160d4575082516020840151819020908220145b80156160ef578351855186906160eb908390616d55565b9052505b50929392505050565b600080826000015161611c856000015186602001518660000151876020015161643e565b6161269190616c5b565b90505b8351602085015161613a9190616c5b565b8111615a63578161614a81617d08565b92505082600001516161818560200151836161659190616d55565b86516161719190616d55565b838660000151876020015161643e565b61618b9190616c5b565b9050616129565b606060006161a084846160f8565b6161ab906001616c5b565b67ffffffffffffffff8111156161c3576161c3616e47565b6040519080825280602002602001820160405280156161f657816020015b60608152602001906001900390816161e15790505b50905060005b815181101561446b5761621261468d8686615a44565b828281518110616224576162246173eb565b60209081029190910101526001016161fc565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310616280577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106162ac576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106162ca57662386f26fc10000830492506010015b6305f5e10083106162e2576305f5e100830492506008015b61271083106162f657612710830492506004015b60648310616308576064830492506002015b600a83106127255760010192915050565b600061632583836166c3565b159392505050565b60008085841161643457602084116163e05760008415616378576001616354866020616d55565b61635f906008617d22565b61636a906002617e20565b6163749190616d55565b1990505b83518116856163878989616c5b565b6163919190616d55565b805190935082165b8181146163cb578784116163b3578794505050505061409c565b836163bd81617e2c565b945050828451169050616399565b6163d58785616c5b565b94505050505061409c565b8383206163ed8588616d55565b6163f79087616c5b565b91505b8582106164325784822080820361641f576164158684616c5b565b935050505061409c565b61642a600184616d55565b9250506163fa565b505b5092949350505050565b6000838186851161654957602085116164f8576000851561648a576001616466876020616d55565b616471906008617d22565b61647c906002617e20565b6164869190616d55565b1990505b8451811660008761649b8b8b616c5b565b6164a59190616d55565b855190915083165b8281146164ea578186106164d2576164c58b8b616c5b565b965050505050505061409c565b856164dc81617d08565b9650508386511690506164ad565b85965050505050505061409c565b508383206000905b61650a8689616d55565b821161654757858320808203616526578394505050505061409c565b616531600185616c5b565b935050818061653f90617d08565b925050616500565b505b6165538787616c5b565b979650505050505050565b60408051808201909152600080825260208201526000616590856000015186602001518660000151876020015161643e565b6020808701805191860191909152519091506165ac9082616d55565b8352845160208601516165bf9190616c5b565b81036165ce5760008552616600565b835183516165dc9190616c5b565b855186906165eb908390616d55565b90525083516165fa9082616c5b565b60208601525b50909392505050565b602081106166415781518352616620602084616c5b565b925061662d602083616c5b565b915061663a602082616d55565b9050616609565b6000198115616670576001616657836020616d55565b61666390610100617e20565b61666d9190616d55565b90505b9151835183169219169190911790915250565b606060006166918484612b6f565b80516020808301516040519394506166ab93909101617e43565b60405160208183030381529060405291505092915050565b81518151600091908111156166d6575081515b6020808501519084015160005b8381101561678f578251825180821461675f57600019602087101561673e57600184616710896020616d55565b61671a9190616c5b565b616725906008617d22565b616730906002617e20565b61673a9190616d55565b1990505b818116838216818103911461675c5797506127259650505050505050565b50505b61676a602086616c5b565b9450616777602085616c5b565b935050506020816167889190616c5b565b90506166e3565b508451865161321d9190617e9b565b610c9f80617ebc83390190565b610b4a80618b5b83390190565b610f9a806196a583390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161680861680d565b905290565b604051806101000160405280600015158152602001600015158152602001606081526020016000801916815260200160608152602001606081526020016000151581526020016168086040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b818110156168bf5783516001600160a01b0316835260209384019390920191600101616898565b509095945050505050565b60005b838110156168e55781810151838201526020016168cd565b50506000910152565b600081518084526169068160208601602086016168ca565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015616a16577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b818110156169fc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a85030183526169e68486516168ee565b60209586019590945092909201916001016169ac565b509197505050602094850194929092019150600101616942565b50929695505050505050565b600081518084526020840193506020830160005b82811015616a765781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101616a36565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015616a16577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752616aec60408801826168ee565b9050602082015191508681036020880152616b078183616a22565b965050506020938401939190910190600101616aa8565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015616a16577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452616b808583516168ee565b94506020938401939190910190600101616b46565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015616a16577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b0381511686526020810151905060406020870152616c166040870182616a22565b9550506020938401939190910190600101616bbd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561272557612725616c2c565b600181811c90821680616c8257607f821691505b602082108103614968577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215616ccd57600080fd5b5051919050565b600060208284031215616ce657600080fd5b8151801515811461279f57600080fd5b8381526001600160a01b038316602082015260606040820152600061494e60608301846168ee565b6001600160a01b03851681528360208201526001600160a01b038316604082015260806060820152600061321d60808301846168ee565b8181038181111561272557612725616c2c565b6001600160a01b038316815260406020820152600061409c60408301846168ee565b60208152600061279f60208301846168ee565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351616dd581601a8501602088016168ca565b7f3a20000000000000000000000000000000000000000000000000000000000000601a918401918201528351616e1281601c8401602088016168ca565b01601c01949350505050565b600060208284031215616e3057600080fd5b81516001600160a01b038116811461279f57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715616e9957616e99616e47565b60405290565b60008067ffffffffffffffff841115616eba57616eba616e47565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715616ee957616ee9616e47565b604052838152905080828401851015616f0157600080fd5b61446b8460208301856168ca565b600082601f830112616f2057600080fd5b61279f83835160208501616e9f565b600060208284031215616f4157600080fd5b815167ffffffffffffffff811115616f5857600080fd5b61272184828501616f0f565b60008351616f768184602088016168ca565b835190830190616f8a8183602088016168ca565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351616fcb81601a8501602088016168ca565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a9184019182015283516170088160338401602088016168ca565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f5554000000000000000000000000000000000000000000606082015260806020820152600061279f60808301846168ee565b60006020828403121561709757600080fd5b815167ffffffffffffffff8111156170ae57600080fd5b8201601f810184136170bf57600080fd5b61272184825160208401616e9f565b600085516170e0818460208a016168ca565b7f2f00000000000000000000000000000000000000000000000000000000000000908301908152855161711a816001840160208a016168ca565b7f2f000000000000000000000000000000000000000000000000000000000000006001929091019182015284516171588160028401602089016168ca565b6001818301019150507f2f000000000000000000000000000000000000000000000000000000000000006001820152835161719a8160028401602088016168ca565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b6040815260006171e560408301846168ee565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161725c81601f8501602087016168ca565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b6040815260006172c960408301846168ee565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b60408152600061731b60408301846168ee565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b270000000000000000000000008152600082516173928160148501602087016168ca565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b6040815260006173d960408301856168ee565b828103602084015261279b81856168ee565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f22000000000000000000000000000000000000000000000000000000000000008152600082516174528160018501602087016168ca565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b600082516174988184602087016168ca565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e74726163742000000000000000000000000000000000000000000060408201526000825161754b81604b8501602087016168ca565b91909101604b0192915050565b600060ff821660ff810361756e5761756e616c2c565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c694000000000000000000000000000000000000000000000006020820152600082516175d58160298501602087016168ca565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f5041544800000000000000000000606082015260806020820152600061279f60808301846168ee565b60006020828403121561763b57600080fd5b815167ffffffffffffffff81111561765257600080fd5b82016060818503121561766457600080fd5b61766c616e76565b81518060030b811461767d57600080fd5b8152602082015167ffffffffffffffff81111561769957600080fd5b6176a586828501616f0f565b602083015250604082015167ffffffffffffffff8111156176c557600080fd5b6176d186828501616f0f565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f220000000000000000000000000000000000000000000000000000000000000060208201526000825161773d8160218501602087016168ca565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f27000000000000000000000000000000000000000000000000000000000000006020820152600083516179298160218501602088016168ca565b7f2720696e206f75747075743a2000000000000000000000000000000000000000602191840191820152835161796681602e8401602088016168ca565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a2000000000000000000000000000000000000000000000006020820152600082516175d58160298501602087016168ca565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a000000000000000000000000000000000000000000000000000000000000602082015260008251617a2e8160228501602087016168ca565b9190910160220192915050565b7f436f6e7472616374206e616d6520000000000000000000000000000000000000815260008251617a7381600e8501602087016168ca565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b7f53504458206c6963656e7365206964656e746966696572200000000000000000815260008351617b518160188501602088016168ca565b7f20696e20000000000000000000000000000000000000000000000000000000006018918401918201528351617b8e81601c8401602088016168ca565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b60008251617c948184602087016168ca565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f72654000000000815260008251617cfb81601c8501602087016168ca565b91909101601c0192915050565b60006000198203617d1b57617d1b616c2c565b5060010190565b808202811582820484141761272557612725616c2c565b6001815b6001841115617d7457808504811115617d5857617d58616c2c565b6001841615617d6657908102905b60019390931c928002617d3d565b935093915050565b600082617d8b57506001612725565b81617d9857506000612725565b8160018114617dae5760028114617db857617dd4565b6001915050612725565b60ff841115617dc957617dc9616c2c565b50506001821b612725565b5060208310610133831016604e8410600b8410161715617df7575081810a612725565b617e046000198484617d39565b8060001904821115617e1857617e18616c2c565b029392505050565b600061279f8383617d7c565b600081617e3b57617e3b616c2c565b506000190190565b60008351617e558184602088016168ca565b7f3a000000000000000000000000000000000000000000000000000000000000009083019081528351617e8f8160018401602088016168ca565b01600101949350505050565b8181036000831280158383131683831282161715615a6357615a63616c2c56fe608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b50604051610b4a380380610b4a83398101604081905261002f916100bc565b60016000556001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ef565b80516001600160a01b03811681146100b757600080fd5b919050565b600080604083850312156100cf57600080fd5b6100d8836100a0565b91506100e6602084016100a0565b90509250929050565b610a4c806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80635b112591116100505780635b112591146100ca578063c8a02362146100ea578063d9caed12146100fd57600080fd5b8063116191b61461006c57806321fc65f2146100b5575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100c86100c3366004610822565b610110565b005b60025461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100c86100f8366004610822565b61029a565b6100c861010b3660046108bf565b61040b565b6101186104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610169576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546101909073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906101ee9088908890889088908890600401610945565b600060405180830381600087803b15801561020857600080fd5b505af115801561021c573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610281939291906109a2565b60405180910390a36102936001600055565b5050505050565b6102a26104fb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102f3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015461031a9073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906103789088908890889088908890600401610945565b600060405180830381600087803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8858585604051610281939291906109a2565b6104136104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61048573ffffffffffffffffffffffffffffffffffffffff8416838361053e565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104e491815260200190565b60405180910390a36104f66001600055565b505050565b600260005403610537576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f6918591906000906105d790841683610650565b905080516000141580156105fc5750808060200190518101906105fa91906109c5565b155b156104f6576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b606061065e83836000610665565b9392505050565b6060814710156106a3576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610647565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516106cc91906109e7565b60006040518083038185875af1925050503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b509150915061071e868383610728565b9695505050505050565b60608261073d57610738826107b7565b61065e565b8151158015610761575073ffffffffffffffffffffffffffffffffffffffff84163b155b156107b0576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610647565b508061065e565b8051156107c75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461081d57600080fd5b919050565b60008060008060006080868803121561083a57600080fd5b610843866107f9565b9450610851602087016107f9565b935060408601359250606086013567ffffffffffffffff81111561087457600080fd5b8601601f8101881361088557600080fd5b803567ffffffffffffffff81111561089c57600080fd5b8860208284010111156108ae57600080fd5b959894975092955050506020019190565b6000806000606084860312156108d457600080fd5b6108dd846107f9565b92506108eb602085016107f9565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006109976080830184866108fc565b979650505050505050565b8381526040602082015260006109bc6040830184866108fc565b95945050505050565b6000602082840312156109d757600080fd5b8151801515811461065e57600080fd5b6000825160005b81811015610a0857602081860181015185830152016109ee565b50600092019182525091905056fea264697066735822122041336b1568f49be1aa3dcd208e804b373772741e9b7e1726a8869e99fced60c764736f6c634300081a003360c060405260001960025534801561001657600080fd5b50604051610f9a380380610f9a833981016040819052610035916100d8565b60016000558282826001600160a01b038316158061005a57506001600160a01b038216155b8061006c57506001600160a01b038116155b1561008a5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0392831660805290821660a052600180546001600160a01b031916919092161790555061011b915050565b80516001600160a01b03811681146100d357600080fd5b919050565b6000806000606084860312156100ed57600080fd5b6100f6846100bc565b9250610104602085016100bc565b9150610112604085016100bc565b90509250925092565b60805160a051610e0061019a6000396000818161012601528181610216015281816103580152818161041e01528181610541015281816106630152818161077c015281816108be015281816109840152610af101526000818160d501528181610322015281816103ef0152818161088801526109550152610e006000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80635b112591116100765780636f8b44b01161005b5780636f8b44b01461017b578063743e0c9b1461018e578063d5abeb01146101a157600080fd5b80635b112591146101485780635e3e9fef1461016857600080fd5b806302d5c899146100a8578063106e6290146100bd578063116191b6146100d057806321e093b114610121575b600080fd5b6100bb6100b6366004610bca565b6101b8565b005b6100bb6100cb366004610c5c565b6104e3565b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b6001546100f79073ffffffffffffffffffffffffffffffffffffffff1681565b6100bb610176366004610bca565b61071e565b6100bb610189366004610c8f565b610a30565b6100bb61019c366004610c8f565b610abc565b6101aa60025481565b604051908152602001610118565b6101c0610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610211576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a39190610ca8565b6102ad9086610cc1565b11156102e5576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561039c57600080fd5b505af11580156103b0573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd4915061044e907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b15801561046857600080fd5b505af115801561047c573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8585856040516104ca93929190610da7565b60405180910390a26104dc6001600055565b5050505050565b6104eb610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff16331461053c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce9190610ca8565b6105d89084610cc1565b1115610610576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161070791815260200190565b60405180910390a26107196001600055565b505050565b610726610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610777576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190610ca8565b6108139086610cc1565b111561084b576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090257600080fd5b505af1158015610916573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab5991506109b4907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b1580156109ce57600080fd5b505af11580156109e2573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8585856040516104ca93929190610da7565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a81576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a150565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610b4a57600080fd5b505af11580156104dc573d6000803e3d6000fd5b600260005403610b9a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bc557600080fd5b919050565b600080600080600060808688031215610be257600080fd5b610beb86610ba1565b945060208601359350604086013567ffffffffffffffff811115610c0e57600080fd5b8601601f81018813610c1f57600080fd5b803567ffffffffffffffff811115610c3657600080fd5b886020828401011115610c4857600080fd5b959894975060200195606001359392505050565b600080600060608486031215610c7157600080fd5b610c7a84610ba1565b95602085013595506040909401359392505050565b600060208284031215610ca157600080fd5b5035919050565b600060208284031215610cba57600080fd5b5051919050565b80820180821115610cfb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610d9c608083018486610d01565b979650505050505050565b838152604060208201526000610dc1604083018486610d01565b9594505050505056fea2646970667358221220eef04aea35a49145971cb42500074f7c44d89db08a5df2b7d071494c05cc1a2a64736f6c634300081a0033a2646970667358221220ad698860648ef94fdea10e636864a1b938e2e94a1b9b7faa26313a8246d5453e64736f6c634300081a0033", +} + +// GatewayEVMInboundTestABI is the input ABI used to generate the binding from. +// Deprecated: Use GatewayEVMInboundTestMetaData.ABI instead. +var GatewayEVMInboundTestABI = GatewayEVMInboundTestMetaData.ABI + +// GatewayEVMInboundTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use GatewayEVMInboundTestMetaData.Bin instead. +var GatewayEVMInboundTestBin = GatewayEVMInboundTestMetaData.Bin + +// DeployGatewayEVMInboundTest deploys a new Ethereum contract, binding an instance of GatewayEVMInboundTest to it. +func DeployGatewayEVMInboundTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GatewayEVMInboundTest, error) { + parsed, err := GatewayEVMInboundTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(GatewayEVMInboundTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &GatewayEVMInboundTest{GatewayEVMInboundTestCaller: GatewayEVMInboundTestCaller{contract: contract}, GatewayEVMInboundTestTransactor: GatewayEVMInboundTestTransactor{contract: contract}, GatewayEVMInboundTestFilterer: GatewayEVMInboundTestFilterer{contract: contract}}, nil +} + +// GatewayEVMInboundTest is an auto generated Go binding around an Ethereum contract. +type GatewayEVMInboundTest struct { + GatewayEVMInboundTestCaller // Read-only binding to the contract + GatewayEVMInboundTestTransactor // Write-only binding to the contract + GatewayEVMInboundTestFilterer // Log filterer for contract events +} + +// GatewayEVMInboundTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type GatewayEVMInboundTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMInboundTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type GatewayEVMInboundTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMInboundTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type GatewayEVMInboundTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMInboundTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type GatewayEVMInboundTestSession struct { + Contract *GatewayEVMInboundTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMInboundTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type GatewayEVMInboundTestCallerSession struct { + Contract *GatewayEVMInboundTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// GatewayEVMInboundTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type GatewayEVMInboundTestTransactorSession struct { + Contract *GatewayEVMInboundTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMInboundTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type GatewayEVMInboundTestRaw struct { + Contract *GatewayEVMInboundTest // Generic contract binding to access the raw methods on +} + +// GatewayEVMInboundTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type GatewayEVMInboundTestCallerRaw struct { + Contract *GatewayEVMInboundTestCaller // Generic read-only contract binding to access the raw methods on +} + +// GatewayEVMInboundTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type GatewayEVMInboundTestTransactorRaw struct { + Contract *GatewayEVMInboundTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewGatewayEVMInboundTest creates a new instance of GatewayEVMInboundTest, bound to a specific deployed contract. +func NewGatewayEVMInboundTest(address common.Address, backend bind.ContractBackend) (*GatewayEVMInboundTest, error) { + contract, err := bindGatewayEVMInboundTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &GatewayEVMInboundTest{GatewayEVMInboundTestCaller: GatewayEVMInboundTestCaller{contract: contract}, GatewayEVMInboundTestTransactor: GatewayEVMInboundTestTransactor{contract: contract}, GatewayEVMInboundTestFilterer: GatewayEVMInboundTestFilterer{contract: contract}}, nil +} + +// NewGatewayEVMInboundTestCaller creates a new read-only instance of GatewayEVMInboundTest, bound to a specific deployed contract. +func NewGatewayEVMInboundTestCaller(address common.Address, caller bind.ContractCaller) (*GatewayEVMInboundTestCaller, error) { + contract, err := bindGatewayEVMInboundTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestCaller{contract: contract}, nil +} + +// NewGatewayEVMInboundTestTransactor creates a new write-only instance of GatewayEVMInboundTest, bound to a specific deployed contract. +func NewGatewayEVMInboundTestTransactor(address common.Address, transactor bind.ContractTransactor) (*GatewayEVMInboundTestTransactor, error) { + contract, err := bindGatewayEVMInboundTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestTransactor{contract: contract}, nil +} + +// NewGatewayEVMInboundTestFilterer creates a new log filterer instance of GatewayEVMInboundTest, bound to a specific deployed contract. +func NewGatewayEVMInboundTestFilterer(address common.Address, filterer bind.ContractFilterer) (*GatewayEVMInboundTestFilterer, error) { + contract, err := bindGatewayEVMInboundTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestFilterer{contract: contract}, nil +} + +// bindGatewayEVMInboundTest binds a generic wrapper to an already deployed contract. +func bindGatewayEVMInboundTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := GatewayEVMInboundTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMInboundTest *GatewayEVMInboundTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMInboundTest.Contract.GatewayEVMInboundTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMInboundTest *GatewayEVMInboundTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.GatewayEVMInboundTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMInboundTest *GatewayEVMInboundTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.GatewayEVMInboundTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMInboundTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.contract.Transact(opts, method, params...) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) ISTEST(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "IS_TEST") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) ISTEST() (bool, error) { + return _GatewayEVMInboundTest.Contract.ISTEST(&_GatewayEVMInboundTest.CallOpts) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) ISTEST() (bool, error) { + return _GatewayEVMInboundTest.Contract.ISTEST(&_GatewayEVMInboundTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) ExcludeArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "excludeArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) ExcludeArtifacts() ([]string, error) { + return _GatewayEVMInboundTest.Contract.ExcludeArtifacts(&_GatewayEVMInboundTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) ExcludeArtifacts() ([]string, error) { + return _GatewayEVMInboundTest.Contract.ExcludeArtifacts(&_GatewayEVMInboundTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) ExcludeContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "excludeContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayEVMInboundTest.Contract.ExcludeContracts(&_GatewayEVMInboundTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayEVMInboundTest.Contract.ExcludeContracts(&_GatewayEVMInboundTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) ExcludeSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "excludeSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMInboundTest.Contract.ExcludeSelectors(&_GatewayEVMInboundTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMInboundTest.Contract.ExcludeSelectors(&_GatewayEVMInboundTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) ExcludeSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "excludeSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayEVMInboundTest.Contract.ExcludeSenders(&_GatewayEVMInboundTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayEVMInboundTest.Contract.ExcludeSenders(&_GatewayEVMInboundTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) Failed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "failed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) Failed() (bool, error) { + return _GatewayEVMInboundTest.Contract.Failed(&_GatewayEVMInboundTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) Failed() (bool, error) { + return _GatewayEVMInboundTest.Contract.Failed(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) TargetArtifactSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzArtifactSelector, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "targetArtifactSelectors") + + if err != nil { + return *new([]StdInvariantFuzzArtifactSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzArtifactSelector)).(*[]StdInvariantFuzzArtifactSelector) + + return out0, err + +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayEVMInboundTest.Contract.TargetArtifactSelectors(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayEVMInboundTest.Contract.TargetArtifactSelectors(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) TargetArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "targetArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TargetArtifacts() ([]string, error) { + return _GatewayEVMInboundTest.Contract.TargetArtifacts(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) TargetArtifacts() ([]string, error) { + return _GatewayEVMInboundTest.Contract.TargetArtifacts(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) TargetContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "targetContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TargetContracts() ([]common.Address, error) { + return _GatewayEVMInboundTest.Contract.TargetContracts(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) TargetContracts() ([]common.Address, error) { + return _GatewayEVMInboundTest.Contract.TargetContracts(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) TargetInterfaces(opts *bind.CallOpts) ([]StdInvariantFuzzInterface, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "targetInterfaces") + + if err != nil { + return *new([]StdInvariantFuzzInterface), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzInterface)).(*[]StdInvariantFuzzInterface) + + return out0, err + +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayEVMInboundTest.Contract.TargetInterfaces(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayEVMInboundTest.Contract.TargetInterfaces(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) TargetSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "targetSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMInboundTest.Contract.TargetSelectors(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMInboundTest.Contract.TargetSelectors(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCaller) TargetSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMInboundTest.contract.Call(opts, &out, "targetSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TargetSenders() ([]common.Address, error) { + return _GatewayEVMInboundTest.Contract.TargetSenders(&_GatewayEVMInboundTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestCallerSession) TargetSenders() ([]common.Address, error) { + return _GatewayEVMInboundTest.Contract.TargetSenders(&_GatewayEVMInboundTest.CallOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactor) SetUp(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.contract.Transact(opts, "setUp") +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) SetUp() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.SetUp(&_GatewayEVMInboundTest.TransactOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorSession) SetUp() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.SetUp(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestCallWithPayload is a paid mutator transaction binding the contract method 0xaa030c1c. +// +// Solidity: function testCallWithPayload() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactor) TestCallWithPayload(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.contract.Transact(opts, "testCallWithPayload") +} + +// TestCallWithPayload is a paid mutator transaction binding the contract method 0xaa030c1c. +// +// Solidity: function testCallWithPayload() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TestCallWithPayload() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestCallWithPayload(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestCallWithPayload is a paid mutator transaction binding the contract method 0xaa030c1c. +// +// Solidity: function testCallWithPayload() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorSession) TestCallWithPayload() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestCallWithPayload(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestDepositERC20ToCustody is a paid mutator transaction binding the contract method 0x6459542a. +// +// Solidity: function testDepositERC20ToCustody() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactor) TestDepositERC20ToCustody(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.contract.Transact(opts, "testDepositERC20ToCustody") +} + +// TestDepositERC20ToCustody is a paid mutator transaction binding the contract method 0x6459542a. +// +// Solidity: function testDepositERC20ToCustody() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TestDepositERC20ToCustody() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestDepositERC20ToCustody(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestDepositERC20ToCustody is a paid mutator transaction binding the contract method 0x6459542a. +// +// Solidity: function testDepositERC20ToCustody() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorSession) TestDepositERC20ToCustody() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestDepositERC20ToCustody(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestDepositERC20ToCustodyWithPayload is a paid mutator transaction binding the contract method 0x30f7c04f. +// +// Solidity: function testDepositERC20ToCustodyWithPayload() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactor) TestDepositERC20ToCustodyWithPayload(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.contract.Transact(opts, "testDepositERC20ToCustodyWithPayload") +} + +// TestDepositERC20ToCustodyWithPayload is a paid mutator transaction binding the contract method 0x30f7c04f. +// +// Solidity: function testDepositERC20ToCustodyWithPayload() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TestDepositERC20ToCustodyWithPayload() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestDepositERC20ToCustodyWithPayload(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestDepositERC20ToCustodyWithPayload is a paid mutator transaction binding the contract method 0x30f7c04f. +// +// Solidity: function testDepositERC20ToCustodyWithPayload() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorSession) TestDepositERC20ToCustodyWithPayload() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestDepositERC20ToCustodyWithPayload(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestDepositEthToTss is a paid mutator transaction binding the contract method 0x0724d8e3. +// +// Solidity: function testDepositEthToTss() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactor) TestDepositEthToTss(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.contract.Transact(opts, "testDepositEthToTss") +} + +// TestDepositEthToTss is a paid mutator transaction binding the contract method 0x0724d8e3. +// +// Solidity: function testDepositEthToTss() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TestDepositEthToTss() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestDepositEthToTss(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestDepositEthToTss is a paid mutator transaction binding the contract method 0x0724d8e3. +// +// Solidity: function testDepositEthToTss() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorSession) TestDepositEthToTss() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestDepositEthToTss(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestDepositEthToTssWithPayload is a paid mutator transaction binding the contract method 0x9fd1e597. +// +// Solidity: function testDepositEthToTssWithPayload() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactor) TestDepositEthToTssWithPayload(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.contract.Transact(opts, "testDepositEthToTssWithPayload") +} + +// TestDepositEthToTssWithPayload is a paid mutator transaction binding the contract method 0x9fd1e597. +// +// Solidity: function testDepositEthToTssWithPayload() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TestDepositEthToTssWithPayload() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestDepositEthToTssWithPayload(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestDepositEthToTssWithPayload is a paid mutator transaction binding the contract method 0x9fd1e597. +// +// Solidity: function testDepositEthToTssWithPayload() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorSession) TestDepositEthToTssWithPayload() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestDepositEthToTssWithPayload(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestFailDepositERC20ToCustodyIfAmountIs0 is a paid mutator transaction binding the contract method 0xf96c02df. +// +// Solidity: function testFailDepositERC20ToCustodyIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactor) TestFailDepositERC20ToCustodyIfAmountIs0(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.contract.Transact(opts, "testFailDepositERC20ToCustodyIfAmountIs0") +} + +// TestFailDepositERC20ToCustodyIfAmountIs0 is a paid mutator transaction binding the contract method 0xf96c02df. +// +// Solidity: function testFailDepositERC20ToCustodyIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TestFailDepositERC20ToCustodyIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestFailDepositERC20ToCustodyIfAmountIs0(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestFailDepositERC20ToCustodyIfAmountIs0 is a paid mutator transaction binding the contract method 0xf96c02df. +// +// Solidity: function testFailDepositERC20ToCustodyIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorSession) TestFailDepositERC20ToCustodyIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestFailDepositERC20ToCustodyIfAmountIs0(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestFailDepositERC20ToCustodyWithPayloadIfAmountIs0 is a paid mutator transaction binding the contract method 0xbb93f11e. +// +// Solidity: function testFailDepositERC20ToCustodyWithPayloadIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactor) TestFailDepositERC20ToCustodyWithPayloadIfAmountIs0(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.contract.Transact(opts, "testFailDepositERC20ToCustodyWithPayloadIfAmountIs0") +} + +// TestFailDepositERC20ToCustodyWithPayloadIfAmountIs0 is a paid mutator transaction binding the contract method 0xbb93f11e. +// +// Solidity: function testFailDepositERC20ToCustodyWithPayloadIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TestFailDepositERC20ToCustodyWithPayloadIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestFailDepositERC20ToCustodyWithPayloadIfAmountIs0(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestFailDepositERC20ToCustodyWithPayloadIfAmountIs0 is a paid mutator transaction binding the contract method 0xbb93f11e. +// +// Solidity: function testFailDepositERC20ToCustodyWithPayloadIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorSession) TestFailDepositERC20ToCustodyWithPayloadIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestFailDepositERC20ToCustodyWithPayloadIfAmountIs0(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestFailDepositEthToTssIfAmountIs0 is a paid mutator transaction binding the contract method 0x06978ca3. +// +// Solidity: function testFailDepositEthToTssIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactor) TestFailDepositEthToTssIfAmountIs0(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.contract.Transact(opts, "testFailDepositEthToTssIfAmountIs0") +} + +// TestFailDepositEthToTssIfAmountIs0 is a paid mutator transaction binding the contract method 0x06978ca3. +// +// Solidity: function testFailDepositEthToTssIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TestFailDepositEthToTssIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestFailDepositEthToTssIfAmountIs0(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestFailDepositEthToTssIfAmountIs0 is a paid mutator transaction binding the contract method 0x06978ca3. +// +// Solidity: function testFailDepositEthToTssIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorSession) TestFailDepositEthToTssIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestFailDepositEthToTssIfAmountIs0(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestFailDepositEthToTssWithPayloadIfAmountIs0 is a paid mutator transaction binding the contract method 0xc13d738f. +// +// Solidity: function testFailDepositEthToTssWithPayloadIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactor) TestFailDepositEthToTssWithPayloadIfAmountIs0(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMInboundTest.contract.Transact(opts, "testFailDepositEthToTssWithPayloadIfAmountIs0") +} + +// TestFailDepositEthToTssWithPayloadIfAmountIs0 is a paid mutator transaction binding the contract method 0xc13d738f. +// +// Solidity: function testFailDepositEthToTssWithPayloadIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestSession) TestFailDepositEthToTssWithPayloadIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestFailDepositEthToTssWithPayloadIfAmountIs0(&_GatewayEVMInboundTest.TransactOpts) +} + +// TestFailDepositEthToTssWithPayloadIfAmountIs0 is a paid mutator transaction binding the contract method 0xc13d738f. +// +// Solidity: function testFailDepositEthToTssWithPayloadIfAmountIs0() returns() +func (_GatewayEVMInboundTest *GatewayEVMInboundTestTransactorSession) TestFailDepositEthToTssWithPayloadIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMInboundTest.Contract.TestFailDepositEthToTssWithPayloadIfAmountIs0(&_GatewayEVMInboundTest.TransactOpts) +} + +// GatewayEVMInboundTestCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestCallIterator struct { + Event *GatewayEVMInboundTestCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestCall represents a Call event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestCall struct { + Sender common.Address + Receiver common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMInboundTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestCallIterator{contract: _GatewayEVMInboundTest.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestCall, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestCall) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseCall(log types.Log) (*GatewayEVMInboundTestCall, error) { + event := new(GatewayEVMInboundTestCall) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestDepositIterator struct { + Event *GatewayEVMInboundTestDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestDeposit represents a Deposit event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestDeposit struct { + Sender common.Address + Receiver common.Address + Amount *big.Int + Asset common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterDeposit(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMInboundTestDepositIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestDepositIterator{contract: _GatewayEVMInboundTest.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestDeposit, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestDeposit) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseDeposit(log types.Log) (*GatewayEVMInboundTestDeposit, error) { + event := new(GatewayEVMInboundTestDeposit) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestExecutedIterator is returned from FilterExecuted and is used to iterate over the raw logs and unpacked data for Executed events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestExecutedIterator struct { + Event *GatewayEVMInboundTestExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestExecuted represents a Executed event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestExecuted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMInboundTestExecutedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestExecutedIterator{contract: _GatewayEVMInboundTest.contract, event: "Executed", logs: logs, sub: sub}, nil +} + +// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchExecuted(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestExecuted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestExecuted) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "Executed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseExecuted(log types.Log) (*GatewayEVMInboundTestExecuted, error) { + event := new(GatewayEVMInboundTestExecuted) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "Executed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestExecutedWithERC20Iterator is returned from FilterExecutedWithERC20 and is used to iterate over the raw logs and unpacked data for ExecutedWithERC20 events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestExecutedWithERC20Iterator struct { + Event *GatewayEVMInboundTestExecutedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestExecutedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestExecutedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestExecutedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestExecutedWithERC20 represents a ExecutedWithERC20 event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestExecutedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterExecutedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMInboundTestExecutedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestExecutedWithERC20Iterator{contract: _GatewayEVMInboundTest.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchExecutedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestExecutedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestExecutedWithERC20) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseExecutedWithERC20(log types.Log) (*GatewayEVMInboundTestExecutedWithERC20, error) { + event := new(GatewayEVMInboundTestExecutedWithERC20) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestReceivedERC20Iterator is returned from FilterReceivedERC20 and is used to iterate over the raw logs and unpacked data for ReceivedERC20 events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReceivedERC20Iterator struct { + Event *GatewayEVMInboundTestReceivedERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestReceivedERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestReceivedERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestReceivedERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestReceivedERC20 represents a ReceivedERC20 event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReceivedERC20 struct { + Sender common.Address + Amount *big.Int + Token common.Address + Destination common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedERC20 is a free log retrieval operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterReceivedERC20(opts *bind.FilterOpts) (*GatewayEVMInboundTestReceivedERC20Iterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestReceivedERC20Iterator{contract: _GatewayEVMInboundTest.contract, event: "ReceivedERC20", logs: logs, sub: sub}, nil +} + +// WatchReceivedERC20 is a free log subscription operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchReceivedERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestReceivedERC20) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestReceivedERC20) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedERC20 is a log parse operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseReceivedERC20(log types.Log) (*GatewayEVMInboundTestReceivedERC20, error) { + event := new(GatewayEVMInboundTestReceivedERC20) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestReceivedNoParamsIterator is returned from FilterReceivedNoParams and is used to iterate over the raw logs and unpacked data for ReceivedNoParams events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReceivedNoParamsIterator struct { + Event *GatewayEVMInboundTestReceivedNoParams // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestReceivedNoParamsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestReceivedNoParamsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestReceivedNoParamsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestReceivedNoParams represents a ReceivedNoParams event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReceivedNoParams struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNoParams is a free log retrieval operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterReceivedNoParams(opts *bind.FilterOpts) (*GatewayEVMInboundTestReceivedNoParamsIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestReceivedNoParamsIterator{contract: _GatewayEVMInboundTest.contract, event: "ReceivedNoParams", logs: logs, sub: sub}, nil +} + +// WatchReceivedNoParams is a free log subscription operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchReceivedNoParams(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestReceivedNoParams) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestReceivedNoParams) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNoParams is a log parse operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseReceivedNoParams(log types.Log) (*GatewayEVMInboundTestReceivedNoParams, error) { + event := new(GatewayEVMInboundTestReceivedNoParams) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestReceivedNonPayableIterator is returned from FilterReceivedNonPayable and is used to iterate over the raw logs and unpacked data for ReceivedNonPayable events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReceivedNonPayableIterator struct { + Event *GatewayEVMInboundTestReceivedNonPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestReceivedNonPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestReceivedNonPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestReceivedNonPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestReceivedNonPayable represents a ReceivedNonPayable event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReceivedNonPayable struct { + Sender common.Address + Strs []string + Nums []*big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNonPayable is a free log retrieval operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterReceivedNonPayable(opts *bind.FilterOpts) (*GatewayEVMInboundTestReceivedNonPayableIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestReceivedNonPayableIterator{contract: _GatewayEVMInboundTest.contract, event: "ReceivedNonPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedNonPayable is a free log subscription operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchReceivedNonPayable(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestReceivedNonPayable) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestReceivedNonPayable) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNonPayable is a log parse operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseReceivedNonPayable(log types.Log) (*GatewayEVMInboundTestReceivedNonPayable, error) { + event := new(GatewayEVMInboundTestReceivedNonPayable) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestReceivedPayableIterator is returned from FilterReceivedPayable and is used to iterate over the raw logs and unpacked data for ReceivedPayable events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReceivedPayableIterator struct { + Event *GatewayEVMInboundTestReceivedPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestReceivedPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestReceivedPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestReceivedPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestReceivedPayable represents a ReceivedPayable event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReceivedPayable struct { + Sender common.Address + Value *big.Int + Str string + Num *big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedPayable is a free log retrieval operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterReceivedPayable(opts *bind.FilterOpts) (*GatewayEVMInboundTestReceivedPayableIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestReceivedPayableIterator{contract: _GatewayEVMInboundTest.contract, event: "ReceivedPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedPayable is a free log subscription operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchReceivedPayable(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestReceivedPayable) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestReceivedPayable) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedPayable is a log parse operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseReceivedPayable(log types.Log) (*GatewayEVMInboundTestReceivedPayable, error) { + event := new(GatewayEVMInboundTestReceivedPayable) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestReceivedRevertIterator is returned from FilterReceivedRevert and is used to iterate over the raw logs and unpacked data for ReceivedRevert events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReceivedRevertIterator struct { + Event *GatewayEVMInboundTestReceivedRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestReceivedRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestReceivedRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestReceivedRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestReceivedRevert represents a ReceivedRevert event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReceivedRevert struct { + Sender common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedRevert is a free log retrieval operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterReceivedRevert(opts *bind.FilterOpts) (*GatewayEVMInboundTestReceivedRevertIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestReceivedRevertIterator{contract: _GatewayEVMInboundTest.contract, event: "ReceivedRevert", logs: logs, sub: sub}, nil +} + +// WatchReceivedRevert is a free log subscription operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchReceivedRevert(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestReceivedRevert) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestReceivedRevert) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedRevert is a log parse operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseReceivedRevert(log types.Log) (*GatewayEVMInboundTestReceivedRevert, error) { + event := new(GatewayEVMInboundTestReceivedRevert) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestRevertedIterator is returned from FilterReverted and is used to iterate over the raw logs and unpacked data for Reverted events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestRevertedIterator struct { + Event *GatewayEVMInboundTestReverted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestRevertedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestRevertedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestRevertedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestReverted represents a Reverted event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestReverted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMInboundTestRevertedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestRevertedIterator{contract: _GatewayEVMInboundTest.contract, event: "Reverted", logs: logs, sub: sub}, nil +} + +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchReverted(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestReverted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestReverted) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseReverted(log types.Log) (*GatewayEVMInboundTestReverted, error) { + event := new(GatewayEVMInboundTestReverted) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestRevertedWithERC20Iterator is returned from FilterRevertedWithERC20 and is used to iterate over the raw logs and unpacked data for RevertedWithERC20 events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestRevertedWithERC20Iterator struct { + Event *GatewayEVMInboundTestRevertedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestRevertedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestRevertedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestRevertedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestRevertedWithERC20 represents a RevertedWithERC20 event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestRevertedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterRevertedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMInboundTestRevertedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestRevertedWithERC20Iterator{contract: _GatewayEVMInboundTest.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchRevertedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestRevertedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestRevertedWithERC20) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseRevertedWithERC20(log types.Log) (*GatewayEVMInboundTestRevertedWithERC20, error) { + event := new(GatewayEVMInboundTestRevertedWithERC20) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogIterator is returned from FilterLog and is used to iterate over the raw logs and unpacked data for Log events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogIterator struct { + Event *GatewayEVMInboundTestLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLog represents a Log event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLog struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLog is a free log retrieval operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLog(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogIterator{contract: _GatewayEVMInboundTest.contract, event: "log", logs: logs, sub: sub}, nil +} + +// WatchLog is a free log subscription operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLog(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLog) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLog) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLog is a log parse operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLog(log types.Log) (*GatewayEVMInboundTestLog, error) { + event := new(GatewayEVMInboundTestLog) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogAddressIterator is returned from FilterLogAddress and is used to iterate over the raw logs and unpacked data for LogAddress events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogAddressIterator struct { + Event *GatewayEVMInboundTestLogAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogAddress represents a LogAddress event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogAddress struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAddress is a free log retrieval operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogAddress(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogAddressIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_address") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogAddressIterator{contract: _GatewayEVMInboundTest.contract, event: "log_address", logs: logs, sub: sub}, nil +} + +// WatchLogAddress is a free log subscription operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogAddress(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogAddress) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogAddress is a log parse operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogAddress(log types.Log) (*GatewayEVMInboundTestLogAddress, error) { + event := new(GatewayEVMInboundTestLogAddress) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogArrayIterator is returned from FilterLogArray and is used to iterate over the raw logs and unpacked data for LogArray events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogArrayIterator struct { + Event *GatewayEVMInboundTestLogArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogArray represents a LogArray event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogArray struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray is a free log retrieval operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogArray(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogArrayIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_array") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogArrayIterator{contract: _GatewayEVMInboundTest.contract, event: "log_array", logs: logs, sub: sub}, nil +} + +// WatchLogArray is a free log subscription operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogArray(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogArray) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogArray) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray is a log parse operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogArray(log types.Log) (*GatewayEVMInboundTestLogArray, error) { + event := new(GatewayEVMInboundTestLogArray) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogArray0Iterator is returned from FilterLogArray0 and is used to iterate over the raw logs and unpacked data for LogArray0 events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogArray0Iterator struct { + Event *GatewayEVMInboundTestLogArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogArray0 represents a LogArray0 event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogArray0 struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray0 is a free log retrieval operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogArray0(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogArray0Iterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogArray0Iterator{contract: _GatewayEVMInboundTest.contract, event: "log_array0", logs: logs, sub: sub}, nil +} + +// WatchLogArray0 is a free log subscription operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogArray0(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogArray0) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray0 is a log parse operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogArray0(log types.Log) (*GatewayEVMInboundTestLogArray0, error) { + event := new(GatewayEVMInboundTestLogArray0) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogArray1Iterator is returned from FilterLogArray1 and is used to iterate over the raw logs and unpacked data for LogArray1 events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogArray1Iterator struct { + Event *GatewayEVMInboundTestLogArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogArray1 represents a LogArray1 event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogArray1 struct { + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray1 is a free log retrieval operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogArray1(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogArray1Iterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogArray1Iterator{contract: _GatewayEVMInboundTest.contract, event: "log_array1", logs: logs, sub: sub}, nil +} + +// WatchLogArray1 is a free log subscription operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogArray1(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogArray1) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray1 is a log parse operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogArray1(log types.Log) (*GatewayEVMInboundTestLogArray1, error) { + event := new(GatewayEVMInboundTestLogArray1) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogBytesIterator is returned from FilterLogBytes and is used to iterate over the raw logs and unpacked data for LogBytes events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogBytesIterator struct { + Event *GatewayEVMInboundTestLogBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogBytes represents a LogBytes event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogBytes struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes is a free log retrieval operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogBytes(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogBytesIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogBytesIterator{contract: _GatewayEVMInboundTest.contract, event: "log_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogBytes is a free log subscription operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogBytes(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogBytes) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes is a log parse operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogBytes(log types.Log) (*GatewayEVMInboundTestLogBytes, error) { + event := new(GatewayEVMInboundTestLogBytes) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogBytes32Iterator is returned from FilterLogBytes32 and is used to iterate over the raw logs and unpacked data for LogBytes32 events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogBytes32Iterator struct { + Event *GatewayEVMInboundTestLogBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogBytes32 represents a LogBytes32 event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogBytes32 struct { + Arg0 [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes32 is a free log retrieval operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogBytes32(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogBytes32Iterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogBytes32Iterator{contract: _GatewayEVMInboundTest.contract, event: "log_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogBytes32 is a free log subscription operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogBytes32(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogBytes32) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes32 is a log parse operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogBytes32(log types.Log) (*GatewayEVMInboundTestLogBytes32, error) { + event := new(GatewayEVMInboundTestLogBytes32) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogIntIterator is returned from FilterLogInt and is used to iterate over the raw logs and unpacked data for LogInt events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogIntIterator struct { + Event *GatewayEVMInboundTestLogInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogInt represents a LogInt event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogInt struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogInt is a free log retrieval operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogInt(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogIntIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_int") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogIntIterator{contract: _GatewayEVMInboundTest.contract, event: "log_int", logs: logs, sub: sub}, nil +} + +// WatchLogInt is a free log subscription operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogInt) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogInt is a log parse operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogInt(log types.Log) (*GatewayEVMInboundTestLogInt, error) { + event := new(GatewayEVMInboundTestLogInt) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedAddressIterator is returned from FilterLogNamedAddress and is used to iterate over the raw logs and unpacked data for LogNamedAddress events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedAddressIterator struct { + Event *GatewayEVMInboundTestLogNamedAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedAddress represents a LogNamedAddress event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedAddress struct { + Key string + Val common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedAddress is a free log retrieval operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedAddress(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedAddressIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedAddressIterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_address", logs: logs, sub: sub}, nil +} + +// WatchLogNamedAddress is a free log subscription operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedAddress(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedAddress) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedAddress is a log parse operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedAddress(log types.Log) (*GatewayEVMInboundTestLogNamedAddress, error) { + event := new(GatewayEVMInboundTestLogNamedAddress) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedArrayIterator is returned from FilterLogNamedArray and is used to iterate over the raw logs and unpacked data for LogNamedArray events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedArrayIterator struct { + Event *GatewayEVMInboundTestLogNamedArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedArray represents a LogNamedArray event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedArray struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray is a free log retrieval operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedArray(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedArrayIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedArrayIterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_array", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray is a free log subscription operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedArray(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedArray) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedArray) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray is a log parse operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedArray(log types.Log) (*GatewayEVMInboundTestLogNamedArray, error) { + event := new(GatewayEVMInboundTestLogNamedArray) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedArray0Iterator is returned from FilterLogNamedArray0 and is used to iterate over the raw logs and unpacked data for LogNamedArray0 events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedArray0Iterator struct { + Event *GatewayEVMInboundTestLogNamedArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedArray0 represents a LogNamedArray0 event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedArray0 struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray0 is a free log retrieval operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedArray0(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedArray0Iterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedArray0Iterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_array0", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray0 is a free log subscription operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedArray0(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedArray0) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray0 is a log parse operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedArray0(log types.Log) (*GatewayEVMInboundTestLogNamedArray0, error) { + event := new(GatewayEVMInboundTestLogNamedArray0) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedArray1Iterator is returned from FilterLogNamedArray1 and is used to iterate over the raw logs and unpacked data for LogNamedArray1 events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedArray1Iterator struct { + Event *GatewayEVMInboundTestLogNamedArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedArray1 represents a LogNamedArray1 event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedArray1 struct { + Key string + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray1 is a free log retrieval operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedArray1(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedArray1Iterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedArray1Iterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_array1", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray1 is a free log subscription operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedArray1(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedArray1) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray1 is a log parse operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedArray1(log types.Log) (*GatewayEVMInboundTestLogNamedArray1, error) { + event := new(GatewayEVMInboundTestLogNamedArray1) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedBytesIterator is returned from FilterLogNamedBytes and is used to iterate over the raw logs and unpacked data for LogNamedBytes events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedBytesIterator struct { + Event *GatewayEVMInboundTestLogNamedBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedBytes represents a LogNamedBytes event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedBytes struct { + Key string + Val []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes is a free log retrieval operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedBytes(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedBytesIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedBytesIterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes is a free log subscription operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedBytes(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedBytes) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes is a log parse operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedBytes(log types.Log) (*GatewayEVMInboundTestLogNamedBytes, error) { + event := new(GatewayEVMInboundTestLogNamedBytes) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedBytes32Iterator is returned from FilterLogNamedBytes32 and is used to iterate over the raw logs and unpacked data for LogNamedBytes32 events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedBytes32Iterator struct { + Event *GatewayEVMInboundTestLogNamedBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedBytes32 represents a LogNamedBytes32 event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedBytes32 struct { + Key string + Val [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes32 is a free log retrieval operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedBytes32(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedBytes32Iterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedBytes32Iterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes32 is a free log subscription operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedBytes32(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedBytes32) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes32 is a log parse operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedBytes32(log types.Log) (*GatewayEVMInboundTestLogNamedBytes32, error) { + event := new(GatewayEVMInboundTestLogNamedBytes32) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedDecimalIntIterator is returned from FilterLogNamedDecimalInt and is used to iterate over the raw logs and unpacked data for LogNamedDecimalInt events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedDecimalIntIterator struct { + Event *GatewayEVMInboundTestLogNamedDecimalInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedDecimalIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedDecimalIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedDecimalIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedDecimalInt represents a LogNamedDecimalInt event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedDecimalInt struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalInt is a free log retrieval operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedDecimalInt(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedDecimalIntIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedDecimalIntIterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_decimal_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalInt is a free log subscription operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedDecimalInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedDecimalInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedDecimalInt) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalInt is a log parse operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedDecimalInt(log types.Log) (*GatewayEVMInboundTestLogNamedDecimalInt, error) { + event := new(GatewayEVMInboundTestLogNamedDecimalInt) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedDecimalUintIterator is returned from FilterLogNamedDecimalUint and is used to iterate over the raw logs and unpacked data for LogNamedDecimalUint events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedDecimalUintIterator struct { + Event *GatewayEVMInboundTestLogNamedDecimalUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedDecimalUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedDecimalUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedDecimalUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedDecimalUint represents a LogNamedDecimalUint event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedDecimalUint struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalUint is a free log retrieval operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedDecimalUint(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedDecimalUintIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedDecimalUintIterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_decimal_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalUint is a free log subscription operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedDecimalUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedDecimalUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedDecimalUint) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalUint is a log parse operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedDecimalUint(log types.Log) (*GatewayEVMInboundTestLogNamedDecimalUint, error) { + event := new(GatewayEVMInboundTestLogNamedDecimalUint) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedIntIterator is returned from FilterLogNamedInt and is used to iterate over the raw logs and unpacked data for LogNamedInt events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedIntIterator struct { + Event *GatewayEVMInboundTestLogNamedInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedInt represents a LogNamedInt event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedInt struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedInt is a free log retrieval operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedInt(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedIntIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedIntIterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedInt is a free log subscription operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedInt) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedInt is a log parse operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedInt(log types.Log) (*GatewayEVMInboundTestLogNamedInt, error) { + event := new(GatewayEVMInboundTestLogNamedInt) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedStringIterator is returned from FilterLogNamedString and is used to iterate over the raw logs and unpacked data for LogNamedString events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedStringIterator struct { + Event *GatewayEVMInboundTestLogNamedString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedString represents a LogNamedString event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedString struct { + Key string + Val string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedString is a free log retrieval operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedString(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedStringIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedStringIterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_string", logs: logs, sub: sub}, nil +} + +// WatchLogNamedString is a free log subscription operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedString(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedString) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedString) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedString is a log parse operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedString(log types.Log) (*GatewayEVMInboundTestLogNamedString, error) { + event := new(GatewayEVMInboundTestLogNamedString) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogNamedUintIterator is returned from FilterLogNamedUint and is used to iterate over the raw logs and unpacked data for LogNamedUint events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedUintIterator struct { + Event *GatewayEVMInboundTestLogNamedUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogNamedUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogNamedUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogNamedUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogNamedUint represents a LogNamedUint event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogNamedUint struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedUint is a free log retrieval operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogNamedUint(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogNamedUintIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogNamedUintIterator{contract: _GatewayEVMInboundTest.contract, event: "log_named_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedUint is a free log subscription operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogNamedUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogNamedUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogNamedUint) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedUint is a log parse operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogNamedUint(log types.Log) (*GatewayEVMInboundTestLogNamedUint, error) { + event := new(GatewayEVMInboundTestLogNamedUint) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogStringIterator is returned from FilterLogString and is used to iterate over the raw logs and unpacked data for LogString events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogStringIterator struct { + Event *GatewayEVMInboundTestLogString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogString represents a LogString event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogString struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogString is a free log retrieval operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogString(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogStringIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_string") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogStringIterator{contract: _GatewayEVMInboundTest.contract, event: "log_string", logs: logs, sub: sub}, nil +} + +// WatchLogString is a free log subscription operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogString(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogString) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogString) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogString is a log parse operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogString(log types.Log) (*GatewayEVMInboundTestLogString, error) { + event := new(GatewayEVMInboundTestLogString) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogUintIterator is returned from FilterLogUint and is used to iterate over the raw logs and unpacked data for LogUint events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogUintIterator struct { + Event *GatewayEVMInboundTestLogUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogUint represents a LogUint event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogUint struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogUint is a free log retrieval operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogUint(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogUintIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogUintIterator{contract: _GatewayEVMInboundTest.contract, event: "log_uint", logs: logs, sub: sub}, nil +} + +// WatchLogUint is a free log subscription operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogUint) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogUint is a log parse operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogUint(log types.Log) (*GatewayEVMInboundTestLogUint, error) { + event := new(GatewayEVMInboundTestLogUint) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMInboundTestLogsIterator is returned from FilterLogs and is used to iterate over the raw logs and unpacked data for Logs events raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogsIterator struct { + Event *GatewayEVMInboundTestLogs // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMInboundTestLogsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMInboundTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMInboundTestLogsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMInboundTestLogsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMInboundTestLogs represents a Logs event raised by the GatewayEVMInboundTest contract. +type GatewayEVMInboundTestLogs struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogs is a free log retrieval operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) FilterLogs(opts *bind.FilterOpts) (*GatewayEVMInboundTestLogsIterator, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.FilterLogs(opts, "logs") + if err != nil { + return nil, err + } + return &GatewayEVMInboundTestLogsIterator{contract: _GatewayEVMInboundTest.contract, event: "logs", logs: logs, sub: sub}, nil +} + +// WatchLogs is a free log subscription operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) WatchLogs(opts *bind.WatchOpts, sink chan<- *GatewayEVMInboundTestLogs) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMInboundTest.contract.WatchLogs(opts, "logs") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMInboundTestLogs) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "logs", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogs is a log parse operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMInboundTest *GatewayEVMInboundTestFilterer) ParseLogs(log types.Log) (*GatewayEVMInboundTestLogs, error) { + event := new(GatewayEVMInboundTestLogs) + if err := _GatewayEVMInboundTest.contract.UnpackLog(event, "logs", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/gatewayevm.t.sol/gatewayevmtest.go b/v2/pkg/gatewayevm.t.sol/gatewayevmtest.go new file mode 100644 index 00000000..3440119b --- /dev/null +++ b/v2/pkg/gatewayevm.t.sol/gatewayevmtest.go @@ -0,0 +1,6052 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package gatewayevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdInvariantFuzzArtifactSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzArtifactSelector struct { + Artifact string + Selectors [][4]byte +} + +// StdInvariantFuzzInterface is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzInterface struct { + Addr common.Address + Artifacts []string +} + +// StdInvariantFuzzSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzSelector struct { + Addr common.Address + Selectors [][4]byte +} + +// GatewayEVMTestMetaData contains all meta data concerning the GatewayEVMTest contract. +var GatewayEVMTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"IS_TEST\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"failed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setUp\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzArtifactSelector[]\",\"components\":[{\"name\":\"artifact\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetInterfaces\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzInterface[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"artifacts\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"testExecuteRevert\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testExecuteRevertFailsIfSenderIsNotTSS\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testExecuteWithERC20FailsIfNotCustoryOrConnector\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveERC20PartialThroughCustody\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveERC20ThroughCustody\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveNoParams\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveNoParamsThroughCustody\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveNonPayable\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceivePayable\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRevertWithERC20FailsIfNotCustoryOrConnector\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndRevertThroughCustody\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndRevertThroughCustodyFailsIfAmountIs0\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawThroughCustody\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawThroughCustodyFailsIfSenderIsNotTSS\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Executed\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedERC20\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNoParams\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNonPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strs\",\"type\":\"string[]\",\"indexed\":false,\"internalType\":\"string[]\"},{\"name\":\"nums\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"str\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedRevert\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Reverted\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RevertedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndCall\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndRevert\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_address\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes32\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_int\",\"inputs\":[{\"name\":\"\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_address\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes32\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_string\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_string\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_uint\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"logs\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061e40e8061003c6000396000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c80639620d7ed1161012a578063cebad2a6116100bd578063f68bd1c01161008c578063fa7626d411610071578063fa7626d41461035c578063fb176c1214610369578063fe7bdbb21461037157600080fd5b8063f68bd1c01461034c578063fa18c09b1461035457600080fd5b8063cebad2a61461032c578063d46e9b5714610334578063e20c9f711461033c578063eb1ce7f91461034457600080fd5b8063ba414fa6116100f9578063ba414fa6146102fc578063bcd9925e14610314578063c9350b7f1461031c578063cbd57e2f1461032457600080fd5b80639620d7ed146102dc578063a3f9d0e0146102e4578063b0464fdc146102ec578063b5508aa9146102f457600080fd5b806344671b94116101a2578063766d0ded11610171578063766d0ded146102a25780637d7f772a146102aa57806385226c81146102b2578063916a17c6146102c757600080fd5b806344671b941461027557806366d9a9a01461027d5780636a6218541461029257806371149c941461029a57600080fd5b80632ade3880116101de5780632ade3880146102485780633e5e3c231461025d5780633e73ecb4146102655780633f7286f41461026d57600080fd5b80630a9254e4146102105780631779672f1461021a5780631ed7831c146102225780632206eb6514610240575b600080fd5b610218610379565b005b610218610c16565b61022a610e3d565b6040516102379190619751565b60405180910390f35b610218610e9f565b610250611091565b60405161023791906197ed565b61022a6111d3565b610218611233565b61022a6117a9565b610218611809565b610285611ba1565b6040516102379190619953565b610218611d23565b610218611def565b6102186125fa565b6102186127a0565b6102ba612a81565b6040516102379190619a4d565b6102cf612b51565b6040516102379190619a60565b610218612c4c565b610218612db9565b6102cf6133c1565b6102ba6134bc565b61030461358c565b6040519015158152602001610237565b610218613660565b61021861380a565b6102186139fc565b610218613f87565b610218614159565b61022a614228565b610218614288565b6102186143ad565b610218614770565b601f546103049060ff1681565b610218614a96565b610218615114565b602680547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602780548216611234179055602880549091166156781790556040516103cb90619664565b60408082526004908201527f746573740000000000000000000000000000000000000000000000000000000060608201526080602082018190526003908201527f54544b000000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f080158015610450573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905560405161049590619664565b604080825260049082018190527f7a6574610000000000000000000000000000000000000000000000000000000060608301526080602083018190528201527f5a4554410000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f080158015610519573d6000803e3d6000fd5b50602580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155604080518082018252600e81527f4761746577617945564d2e736f6c0000000000000000000000000000000000006020820152602854915191909316602482015260448101919091526105ff919060640160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f485cc95500000000000000000000000000000000000000000000000000000000179052615557565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556028546040519192169061068390619671565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156106b6573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055602054602554602854604051928416939182169291169061070b9061967e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610747573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905560405161078c9061968b565b604051809103906000f0801580156107a8573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556028546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b15801561085457600080fd5b505af1158015610868573d6000803e3d6000fd5b50506028546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b1580156108de57600080fd5b505af11580156108f2573d6000803e3d6000fd5b50506020546022546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b15801561095857600080fd5b505af115801561096c573d6000803e3d6000fd5b50506020546023546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b1580156109d257600080fd5b505af11580156109e6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a4857600080fd5b505af1158015610a5c573d6000803e3d6000fd5b5050602480546026546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f4240938101939093521692506340c10f199150604401600060405180830381600087803b158015610acd57600080fd5b505af1158015610ae1573d6000803e3d6000fd5b5050602480546022546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526207a1209381019390935216925063a9059cbb91506044016020604051808303816000875af1158015610b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7b9190619af7565b506028546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b50505050565b6024805460275460405160009381018490526001600160a01b03928316604482015291166064820152819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a200000000000000000000000000000000000000000000000000000000179052602854905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015b600060405180830381600087803b158015610cf857600080fd5b505af1158015610d0c573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f951e19ed000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e091506024015b600060405180830381600087803b158015610d9657600080fd5b505af1158015610daa573d6000803e3d6000fd5b50506022546024546021546040517f21fc65f20000000000000000000000000000000000000000000000000000000081526001600160a01b0393841695506321fc65f29450610e0793928316929091169087908790600401619b19565b600060405180830381600087803b158015610e2157600080fd5b505af1158015610e35573d6000803e3d6000fd5b505050505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610e9557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e77575b5050505050905090565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a200000000000000000000000000000000000000000000000000000000179052602654905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015610f8357600080fd5b505af1158015610f97573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fddb5de5e000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561102057600080fd5b505af1158015611034573d6000803e3d6000fd5b50506020546024546027546040517fb8969bd40000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063b8969bd49450610e0793928316929091169087908790600401619b19565b6060601e805480602002602001604051908101604052809291908181526020016000905b828210156111ca57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156111b357838290600052602060002001805461112690619b50565b80601f016020809104026020016040519081016040528092919081815260200182805461115290619b50565b801561119f5780601f106111745761010080835404028352916020019161119f565b820191906000526020600020905b81548152906001019060200180831161118257829003601f168201915b505050505081526020019060010190611107565b5050505081525050815260200190600101906110b5565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610e95576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610e77575050505050905090565b602480546027546040516370a0823160e01b81526001600160a01b039182166004820152620186a09360009392909216916370a082319101602060405180830381865afa158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190619b9d565b90506112b9816000615576565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132d9190619b9d565b6027546040516001600160a01b0390911660248201526044810185905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391611410916001600160a01b0391909116906000908690600401619bb6565b600060405180830381600087803b15801561142a57600080fd5b505af115801561143e573d6000803e3d6000fd5b50506022546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156114b757600080fd5b505af11580156114cb573d6000803e3d6000fd5b50506027546024546040518881526001600160a01b039283169450911691507f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9060200160405180910390a360285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561157057600080fd5b505af1158015611584573d6000803e3d6000fd5b5050602254602480546027546040517fd9caed120000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082169281019290925260448201899052909116925063d9caed129150606401600060405180830381600087803b15801561160057600080fd5b505af1158015611614573d6000803e3d6000fd5b5050602480546027546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa158015611666573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168a9190619b9d565b90506116968186615576565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa1580156116e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170a9190619b9d565b905061171f8161171a8887619c0d565b615576565b602480546020546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa15801561176f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117939190619b9d565b90506117a0816000615576565b50505050505050565b60606017805480602002602001604051908101604052809291908181526020018280548015610e95576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610e77575050505050905090565b6040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6ed701690000000000000000000000000000000000000000000000000000000017905260215492517ff30c7ba30000000000000000000000000000000000000000000000000000000081529192737109709ecfa91a80626ff3989d68f67f5b1dd12d9263f30c7ba3926118bf926001600160a01b031691600091879101619bb6565b600060405180830381600087803b1580156118d957600080fd5b505af11580156118ed573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561196657600080fd5b505af115801561197a573d6000803e3d6000fd5b5050602080546040516001600160a01b0390911681527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0935001905060405180910390a16020546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015611a3357600080fd5b505af1158015611a47573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9150611a8d906000908590619c20565b60405180910390a260285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611aee57600080fd5b505af1158015611b02573d6000803e3d6000fd5b50506020546021546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd9350611b5692909116908590600401619c39565b6000604051808303816000875af1158015611b75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b9d9190810190619d43565b5050565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156111ca5783829060005260206000209060020201604051806040016040529081600082018054611bf890619b50565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2490619b50565b8015611c715780601f10611c4657610100808354040283529160200191611c71565b820191906000526020600020905b815481529060010190602001808311611c5457829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d0b57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611cb85790505b50505050508152505081526020019060010190611bc5565b6024805460275460405160009381018490526001600160a01b03928316604482015291166064820152819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc513169100000000000000000000000000000000000000000000000000000000179052602854905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401610cde565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152620186a09060009060250160408051808303601f1901815290829052602480546021546370a0823160e01b85526001600160a01b0390811660048601529294506000939216916370a082319101602060405180830381865afa158015611e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea69190619b9d565b9050611eb3816000615576565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f279190619b9d565b6020546040516001600160a01b0390911660248201526044810186905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba39161200a916001600160a01b0391909116906000908690600401619bb6565b600060405180830381600087803b15801561202457600080fd5b505af1158015612038573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156120b157600080fd5b505af11580156120c5573d6000803e3d6000fd5b50506020546040517f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa935061210892506001600160a01b03909116908790619c39565b60405180910390a16020546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561218557600080fd5b505af1158015612199573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7906121e49089908990619c20565b60405180910390a36022546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561226157600080fd5b505af1158015612275573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8906122c09089908990619c20565b60405180910390a360285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561232157600080fd5b505af1158015612335573d6000803e3d6000fd5b50506022546024546021546040517fc8a023620000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063c8a0236294506123929392831692909116908a908a90600401619b19565b600060405180830381600087803b1580156123ac57600080fd5b505af11580156123c0573d6000803e3d6000fd5b5050602480546021546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a0823191015b602060405180830381865afa158015612413573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124379190619b9d565b90506124438187615576565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015612493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b79190619b9d565b90506124c78161171a8987619c0d565b602480546020546021546040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082169381019390935260009291169063dd62ed3e90604401602060405180830381865afa15801561253d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125619190619b9d565b905061256e816000615576565b602480546020546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa1580156125be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e29190619b9d565b90506125ef816000615576565b505050505050505050565b60265460405163ca669fa760e01b81526001600160a01b039091166004820152620186a090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561265857600080fd5b505af115801561266c573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fddb5de5e000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b1580156126f557600080fd5b505af1158015612709573d6000803e3d6000fd5b5050602254602480546027546040517fd9caed120000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082169281019290925260448201869052909116925063d9caed129150606401600060405180830381600087803b15801561278557600080fd5b505af1158015612799573d6000803e3d6000fd5b5050505050565b604080516001808252818301909252600091816020015b60608152602001906001900390816127b75790505090506040518060400160405280600f81526020017f48656c6c6f2c20466f756e6472792100000000000000000000000000000000008152508160008151811061281757612817619d78565b6020908102919091010152604080516001808252818301909252600091816020016020820280368337019050509050602a8160008151811061285b5761285b619d78565b602090810291909101015260405160019060009061288190859085908590602401619dd9565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff05b6abf00000000000000000000000000000000000000000000000000000000179052602654905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561293457600080fd5b505af1158015612948573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fddb5de5e000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e091506024015b600060405180830381600087803b1580156129d257600080fd5b505af11580156129e6573d6000803e3d6000fd5b50506020546021546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd9350612a3a92909116908590600401619c39565b6000604051808303816000875af1158015612a59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127999190810190619d43565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156111ca578382906000526020600020018054612ac490619b50565b80601f0160208091040260200160405190810160405280929190818152602001828054612af090619b50565b8015612b3d5780601f10612b1257610100808354040283529160200191612b3d565b820191906000526020600020905b815481529060010190602001808311612b2057829003601f168201915b505050505081526020019060010190612aa5565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156111ca5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015612c3457602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411612be15790505b50505050508152505081526020019060010190612b75565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc513169100000000000000000000000000000000000000000000000000000000179052602654905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015b600060405180830381600087803b158015612d3157600080fd5b505af1158015612d45573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fddb5de5e000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401610d7c565b604080516004808252602480830184526020830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6ed7016900000000000000000000000000000000000000000000000000000000179052805460275494516370a0823160e01b81526001600160a01b0395861693810193909352620186a0946000939116916370a082319101602060405180830381865afa158015612e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e879190619b9d565b9050612e94816000615576565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015612ee4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f089190619b9d565b6020546040516001600160a01b0390911660248201526044810186905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391612feb916001600160a01b0391909116906000908690600401619bb6565b600060405180830381600087803b15801561300557600080fd5b505af1158015613019573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561309257600080fd5b505af11580156130a6573d6000803e3d6000fd5b5050602080546040516001600160a01b0390911681527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0935001905060405180910390a16022546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561315f57600080fd5b505af1158015613173573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e906131be9089908990619c20565b60405180910390a360285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561321f57600080fd5b505af1158015613233573d6000803e3d6000fd5b50506022546024546021546040517f21fc65f20000000000000000000000000000000000000000000000000000000081526001600160a01b0393841695506321fc65f294506132909392831692909116908a908a90600401619b19565b600060405180830381600087803b1580156132aa57600080fd5b505af11580156132be573d6000803e3d6000fd5b5050602480546027546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa158015613310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133349190619b9d565b9050613341816000615576565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015613391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b59190619b9d565b90506124c78185615576565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156111ca5760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156134a457602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116134515790505b505050505081525050815260200190600101906133e5565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156111ca5783829060005260206000200180546134ff90619b50565b80601f016020809104026020016040519081016040528092919081815260200182805461352b90619b50565b80156135785780601f1061354d57610100808354040283529160200191613578565b820191906000526020600020905b81548152906001019060200180831161355b57829003601f168201915b5050505050815260200190600101906134e0565b60085460009060ff16156135a4575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015613635573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136599190619b9d565b1415905090565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152620186a09060009060250160408051808303601f190181529082905260265463ca669fa760e01b83526001600160a01b031660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156136fb57600080fd5b505af115801561370f573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fddb5de5e000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e091506024015b600060405180830381600087803b15801561379957600080fd5b505af11580156137ad573d6000803e3d6000fd5b50506022546024546021546040517fc8a023620000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063c8a023629450610e0793928316929091169087908790600401619b19565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a200000000000000000000000000000000000000000000000000000000179052602654905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156138ee57600080fd5b505af1158015613902573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fddb5de5e000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561398b57600080fd5b505af115801561399f573d6000803e3d6000fd5b50506020546024546027546040517f5131ab590000000000000000000000000000000000000000000000000000000081526001600160a01b039384169550635131ab599450610e0793928316929091169087908790600401619b19565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a2000000000000000000000000000000000000000000000000000000001790526024805460275492516370a0823160e01b81526001600160a01b0393841660048201529394506000939216916370a082319101602060405180830381865afa158015613ad5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613af99190619b9d565b9050613b06816000615576565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015613b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b7a9190619b9d565b6020546040516001600160a01b0390911660248201526044810186905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391613c5d916001600160a01b0391909116906000908690600401619bb6565b600060405180830381600087803b158015613c7757600080fd5b505af1158015613c8b573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015613d0457600080fd5b505af1158015613d18573d6000803e3d6000fd5b505060208054602454602754604080516001600160a01b0394851681529485018c905291831684830152919091166060830152517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609350908190036080019150a16022546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015613dee57600080fd5b505af1158015613e02573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e90613e4d9089908990619c20565b60405180910390a360285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015613eae57600080fd5b505af1158015613ec2573d6000803e3d6000fd5b50506022546024546021546040517f21fc65f20000000000000000000000000000000000000000000000000000000081526001600160a01b0393841695506321fc65f29450613f1f9392831692909116908a908a90600401619b19565b600060405180830381600087803b158015613f3957600080fd5b505af1158015613f4d573d6000803e3d6000fd5b5050602480546027546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a0823191016123f6565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152670de0b6b3a76400009060009060250160408051808303601f190181529082905260265463ca669fa760e01b83526001600160a01b031660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561402757600080fd5b505af115801561403b573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fddb5de5e000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b1580156140c457600080fd5b505af11580156140d8573d6000803e3d6000fd5b50506020546021546040517f35c018db0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506335c018db9350869261412c9216908690600401619c39565b6000604051808303818588803b15801561414557600080fd5b505af11580156117a0573d6000803e3d6000fd5b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a200000000000000000000000000000000000000000000000000000000179052602654905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401612d17565b60606015805480602002602001604051908101604052809291908181526020018280548015610e95576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610e77575050505050905090565b6000806040516020016142be907f68656c6c6f000000000000000000000000000000000000000000000000000000815260050190565b60408051808303601f190181529082905260285463ca669fa760e01b83526001600160a01b031660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561432557600080fd5b505af1158015614339573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f951e19ed000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e0915060240161377f565b604080516001808252818301909252600091816020015b60608152602001906001900390816143c45790505090506040518060400160405280600f81526020017f48656c6c6f2c20466f756e6472792100000000000000000000000000000000008152508160008151811061442457614424619d78565b6020908102919091010152604080516001808252818301909252600091816020016020820280368337019050509050602a8160008151811061446857614468619d78565b602090810291909101015260405160019060009061448e90859085908590602401619dd9565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff05b6abf0000000000000000000000000000000000000000000000000000000017905260215490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba39161454b916001600160a01b0391909116906000908690600401619bb6565b600060405180830381600087803b15801561456557600080fd5b505af1158015614579573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156145f257600080fd5b505af1158015614606573d6000803e3d6000fd5b50506020546040517f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146935061464d92506001600160a01b0390911690879087908790619e11565b60405180910390a16020546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156146ca57600080fd5b505af11580156146de573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9150614724906000908590619c20565b60405180910390a260285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024016129b8565b604080517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152815160058183030181526025909101909152602154670de0b6b3a764000091906001600160a01b0316316147cf816000615576565b6021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561484457600080fd5b505af1158015614858573d6000803e3d6000fd5b50506020546040517f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa935061489b92506001600160a01b03909116908590619c39565b60405180910390a16020546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561491857600080fd5b505af115801561492c573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c915061497990670de0b6b3a7640000908690619c20565b60405180910390a260285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156149da57600080fd5b505af11580156149ee573d6000803e3d6000fd5b50506020546021546040517f35c018db0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506335c018db93508792614a429216908790600401619c39565b6000604051808303818588803b158015614a5b57600080fd5b505af1158015614a6f573d6000803e3d6000fd5b50506021546001600160a01b0316319250610c109150829050670de0b6b3a7640000615576565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc5131691000000000000000000000000000000000000000000000000000000001790526024805460275492516370a0823160e01b81526001600160a01b0393841660048201529394506000939216916370a082319101602060405180830381865afa158015614b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b939190619b9d565b9050614ba0816000615576565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015614bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c149190619b9d565b6020546040516001600160a01b0390911660248201526044810186905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391614cf7916001600160a01b0391909116906000908690600401619bb6565b600060405180830381600087803b158015614d1157600080fd5b505af1158015614d25573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015614d9e57600080fd5b505af1158015614db2573d6000803e3d6000fd5b50506020547f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af6092506001600160a01b03169050614df0600288619e59565b602454602754604080516001600160a01b03958616815260208101949094529184168383015292909216606082015290519081900360800190a16022546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015614e9f57600080fd5b505af1158015614eb3573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e90614efe9089908990619c20565b60405180910390a360285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015614f5f57600080fd5b505af1158015614f73573d6000803e3d6000fd5b50506022546024546021546040517f21fc65f20000000000000000000000000000000000000000000000000000000081526001600160a01b0393841695506321fc65f29450614fd09392831692909116908a908a90600401619b19565b600060405180830381600087803b158015614fea57600080fd5b505af1158015614ffe573d6000803e3d6000fd5b5050602480546027546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa158015615050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906150749190619b9d565b90506150858161171a600289619e59565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa1580156150d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906150f99190619b9d565b90506124c78161510a60028a619e59565b61171a9087619c0d565b60408051808201909152600f81527f48656c6c6f2c20466f756e6472792100000000000000000000000000000000006020820152602154602a90600190670de0b6b3a764000090615171906000906001600160a01b031631615576565b600084848460405160240161518893929190619e94565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260215490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba39161524c916001600160a01b039190911690670de0b6b3a7640000908690600401619bb6565b600060405180830381600087803b15801561526657600080fd5b505af115801561527a573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156152f357600080fd5b505af1158015615307573d6000803e3d6000fd5b50506020546040517f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa935061535092506001600160a01b03909116908590899089908990619ebe565b60405180910390a16020546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156153cd57600080fd5b505af11580156153e1573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f915061542e90670de0b6b3a7640000908590619c20565b60405180910390a260285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561548f57600080fd5b505af11580156154a3573d6000803e3d6000fd5b50506020546021546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd935086926154f79216908690600401619c39565b60006040518083038185885af1158015615515573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261553e9190810190619d43565b506021546127999083906001600160a01b031631615576565b6000615561619698565b61556c8484836155f5565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b1580156155e157600080fd5b505afa158015610e35573d6000803e3d6000fd5b6000806156028584615670565b90506156656040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f78790000008152508286604051602001615650929190619c39565b6040516020818303038152906040528561567c565b9150505b9392505050565b600061566983836156aa565b60c081015151600090156156a05761569984848460c001516156c5565b9050615669565b615699848461586b565b60006156b68383615956565b6156698383602001518461567c565b6000806156d0615962565b905060006156de8683615a35565b905060006156f58260600151836020015185615edb565b90506000615705838389896160ed565b9050600061571282616f6a565b602081015181519192509060030b156157855789826040015160405160200161573c929190619eff565b60408051601f19818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261577c91600401619f80565b60405180910390fd5b60006157c86040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001617139565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d9061581b908490600401619f80565b602060405180830381865afa158015615838573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061585c9190619f93565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc925906158c0908790600401619f80565b600060405180830381865afa1580156158dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526159059190810190619d43565b90506000615933828560405160200161591f929190619fbc565b604051602081830303815290604052617339565b90506001600160a01b03811661556c57848460405160200161573c929190619feb565b611b9d8282600061734c565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c906159e990849060040161a096565b600060405180830381865afa158015615a06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615a2e919081019061a0dd565b9250505090565b615a676040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d9050615ab26040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b615abb8561744f565b60208201526000615acb86617834565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015615b0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615b35919081019061a0dd565b86838560200151604051602001615b4f949392919061a126565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190615ba7908590600401619f80565b600060405180830381865afa158015615bc4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615bec919081019061a0dd565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f690615c3490849060040161a22a565b602060405180830381865afa158015615c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190615c759190619af7565b615c8a578160405160200161573c919061a27c565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890615ccf90849060040161a30e565b600060405180830381865afa158015615cec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615d14919081019061a0dd565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f690615d5b90849060040161a360565b602060405180830381865afa158015615d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190615d9c9190619af7565b15615e31576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890615de690849060040161a360565b600060405180830381865afa158015615e03573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615e2b919081019061a0dd565b60408501525b846001600160a01b03166349c4fac8828660000151604051602001615e56919061a3b2565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401615e8292919061a41e565b600060405180830381865afa158015615e9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615ec7919081019061a0dd565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b6060815260200190600190039081615ef75790505090506040518060400160405280600481526020017f677265700000000000000000000000000000000000000000000000000000000081525081600081518110615f5757615f57619d78565b60200260200101819052506040518060400160405280600381526020017f2d726c000000000000000000000000000000000000000000000000000000000081525081600181518110615fab57615fab619d78565b602002602001018190525084604051602001615fc7919061a443565b60405160208183030381529060405281600281518110615fe957615fe9619d78565b602002602001018190525082604051602001616005919061a4af565b6040516020818303038152906040528160038151811061602757616027619d78565b6020026020010181905250600061603d82616f6a565b602080820151604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000081850190815282518084018452600080825290860152825180840190935290518252928101929092529192506160ce9060408051808201825260008082526020918201528151808301909252845182528085019082015290617ab7565b6160e3578560405160200161573c919061a4f0565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d901561613d565b511590565b6162b1578260200151156161f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a40161577c565b8260c00151156162b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a40161577c565b6040805160ff8082526120008201909252600091816020015b60608152602001906001900390816162ca57905050905060006040518060400160405280600381526020017f6e707800000000000000000000000000000000000000000000000000000000008152508282806163259061a581565b935060ff168151811061633a5761633a619d78565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e370000000000000000000000000000000000000081525060405160200161638b919061a5a0565b6040516020818303038152906040528282806163a69061a581565b935060ff16815181106163bb576163bb619d78565b60200260200101819052506040518060400160405280600681526020017f6465706c6f7900000000000000000000000000000000000000000000000000008152508282806164089061a581565b935060ff168151811061641d5761641d619d78565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d6500000000000000000000000000000000000081525082828061646a9061a581565b935060ff168151811061647f5761647f619d78565b6020026020010181905250876020015182828061649b9061a581565b935060ff16815181106164b0576164b0619d78565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e7472616374506174680000000000000000000000000000000000008152508282806164fd9061a581565b935060ff168151811061651257616512619d78565b60209081029190910101528751828261652a8161a581565b935060ff168151811061653f5761653f619d78565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e4964000000000000000000000000000000000000000000000081525082828061658c9061a581565b935060ff16815181106165a1576165a1619d78565b60200260200101819052506165b546617b18565b82826165c08161a581565b935060ff16815181106165d5576165d5619d78565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c6500000000000000000000000000000000008152508282806166229061a581565b935060ff168151811061663757616637619d78565b60200260200101819052508682828061664f9061a581565b935060ff168151811061666457616664619d78565b602090810291909101015285511561678b5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f64650000000000000000000000602082015282826166b58161a581565b935060ff16815181106166ca576166ca619d78565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d9061671a908990600401619f80565b600060405180830381865afa158015616737573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261675f919081019061a0dd565b828261676a8161a581565b935060ff168151811061677f5761677f619d78565b60200260200101819052505b84602001511561685b5760408051808201909152601281527f2d2d766572696679536f75726365436f64650000000000000000000000000000602082015282826167d48161a581565b935060ff16815181106167e9576167e9619d78565b60200260200101819052506040518060400160405280600581526020017f66616c73650000000000000000000000000000000000000000000000000000008152508282806168369061a581565b935060ff168151811061684b5761684b619d78565b6020026020010181905250616a22565b6168936161388660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6169265760408051808201909152600d81527f2d2d6c6963656e73655479706500000000000000000000000000000000000000602082015282826168d68161a581565b935060ff16815181106168eb576168eb619d78565b60200260200101819052508460a0015160405160200161690b919061a443565b6040516020818303038152906040528282806168369061a581565b8460c0015115801561696957506040808901518151808301835260008082526020918201528251808401909352815183529081019082015261696790511590565b155b15616a225760408051808201909152600d81527f2d2d6c6963656e73655479706500000000000000000000000000000000000000602082015282826169ad8161a581565b935060ff16815181106169c2576169c2619d78565b60200260200101819052506169d688617bb8565b6040516020016169e6919061a443565b604051602081830303815290604052828280616a019061a581565b935060ff1681518110616a1657616a16619d78565b60200260200101819052505b60408086015181518083018352600080825260209182015282518084019093528151835290810190820152616a5690511590565b616aeb5760408051808201909152600b81527f2d2d72656c61796572496400000000000000000000000000000000000000000060208201528282616a998161a581565b935060ff1681518110616aae57616aae619d78565b60200260200101819052508460400151828280616aca9061a581565b935060ff1681518110616adf57616adf619d78565b60200260200101819052505b606085015115616c0c5760408051808201909152600681527f2d2d73616c74000000000000000000000000000000000000000000000000000060208201528282616b348161a581565b935060ff1681518110616b4957616b49619d78565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015616bb8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052616be0919081019061a0dd565b8282616beb8161a581565b935060ff1681518110616c0057616c00619d78565b60200260200101819052505b60e08501515115616cb35760408051808201909152600a81527f2d2d6761734c696d69740000000000000000000000000000000000000000000060208201528282616c568161a581565b935060ff1681518110616c6b57616c6b619d78565b6020026020010181905250616c878560e0015160000151617b18565b8282616c928161a581565b935060ff1681518110616ca757616ca7619d78565b60200260200101819052505b60e08501516020015115616d5d5760408051808201909152600a81527f2d2d67617350726963650000000000000000000000000000000000000000000060208201528282616d008161a581565b935060ff1681518110616d1557616d15619d78565b6020026020010181905250616d318560e0015160200151617b18565b8282616d3c8161a581565b935060ff1681518110616d5157616d51619d78565b60200260200101819052505b60e08501516040015115616e075760408051808201909152600e81527f2d2d6d617846656550657247617300000000000000000000000000000000000060208201528282616daa8161a581565b935060ff1681518110616dbf57616dbf619d78565b6020026020010181905250616ddb8560e0015160400151617b18565b8282616de68161a581565b935060ff1681518110616dfb57616dfb619d78565b60200260200101819052505b60e08501516060015115616eb15760408051808201909152601681527f2d2d6d61785072696f726974794665655065724761730000000000000000000060208201528282616e548161a581565b935060ff1681518110616e6957616e69619d78565b6020026020010181905250616e858560e0015160600151617b18565b8282616e908161a581565b935060ff1681518110616ea557616ea5619d78565b60200260200101819052505b60008160ff1667ffffffffffffffff811115616ecf57616ecf619c5b565b604051908082528060200260200182016040528015616f0257816020015b6060815260200190600190039081616eed5790505b50905060005b8260ff168160ff161015616f5b57838160ff1681518110616f2b57616f2b619d78565b6020026020010151828260ff1681518110616f4857616f48619d78565b6020908102919091010152600101616f08565b5093505050505b949350505050565b616f916040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c916170179186910161a60b565b600060405180830381865afa158015617034573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261705c919081019061a0dd565b9050600061706a86836186a7565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b815260040161709a9190619a4d565b6000604051808303816000875af11580156170b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526170e1919081019061a652565b805190915060030b158015906170fa5750602081015151155b80156171095750604081015151155b156160e3578160008151811061712157617121619d78565b602002602001015160405160200161573c919061a708565b6060600061716e8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925286518252808701908201529091506171a59082905b906187fc565b156173025760006172228261721c846172166171e88a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90618823565b90618885565b604080518082018252600181527f0a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506172869082906187fc565b156172f057604080518082018252600181527f0a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526172ed905b829061890a565b90505b6172f981618930565b92505050615669565b821561731b57848460405160200161573c92919061a8f4565b5050604080516020810190915260008152615669565b509392505050565b6000808251602084016000f09392505050565b8160a001511561735b57505050565b6000617368848484618999565b9050600061737582616f6a565b602081015181519192509060030b1580156174115750604080518082018252600781527f5355434345535300000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526174119060408051808201825260008082526020918201528151808301909252845182528085019082015261719f565b1561741e57505050505050565b6040820151511561743e57816040015160405160200161573c919061a99b565b8060405160200161573c919061a9f9565b606060006174848360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506174e9905b8290617ab7565b1561755857604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261566990617553908390618f34565b618930565b604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526175ba905b8290618fbe565b60010361768757604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617620906172e6565b50604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261566990617553905b839061890a565b604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526176e6906174e2565b1561781d57604080518082018252600181527f2f0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082018190528451808601909552925184528301529061774e908390619058565b9050600081600183516177619190619c0d565b8151811061777157617771619d78565b602002602001015190506178146175536177e76040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252855182528086019082015290618f34565b95945050505050565b8260405160200161573c919061aa64565b50919050565b606060006178698360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506178cb906174e2565b156178d95761566981618930565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617938906175b3565b6001036179a257604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526156699061755390617680565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617a01906174e2565b1561781d57604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290617a69908390619058565b9050600181511115617aa5578060028251617a849190619c0d565b81518110617a9457617a94619d78565b602002602001015192505050919050565b508260405160200161573c919061aa64565b805182516000911115617acc57506000615570565b81518351602085015160009291617ae29161ab42565b617aec9190619c0d565b905082602001518103617b03576001915050615570565b82516020840151819020912014905092915050565b60606000617b25836190fd565b600101905060008167ffffffffffffffff811115617b4557617b45619c5b565b6040519080825280601f01601f191660200182016040528015617b6f576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084617b7957509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091617c44905b82906191df565b15617c8457505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e7365000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617ce390617c3d565b15617d2357505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d4954000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617d8290617c3d565b15617dc257505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c79000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617e2190617c3d565b80617e865750604080518082018252601081527f47504c2d322e302d6f722d6c617465720000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617e8690617c3d565b15617ec657505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c79000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617f2590617c3d565b80617f8a5750604080518082018252601081527f47504c2d332e302d6f722d6c617465720000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617f8a90617c3d565b15617fca57505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261802990617c3d565b8061808e5750604080518082018252601181527f4c47504c2d322e312d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261808e90617c3d565b156180ce57505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261812d90617c3d565b806181925750604080518082018252601181527f4c47504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261819290617c3d565b156181d257505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261823190617c3d565b1561827157505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c617573650000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526182d090617c3d565b1561831057505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261836f90617c3d565b156183af57505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261840e90617c3d565b1561844e57505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e3000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526184ad90617c3d565b156184ed57505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261854c90617c3d565b806185b15750604080518082018252601181527f4147504c2d332e302d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526185b190617c3d565b156185f157505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e310000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261865090617c3d565b1561869057505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b6040808401518451915161573c929060200161ab55565b60608060005b845181101561873257818582815181106186c9576186c9619d78565b60200260200101516040516020016186e2929190619fbc565b6040516020818303038152906040529150600185516187019190619c0d565b811461872a5781604051602001618718919061acbe565b60405160208183030381529060405291505b6001016186ad565b5060408051600380825260808201909252600091816020015b606081526020019060019003908161874b579050509050838160008151811061877657618776619d78565b60200260200101819052506040518060400160405280600281526020017f2d63000000000000000000000000000000000000000000000000000000000000815250816001815181106187ca576187ca619d78565b602002602001018190525081816002815181106187e9576187e9619d78565b6020908102919091010152949350505050565b602080830151835183519284015160009361881a92918491906191f3565b14159392505050565b604080518082019091526000808252602082015260006188558460000151856020015185600001518660200151619304565b90508360200151816188679190619c0d565b84518590618876908390619c0d565b90525060208401525090919050565b60408051808201909152600080825260208201528151835110156188aa575081615570565b60208083015190840151600191146188d15750815160208481015190840151829020919020145b8015618902578251845185906188e8908390619c0d565b90525082516020850180516188fe90839061ab42565b9052505b509192915050565b6040805180820190915260008082526020820152618929838383619424565b5092915050565b60606000826000015167ffffffffffffffff81111561895157618951619c5b565b6040519080825280601f01601f19166020018201604052801561897b576020820181803683370190505b509050600060208201905061892981856020015186600001516194cf565b606060006189a5615962565b6040805160ff808252612000820190925291925060009190816020015b60608152602001906001900390816189c257905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280618a1d9061a581565b935060ff1681518110618a3257618a32619d78565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e3300000000000000000000000000000000000000000000000000815250604051602001618a83919061acff565b604051602081830303815290604052828280618a9e9061a581565b935060ff1681518110618ab357618ab3619d78565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280618b009061a581565b935060ff1681518110618b1557618b15619d78565b602002602001018190525082604051602001618b31919061a4af565b604051602081830303815290604052828280618b4c9061a581565b935060ff1681518110618b6157618b61619d78565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280618bae9061a581565b935060ff1681518110618bc357618bc3619d78565b6020026020010181905250618bd88784619549565b8282618be38161a581565b935060ff1681518110618bf857618bf8619d78565b602090810291909101015285515115618ca45760408051808201909152600b81527f2d2d7265666572656e636500000000000000000000000000000000000000000060208201528282618c4a8161a581565b935060ff1681518110618c5f57618c5f619d78565b6020026020010181905250618c78866000015184619549565b8282618c838161a581565b935060ff1681518110618c9857618c98619d78565b60200260200101819052505b856080015115618d125760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282618ced8161a581565b935060ff1681518110618d0257618d02619d78565b6020026020010181905250618d78565b8415618d785760408051808201909152601281527f2d2d726571756972655265666572656e6365000000000000000000000000000060208201528282618d578161a581565b935060ff1681518110618d6c57618d6c619d78565b60200260200101819052505b60408601515115618e145760408051808201909152600d81527f2d2d756e73616665416c6c6f770000000000000000000000000000000000000060208201528282618dc28161a581565b935060ff1681518110618dd757618dd7619d78565b60200260200101819052508560400151828280618df39061a581565b935060ff1681518110618e0857618e08619d78565b60200260200101819052505b856060015115618e7e5760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d657300000000000000000000000060208201528282618e5d8161a581565b935060ff1681518110618e7257618e72619d78565b60200260200101819052505b60008160ff1667ffffffffffffffff811115618e9c57618e9c619c5b565b604051908082528060200260200182016040528015618ecf57816020015b6060815260200190600190039081618eba5790505b50905060005b8260ff168160ff161015618f2857838160ff1681518110618ef857618ef8619d78565b6020026020010151828260ff1681518110618f1557618f15619d78565b6020908102919091010152600101618ed5565b50979650505050505050565b6040805180820190915260008082526020820152815183511015618f59575081615570565b81518351602085015160009291618f6f9161ab42565b618f799190619c0d565b60208401519091506001908214618f9a575082516020840151819020908220145b8015618fb557835185518690618fb1908390619c0d565b9052505b50929392505050565b6000808260000151618fe28560000151866020015186600001518760200151619304565b618fec919061ab42565b90505b83516020850151619000919061ab42565b811161892957816190108161ad44565b925050826000015161904785602001518361902b9190619c0d565b86516190379190619c0d565b8386600001518760200151619304565b619051919061ab42565b9050618fef565b606060006190668484618fbe565b61907190600161ab42565b67ffffffffffffffff81111561908957619089619c5b565b6040519080825280602002602001820160405280156190bc57816020015b60608152602001906001900390816190a75790505b50905060005b8151811015617331576190d8617553868661890a565b8282815181106190ea576190ea619d78565b60209081029190910101526001016190c2565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310619146577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310619172576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061919057662386f26fc10000830492506010015b6305f5e10083106191a8576305f5e100830492506008015b61271083106191bc57612710830492506004015b606483106191ce576064830492506002015b600a83106155705760010192915050565b60006191eb8383619589565b159392505050565b6000808584116192fa57602084116192a6576000841561923e57600161921a866020619c0d565b61922590600861ad5e565b61923090600261ae5c565b61923a9190619c0d565b1990505b835181168561924d898961ab42565b6192579190619c0d565b805190935082165b818114619291578784116192795787945050505050616f62565b836192838161ae68565b94505082845116905061925f565b61929b878561ab42565b945050505050616f62565b8383206192b38588619c0d565b6192bd908761ab42565b91505b8582106192f8578482208082036192e5576192db868461ab42565b9350505050616f62565b6192f0600184619c0d565b9250506192c0565b505b5092949350505050565b6000838186851161940f57602085116193be576000851561935057600161932c876020619c0d565b61933790600861ad5e565b61934290600261ae5c565b61934c9190619c0d565b1990505b845181166000876193618b8b61ab42565b61936b9190619c0d565b855190915083165b8281146193b0578186106193985761938b8b8b61ab42565b9650505050505050616f62565b856193a28161ad44565b965050838651169050619373565b859650505050505050616f62565b508383206000905b6193d08689619c0d565b821161940d578583208082036193ec5783945050505050616f62565b6193f760018561ab42565b93505081806194059061ad44565b9250506193c6565b505b619419878761ab42565b979650505050505050565b604080518082019091526000808252602082015260006194568560000151866020015186600001518760200151619304565b6020808701805191860191909152519091506194729082619c0d565b835284516020860151619485919061ab42565b810361949457600085526194c6565b835183516194a2919061ab42565b855186906194b1908390619c0d565b90525083516194c0908261ab42565b60208601525b50909392505050565b6020811061950757815183526194e660208461ab42565b92506194f360208361ab42565b9150619500602082619c0d565b90506194cf565b600019811561953657600161951d836020619c0d565b6195299061010061ae5c565b6195339190619c0d565b90505b9151835183169219169190911790915250565b606060006195578484615a35565b80516020808301516040519394506195719390910161ae7f565b60405160208183030381529060405291505092915050565b815181516000919081111561959c575081515b6020808501519084015160005b838110156196555782518251808214619625576000196020871015619604576001846195d6896020619c0d565b6195e0919061ab42565b6195eb90600861ad5e565b6195f690600261ae5c565b6196009190619c0d565b1990505b81811683821681810391146196225797506155709650505050505050565b50505b61963060208661ab42565b945061963d60208561ab42565b9350505060208161964e919061ab42565b90506195a9565b50845186516160e3919061aed7565b610c9f8061aef883390190565b610b4a8061bb9783390190565b610f9a8061c6e183390190565b610d5e8061d67b83390190565b6040518060e001604052806060815260200160608152602001606081526020016000151581526020016000151581526020016000151581526020016196db6196e0565b905290565b604051806101000160405280600015158152602001600015158152602001606081526020016000801916815260200160608152602001606081526020016000151581526020016196db6040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b818110156197925783516001600160a01b031683526020938401939092019160010161976b565b509095945050505050565b60005b838110156197b85781810151838201526020016197a0565b50506000910152565b600081518084526197d981602086016020860161979d565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156198e9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b818110156198cf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a85030183526198b98486516197c1565b602095860195909450929092019160010161987f565b509197505050602094850194929092019150600101619815565b50929695505050505050565b600081518084526020840193506020830160005b828110156199495781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101619909565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156198e9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281518051604087526199bf60408801826197c1565b90506020820151915086810360208801526199da81836198f5565b96505050602093840193919091019060010161997b565b600082825180855260208501945060208160051b8301016020850160005b83811015619a4157601f19858403018852619a2b8383516197c1565b6020988901989093509190910190600101619a0f565b50909695505050505050565b60208152600061566960208301846199f1565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156198e9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b0381511686526020810151905060406020870152619ae160408701826198f5565b9550506020938401939190910190600101619a88565b600060208284031215619b0957600080fd5b8151801515811461566957600080fd5b6001600160a01b03851681526001600160a01b03841660208201528260408201526080606082015260006160e360808301846197c1565b600181811c90821680619b6457607f821691505b60208210810361782e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215619baf57600080fd5b5051919050565b6001600160a01b038416815282602082015260606040820152600061781460608301846197c1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561557057615570619bde565b828152604060208201526000616f6260408301846197c1565b6001600160a01b0383168152604060208201526000616f6260408301846197c1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715619cad57619cad619c5b565b60405290565b60008067ffffffffffffffff841115619cce57619cce619c5b565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715619cfd57619cfd619c5b565b604052838152905080828401851015619d1557600080fd5b61733184602083018561979d565b600082601f830112619d3457600080fd5b61566983835160208501619cb3565b600060208284031215619d5557600080fd5b815167ffffffffffffffff811115619d6c57600080fd5b61556c84828501619d23565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081518084526020840193506020830160005b82811015619949578151865260209586019590910190600101619dbb565b606081526000619dec60608301866199f1565b8281036020840152619dfe8186619da7565b9150508215156040830152949350505050565b6001600160a01b0385168152608060208201526000619e3360808301866199f1565b8281036040840152619e458186619da7565b915050821515606083015295945050505050565b600082619e8f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b606081526000619ea760608301866197c1565b602083019490945250901515604090910152919050565b6001600160a01b038616815284602082015260a060408201526000619ee660a08301866197c1565b6060830194909452509015156080909101529392505050565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351619f3781601a85016020880161979d565b7f3a20000000000000000000000000000000000000000000000000000000000000601a918401918201528351619f7481601c84016020880161979d565b01601c01949350505050565b60208152600061566960208301846197c1565b600060208284031215619fa557600080fd5b81516001600160a01b038116811461566957600080fd5b60008351619fce81846020880161979d565b835190830190619fe281836020880161979d565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161a02381601a85016020880161979d565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a91840191820152835161a06081603384016020880161979d565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f5554000000000000000000000000000000000000000000606082015260806020820152600061566960808301846197c1565b60006020828403121561a0ef57600080fd5b815167ffffffffffffffff81111561a10657600080fd5b8201601f8101841361a11757600080fd5b61556c84825160208401619cb3565b6000855161a138818460208a0161979d565b7f2f00000000000000000000000000000000000000000000000000000000000000908301908152855161a172816001840160208a0161979d565b7f2f0000000000000000000000000000000000000000000000000000000000000060019290910191820152845161a1b081600284016020890161979d565b6001818301019150507f2f000000000000000000000000000000000000000000000000000000000000006001820152835161a1f281600284016020880161979d565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b60408152600061a23d60408301846197c1565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161a2b481601f85016020870161979d565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b60408152600061a32160408301846197c1565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b60408152600061a37360408301846197c1565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b2700000000000000000000000081526000825161a3ea81601485016020870161979d565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b60408152600061a43160408301856197c1565b828103602084015261566581856197c1565b7f220000000000000000000000000000000000000000000000000000000000000081526000825161a47b81600185016020870161979d565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b6000825161a4c181846020870161979d565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e74726163742000000000000000000000000000000000000000000060408201526000825161a57481604b85016020870161979d565b91909101604b0192915050565b600060ff821660ff810361a5975761a597619bde565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c6940000000000000000000000000000000000000000000000060208201526000825161a5fe81602985016020870161979d565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f5041544800000000000000000000606082015260806020820152600061566960808301846197c1565b60006020828403121561a66457600080fd5b815167ffffffffffffffff81111561a67b57600080fd5b82016060818503121561a68d57600080fd5b61a695619c8a565b81518060030b811461a6a657600080fd5b8152602082015167ffffffffffffffff81111561a6c257600080fd5b61a6ce86828501619d23565b602083015250604082015167ffffffffffffffff81111561a6ee57600080fd5b61a6fa86828501619d23565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f220000000000000000000000000000000000000000000000000000000000000060208201526000825161a76681602185016020870161979d565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f270000000000000000000000000000000000000000000000000000000000000060208201526000835161a95281602185016020880161979d565b7f2720696e206f75747075743a2000000000000000000000000000000000000000602191840191820152835161a98f81602e84016020880161979d565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a20000000000000000000000000000000000000000000000060208201526000825161a5fe81602985016020870161979d565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a00000000000000000000000000000000000000000000000000000000000060208201526000825161aa5781602285016020870161979d565b9190910160220192915050565b7f436f6e7472616374206e616d652000000000000000000000000000000000000081526000825161aa9c81600e85016020870161979d565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b8082018082111561557057615570619bde565b7f53504458206c6963656e7365206964656e74696669657220000000000000000081526000835161ab8d81601885016020880161979d565b7f20696e2000000000000000000000000000000000000000000000000000000000601891840191820152835161abca81601c84016020880161979d565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b6000825161acd081846020870161979d565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f7265400000000081526000825161ad3781601c85016020870161979d565b91909101601c0192915050565b6000600019820361ad575761ad57619bde565b5060010190565b808202811582820484141761557057615570619bde565b6001815b600184111561adb05780850481111561ad945761ad94619bde565b600184161561ada257908102905b60019390931c92800261ad79565b935093915050565b60008261adc757506001615570565b8161add457506000615570565b816001811461adea576002811461adf45761ae10565b6001915050615570565b60ff84111561ae055761ae05619bde565b50506001821b615570565b5060208310610133831016604e8410600b841016171561ae33575081810a615570565b61ae40600019848461ad75565b806000190482111561ae545761ae54619bde565b029392505050565b6000615669838361adb8565b60008161ae775761ae77619bde565b506000190190565b6000835161ae9181846020880161979d565b7f3a00000000000000000000000000000000000000000000000000000000000000908301908152835161aecb81600184016020880161979d565b01600101949350505050565b818103600083128015838313168383128216171561892957618929619bde56fe608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b50604051610b4a380380610b4a83398101604081905261002f916100bc565b60016000556001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ef565b80516001600160a01b03811681146100b757600080fd5b919050565b600080604083850312156100cf57600080fd5b6100d8836100a0565b91506100e6602084016100a0565b90509250929050565b610a4c806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80635b112591116100505780635b112591146100ca578063c8a02362146100ea578063d9caed12146100fd57600080fd5b8063116191b61461006c57806321fc65f2146100b5575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100c86100c3366004610822565b610110565b005b60025461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100c86100f8366004610822565b61029a565b6100c861010b3660046108bf565b61040b565b6101186104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610169576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546101909073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906101ee9088908890889088908890600401610945565b600060405180830381600087803b15801561020857600080fd5b505af115801561021c573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610281939291906109a2565b60405180910390a36102936001600055565b5050505050565b6102a26104fb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102f3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015461031a9073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906103789088908890889088908890600401610945565b600060405180830381600087803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8858585604051610281939291906109a2565b6104136104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61048573ffffffffffffffffffffffffffffffffffffffff8416838361053e565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104e491815260200190565b60405180910390a36104f66001600055565b505050565b600260005403610537576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f6918591906000906105d790841683610650565b905080516000141580156105fc5750808060200190518101906105fa91906109c5565b155b156104f6576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b606061065e83836000610665565b9392505050565b6060814710156106a3576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610647565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516106cc91906109e7565b60006040518083038185875af1925050503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b509150915061071e868383610728565b9695505050505050565b60608261073d57610738826107b7565b61065e565b8151158015610761575073ffffffffffffffffffffffffffffffffffffffff84163b155b156107b0576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610647565b508061065e565b8051156107c75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461081d57600080fd5b919050565b60008060008060006080868803121561083a57600080fd5b610843866107f9565b9450610851602087016107f9565b935060408601359250606086013567ffffffffffffffff81111561087457600080fd5b8601601f8101881361088557600080fd5b803567ffffffffffffffff81111561089c57600080fd5b8860208284010111156108ae57600080fd5b959894975092955050506020019190565b6000806000606084860312156108d457600080fd5b6108dd846107f9565b92506108eb602085016107f9565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006109976080830184866108fc565b979650505050505050565b8381526040602082015260006109bc6040830184866108fc565b95945050505050565b6000602082840312156109d757600080fd5b8151801515811461065e57600080fd5b6000825160005b81811015610a0857602081860181015185830152016109ee565b50600092019182525091905056fea264697066735822122041336b1568f49be1aa3dcd208e804b373772741e9b7e1726a8869e99fced60c764736f6c634300081a003360c060405260001960025534801561001657600080fd5b50604051610f9a380380610f9a833981016040819052610035916100d8565b60016000558282826001600160a01b038316158061005a57506001600160a01b038216155b8061006c57506001600160a01b038116155b1561008a5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0392831660805290821660a052600180546001600160a01b031916919092161790555061011b915050565b80516001600160a01b03811681146100d357600080fd5b919050565b6000806000606084860312156100ed57600080fd5b6100f6846100bc565b9250610104602085016100bc565b9150610112604085016100bc565b90509250925092565b60805160a051610e0061019a6000396000818161012601528181610216015281816103580152818161041e01528181610541015281816106630152818161077c015281816108be015281816109840152610af101526000818160d501528181610322015281816103ef0152818161088801526109550152610e006000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80635b112591116100765780636f8b44b01161005b5780636f8b44b01461017b578063743e0c9b1461018e578063d5abeb01146101a157600080fd5b80635b112591146101485780635e3e9fef1461016857600080fd5b806302d5c899146100a8578063106e6290146100bd578063116191b6146100d057806321e093b114610121575b600080fd5b6100bb6100b6366004610bca565b6101b8565b005b6100bb6100cb366004610c5c565b6104e3565b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b6001546100f79073ffffffffffffffffffffffffffffffffffffffff1681565b6100bb610176366004610bca565b61071e565b6100bb610189366004610c8f565b610a30565b6100bb61019c366004610c8f565b610abc565b6101aa60025481565b604051908152602001610118565b6101c0610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610211576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a39190610ca8565b6102ad9086610cc1565b11156102e5576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561039c57600080fd5b505af11580156103b0573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd4915061044e907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b15801561046857600080fd5b505af115801561047c573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8585856040516104ca93929190610da7565b60405180910390a26104dc6001600055565b5050505050565b6104eb610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff16331461053c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce9190610ca8565b6105d89084610cc1565b1115610610576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161070791815260200190565b60405180910390a26107196001600055565b505050565b610726610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610777576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190610ca8565b6108139086610cc1565b111561084b576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090257600080fd5b505af1158015610916573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab5991506109b4907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b1580156109ce57600080fd5b505af11580156109e2573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8585856040516104ca93929190610da7565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a81576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a150565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610b4a57600080fd5b505af11580156104dc573d6000803e3d6000fd5b600260005403610b9a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bc557600080fd5b919050565b600080600080600060808688031215610be257600080fd5b610beb86610ba1565b945060208601359350604086013567ffffffffffffffff811115610c0e57600080fd5b8601601f81018813610c1f57600080fd5b803567ffffffffffffffff811115610c3657600080fd5b886020828401011115610c4857600080fd5b959894975060200195606001359392505050565b600080600060608486031215610c7157600080fd5b610c7a84610ba1565b95602085013595506040909401359392505050565b600060208284031215610ca157600080fd5b5035919050565b600060208284031215610cba57600080fd5b5051919050565b80820180821115610cfb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610d9c608083018486610d01565b979650505050505050565b838152604060208201526000610dc1604083018486610d01565b9594505050505056fea2646970667358221220eef04aea35a49145971cb42500074f7c44d89db08a5df2b7d071494c05cc1a2a64736f6c634300081a00336080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a0033a2646970667358221220486bd4f3de101e9ee6588242afd1e36e71abd1e83c261757d54bc768d6913e5164736f6c634300081a0033", +} + +// GatewayEVMTestABI is the input ABI used to generate the binding from. +// Deprecated: Use GatewayEVMTestMetaData.ABI instead. +var GatewayEVMTestABI = GatewayEVMTestMetaData.ABI + +// GatewayEVMTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use GatewayEVMTestMetaData.Bin instead. +var GatewayEVMTestBin = GatewayEVMTestMetaData.Bin + +// DeployGatewayEVMTest deploys a new Ethereum contract, binding an instance of GatewayEVMTest to it. +func DeployGatewayEVMTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GatewayEVMTest, error) { + parsed, err := GatewayEVMTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(GatewayEVMTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &GatewayEVMTest{GatewayEVMTestCaller: GatewayEVMTestCaller{contract: contract}, GatewayEVMTestTransactor: GatewayEVMTestTransactor{contract: contract}, GatewayEVMTestFilterer: GatewayEVMTestFilterer{contract: contract}}, nil +} + +// GatewayEVMTest is an auto generated Go binding around an Ethereum contract. +type GatewayEVMTest struct { + GatewayEVMTestCaller // Read-only binding to the contract + GatewayEVMTestTransactor // Write-only binding to the contract + GatewayEVMTestFilterer // Log filterer for contract events +} + +// GatewayEVMTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type GatewayEVMTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type GatewayEVMTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type GatewayEVMTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type GatewayEVMTestSession struct { + Contract *GatewayEVMTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type GatewayEVMTestCallerSession struct { + Contract *GatewayEVMTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// GatewayEVMTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type GatewayEVMTestTransactorSession struct { + Contract *GatewayEVMTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type GatewayEVMTestRaw struct { + Contract *GatewayEVMTest // Generic contract binding to access the raw methods on +} + +// GatewayEVMTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type GatewayEVMTestCallerRaw struct { + Contract *GatewayEVMTestCaller // Generic read-only contract binding to access the raw methods on +} + +// GatewayEVMTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type GatewayEVMTestTransactorRaw struct { + Contract *GatewayEVMTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewGatewayEVMTest creates a new instance of GatewayEVMTest, bound to a specific deployed contract. +func NewGatewayEVMTest(address common.Address, backend bind.ContractBackend) (*GatewayEVMTest, error) { + contract, err := bindGatewayEVMTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &GatewayEVMTest{GatewayEVMTestCaller: GatewayEVMTestCaller{contract: contract}, GatewayEVMTestTransactor: GatewayEVMTestTransactor{contract: contract}, GatewayEVMTestFilterer: GatewayEVMTestFilterer{contract: contract}}, nil +} + +// NewGatewayEVMTestCaller creates a new read-only instance of GatewayEVMTest, bound to a specific deployed contract. +func NewGatewayEVMTestCaller(address common.Address, caller bind.ContractCaller) (*GatewayEVMTestCaller, error) { + contract, err := bindGatewayEVMTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &GatewayEVMTestCaller{contract: contract}, nil +} + +// NewGatewayEVMTestTransactor creates a new write-only instance of GatewayEVMTest, bound to a specific deployed contract. +func NewGatewayEVMTestTransactor(address common.Address, transactor bind.ContractTransactor) (*GatewayEVMTestTransactor, error) { + contract, err := bindGatewayEVMTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &GatewayEVMTestTransactor{contract: contract}, nil +} + +// NewGatewayEVMTestFilterer creates a new log filterer instance of GatewayEVMTest, bound to a specific deployed contract. +func NewGatewayEVMTestFilterer(address common.Address, filterer bind.ContractFilterer) (*GatewayEVMTestFilterer, error) { + contract, err := bindGatewayEVMTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &GatewayEVMTestFilterer{contract: contract}, nil +} + +// bindGatewayEVMTest binds a generic wrapper to an already deployed contract. +func bindGatewayEVMTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := GatewayEVMTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMTest *GatewayEVMTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMTest.Contract.GatewayEVMTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMTest *GatewayEVMTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.Contract.GatewayEVMTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMTest *GatewayEVMTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMTest.Contract.GatewayEVMTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMTest *GatewayEVMTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMTest *GatewayEVMTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMTest *GatewayEVMTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMTest.Contract.contract.Transact(opts, method, params...) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMTest *GatewayEVMTestCaller) ISTEST(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "IS_TEST") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMTest *GatewayEVMTestSession) ISTEST() (bool, error) { + return _GatewayEVMTest.Contract.ISTEST(&_GatewayEVMTest.CallOpts) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) ISTEST() (bool, error) { + return _GatewayEVMTest.Contract.ISTEST(&_GatewayEVMTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMTest *GatewayEVMTestCaller) ExcludeArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "excludeArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMTest *GatewayEVMTestSession) ExcludeArtifacts() ([]string, error) { + return _GatewayEVMTest.Contract.ExcludeArtifacts(&_GatewayEVMTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) ExcludeArtifacts() ([]string, error) { + return _GatewayEVMTest.Contract.ExcludeArtifacts(&_GatewayEVMTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMTest *GatewayEVMTestCaller) ExcludeContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "excludeContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMTest *GatewayEVMTestSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayEVMTest.Contract.ExcludeContracts(&_GatewayEVMTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayEVMTest.Contract.ExcludeContracts(&_GatewayEVMTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMTest *GatewayEVMTestCaller) ExcludeSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "excludeSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMTest *GatewayEVMTestSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMTest.Contract.ExcludeSelectors(&_GatewayEVMTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMTest.Contract.ExcludeSelectors(&_GatewayEVMTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMTest *GatewayEVMTestCaller) ExcludeSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "excludeSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMTest *GatewayEVMTestSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayEVMTest.Contract.ExcludeSenders(&_GatewayEVMTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayEVMTest.Contract.ExcludeSenders(&_GatewayEVMTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMTest *GatewayEVMTestCaller) Failed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "failed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMTest *GatewayEVMTestSession) Failed() (bool, error) { + return _GatewayEVMTest.Contract.Failed(&_GatewayEVMTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) Failed() (bool, error) { + return _GatewayEVMTest.Contract.Failed(&_GatewayEVMTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMTest *GatewayEVMTestCaller) TargetArtifactSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzArtifactSelector, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "targetArtifactSelectors") + + if err != nil { + return *new([]StdInvariantFuzzArtifactSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzArtifactSelector)).(*[]StdInvariantFuzzArtifactSelector) + + return out0, err + +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMTest *GatewayEVMTestSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayEVMTest.Contract.TargetArtifactSelectors(&_GatewayEVMTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayEVMTest.Contract.TargetArtifactSelectors(&_GatewayEVMTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMTest *GatewayEVMTestCaller) TargetArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "targetArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMTest *GatewayEVMTestSession) TargetArtifacts() ([]string, error) { + return _GatewayEVMTest.Contract.TargetArtifacts(&_GatewayEVMTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) TargetArtifacts() ([]string, error) { + return _GatewayEVMTest.Contract.TargetArtifacts(&_GatewayEVMTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMTest *GatewayEVMTestCaller) TargetContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "targetContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMTest *GatewayEVMTestSession) TargetContracts() ([]common.Address, error) { + return _GatewayEVMTest.Contract.TargetContracts(&_GatewayEVMTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) TargetContracts() ([]common.Address, error) { + return _GatewayEVMTest.Contract.TargetContracts(&_GatewayEVMTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMTest *GatewayEVMTestCaller) TargetInterfaces(opts *bind.CallOpts) ([]StdInvariantFuzzInterface, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "targetInterfaces") + + if err != nil { + return *new([]StdInvariantFuzzInterface), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzInterface)).(*[]StdInvariantFuzzInterface) + + return out0, err + +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMTest *GatewayEVMTestSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayEVMTest.Contract.TargetInterfaces(&_GatewayEVMTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayEVMTest.Contract.TargetInterfaces(&_GatewayEVMTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMTest *GatewayEVMTestCaller) TargetSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "targetSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMTest *GatewayEVMTestSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMTest.Contract.TargetSelectors(&_GatewayEVMTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMTest.Contract.TargetSelectors(&_GatewayEVMTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMTest *GatewayEVMTestCaller) TargetSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "targetSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMTest *GatewayEVMTestSession) TargetSenders() ([]common.Address, error) { + return _GatewayEVMTest.Contract.TargetSenders(&_GatewayEVMTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) TargetSenders() ([]common.Address, error) { + return _GatewayEVMTest.Contract.TargetSenders(&_GatewayEVMTest.CallOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) SetUp(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "setUp") +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) SetUp() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.SetUp(&_GatewayEVMTest.TransactOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) SetUp() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.SetUp(&_GatewayEVMTest.TransactOpts) +} + +// TestExecuteRevert is a paid mutator transaction binding the contract method 0xfa18c09b. +// +// Solidity: function testExecuteRevert() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestExecuteRevert(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testExecuteRevert") +} + +// TestExecuteRevert is a paid mutator transaction binding the contract method 0xfa18c09b. +// +// Solidity: function testExecuteRevert() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestExecuteRevert() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestExecuteRevert(&_GatewayEVMTest.TransactOpts) +} + +// TestExecuteRevert is a paid mutator transaction binding the contract method 0xfa18c09b. +// +// Solidity: function testExecuteRevert() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestExecuteRevert() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestExecuteRevert(&_GatewayEVMTest.TransactOpts) +} + +// TestExecuteRevertFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0xcebad2a6. +// +// Solidity: function testExecuteRevertFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestExecuteRevertFailsIfSenderIsNotTSS(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testExecuteRevertFailsIfSenderIsNotTSS") +} + +// TestExecuteRevertFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0xcebad2a6. +// +// Solidity: function testExecuteRevertFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestExecuteRevertFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestExecuteRevertFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestExecuteRevertFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0xcebad2a6. +// +// Solidity: function testExecuteRevertFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestExecuteRevertFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestExecuteRevertFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestExecuteWithERC20FailsIfNotCustoryOrConnector is a paid mutator transaction binding the contract method 0xc9350b7f. +// +// Solidity: function testExecuteWithERC20FailsIfNotCustoryOrConnector() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestExecuteWithERC20FailsIfNotCustoryOrConnector(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testExecuteWithERC20FailsIfNotCustoryOrConnector") +} + +// TestExecuteWithERC20FailsIfNotCustoryOrConnector is a paid mutator transaction binding the contract method 0xc9350b7f. +// +// Solidity: function testExecuteWithERC20FailsIfNotCustoryOrConnector() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestExecuteWithERC20FailsIfNotCustoryOrConnector() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestExecuteWithERC20FailsIfNotCustoryOrConnector(&_GatewayEVMTest.TransactOpts) +} + +// TestExecuteWithERC20FailsIfNotCustoryOrConnector is a paid mutator transaction binding the contract method 0xc9350b7f. +// +// Solidity: function testExecuteWithERC20FailsIfNotCustoryOrConnector() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestExecuteWithERC20FailsIfNotCustoryOrConnector() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestExecuteWithERC20FailsIfNotCustoryOrConnector(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20PartialThroughCustody is a paid mutator transaction binding the contract method 0xfb176c12. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveERC20PartialThroughCustody(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveERC20PartialThroughCustody") +} + +// TestForwardCallToReceiveERC20PartialThroughCustody is a paid mutator transaction binding the contract method 0xfb176c12. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveERC20PartialThroughCustody() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20PartialThroughCustody(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20PartialThroughCustody is a paid mutator transaction binding the contract method 0xfb176c12. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveERC20PartialThroughCustody() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20PartialThroughCustody(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0 is a paid mutator transaction binding the contract method 0x6a621854. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0") +} + +// TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0 is a paid mutator transaction binding the contract method 0x6a621854. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0 is a paid mutator transaction binding the contract method 0x6a621854. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x9620d7ed. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS") +} + +// TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x9620d7ed. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x9620d7ed. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20ThroughCustody is a paid mutator transaction binding the contract method 0xcbd57e2f. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveERC20ThroughCustody(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveERC20ThroughCustody") +} + +// TestForwardCallToReceiveERC20ThroughCustody is a paid mutator transaction binding the contract method 0xcbd57e2f. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveERC20ThroughCustody() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20ThroughCustody(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20ThroughCustody is a paid mutator transaction binding the contract method 0xcbd57e2f. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveERC20ThroughCustody() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20ThroughCustody(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0 is a paid mutator transaction binding the contract method 0x1779672f. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0") +} + +// TestForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0 is a paid mutator transaction binding the contract method 0x1779672f. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0 is a paid mutator transaction binding the contract method 0x1779672f. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0xd46e9b57. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS") +} + +// TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0xd46e9b57. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0xd46e9b57. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveNoParams is a paid mutator transaction binding the contract method 0x44671b94. +// +// Solidity: function testForwardCallToReceiveNoParams() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveNoParams(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveNoParams") +} + +// TestForwardCallToReceiveNoParams is a paid mutator transaction binding the contract method 0x44671b94. +// +// Solidity: function testForwardCallToReceiveNoParams() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveNoParams() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveNoParams(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveNoParams is a paid mutator transaction binding the contract method 0x44671b94. +// +// Solidity: function testForwardCallToReceiveNoParams() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveNoParams() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveNoParams(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveNoParamsThroughCustody is a paid mutator transaction binding the contract method 0xa3f9d0e0. +// +// Solidity: function testForwardCallToReceiveNoParamsThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveNoParamsThroughCustody(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveNoParamsThroughCustody") +} + +// TestForwardCallToReceiveNoParamsThroughCustody is a paid mutator transaction binding the contract method 0xa3f9d0e0. +// +// Solidity: function testForwardCallToReceiveNoParamsThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveNoParamsThroughCustody() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveNoParamsThroughCustody(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveNoParamsThroughCustody is a paid mutator transaction binding the contract method 0xa3f9d0e0. +// +// Solidity: function testForwardCallToReceiveNoParamsThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveNoParamsThroughCustody() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveNoParamsThroughCustody(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveNonPayable is a paid mutator transaction binding the contract method 0xf68bd1c0. +// +// Solidity: function testForwardCallToReceiveNonPayable() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveNonPayable(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveNonPayable") +} + +// TestForwardCallToReceiveNonPayable is a paid mutator transaction binding the contract method 0xf68bd1c0. +// +// Solidity: function testForwardCallToReceiveNonPayable() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveNonPayable() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveNonPayable(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveNonPayable is a paid mutator transaction binding the contract method 0xf68bd1c0. +// +// Solidity: function testForwardCallToReceiveNonPayable() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveNonPayable() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveNonPayable(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x7d7f772a. +// +// Solidity: function testForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS") +} + +// TestForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x7d7f772a. +// +// Solidity: function testForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x7d7f772a. +// +// Solidity: function testForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveNonPayableFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceivePayable is a paid mutator transaction binding the contract method 0xfe7bdbb2. +// +// Solidity: function testForwardCallToReceivePayable() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceivePayable(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceivePayable") +} + +// TestForwardCallToReceivePayable is a paid mutator transaction binding the contract method 0xfe7bdbb2. +// +// Solidity: function testForwardCallToReceivePayable() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceivePayable() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceivePayable(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceivePayable is a paid mutator transaction binding the contract method 0xfe7bdbb2. +// +// Solidity: function testForwardCallToReceivePayable() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceivePayable() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceivePayable(&_GatewayEVMTest.TransactOpts) +} + +// TestRevertWithERC20FailsIfNotCustoryOrConnector is a paid mutator transaction binding the contract method 0x2206eb65. +// +// Solidity: function testRevertWithERC20FailsIfNotCustoryOrConnector() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestRevertWithERC20FailsIfNotCustoryOrConnector(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testRevertWithERC20FailsIfNotCustoryOrConnector") +} + +// TestRevertWithERC20FailsIfNotCustoryOrConnector is a paid mutator transaction binding the contract method 0x2206eb65. +// +// Solidity: function testRevertWithERC20FailsIfNotCustoryOrConnector() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestRevertWithERC20FailsIfNotCustoryOrConnector() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestRevertWithERC20FailsIfNotCustoryOrConnector(&_GatewayEVMTest.TransactOpts) +} + +// TestRevertWithERC20FailsIfNotCustoryOrConnector is a paid mutator transaction binding the contract method 0x2206eb65. +// +// Solidity: function testRevertWithERC20FailsIfNotCustoryOrConnector() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestRevertWithERC20FailsIfNotCustoryOrConnector() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestRevertWithERC20FailsIfNotCustoryOrConnector(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawAndRevertThroughCustody is a paid mutator transaction binding the contract method 0x71149c94. +// +// Solidity: function testWithdrawAndRevertThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestWithdrawAndRevertThroughCustody(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testWithdrawAndRevertThroughCustody") +} + +// TestWithdrawAndRevertThroughCustody is a paid mutator transaction binding the contract method 0x71149c94. +// +// Solidity: function testWithdrawAndRevertThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestWithdrawAndRevertThroughCustody() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawAndRevertThroughCustody(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawAndRevertThroughCustody is a paid mutator transaction binding the contract method 0x71149c94. +// +// Solidity: function testWithdrawAndRevertThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestWithdrawAndRevertThroughCustody() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawAndRevertThroughCustody(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawAndRevertThroughCustodyFailsIfAmountIs0 is a paid mutator transaction binding the contract method 0xeb1ce7f9. +// +// Solidity: function testWithdrawAndRevertThroughCustodyFailsIfAmountIs0() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestWithdrawAndRevertThroughCustodyFailsIfAmountIs0(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testWithdrawAndRevertThroughCustodyFailsIfAmountIs0") +} + +// TestWithdrawAndRevertThroughCustodyFailsIfAmountIs0 is a paid mutator transaction binding the contract method 0xeb1ce7f9. +// +// Solidity: function testWithdrawAndRevertThroughCustodyFailsIfAmountIs0() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestWithdrawAndRevertThroughCustodyFailsIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawAndRevertThroughCustodyFailsIfAmountIs0(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawAndRevertThroughCustodyFailsIfAmountIs0 is a paid mutator transaction binding the contract method 0xeb1ce7f9. +// +// Solidity: function testWithdrawAndRevertThroughCustodyFailsIfAmountIs0() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestWithdrawAndRevertThroughCustodyFailsIfAmountIs0() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawAndRevertThroughCustodyFailsIfAmountIs0(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0xbcd9925e. +// +// Solidity: function testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS") +} + +// TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0xbcd9925e. +// +// Solidity: function testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0xbcd9925e. +// +// Solidity: function testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawThroughCustody is a paid mutator transaction binding the contract method 0x3e73ecb4. +// +// Solidity: function testWithdrawThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestWithdrawThroughCustody(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testWithdrawThroughCustody") +} + +// TestWithdrawThroughCustody is a paid mutator transaction binding the contract method 0x3e73ecb4. +// +// Solidity: function testWithdrawThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestWithdrawThroughCustody() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawThroughCustody(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawThroughCustody is a paid mutator transaction binding the contract method 0x3e73ecb4. +// +// Solidity: function testWithdrawThroughCustody() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestWithdrawThroughCustody() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawThroughCustody(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x766d0ded. +// +// Solidity: function testWithdrawThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestWithdrawThroughCustodyFailsIfSenderIsNotTSS(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testWithdrawThroughCustodyFailsIfSenderIsNotTSS") +} + +// TestWithdrawThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x766d0ded. +// +// Solidity: function testWithdrawThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestWithdrawThroughCustodyFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawThroughCustodyFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawThroughCustodyFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x766d0ded. +// +// Solidity: function testWithdrawThroughCustodyFailsIfSenderIsNotTSS() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestWithdrawThroughCustodyFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawThroughCustodyFailsIfSenderIsNotTSS(&_GatewayEVMTest.TransactOpts) +} + +// GatewayEVMTestCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the GatewayEVMTest contract. +type GatewayEVMTestCallIterator struct { + Event *GatewayEVMTestCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestCall represents a Call event raised by the GatewayEVMTest contract. +type GatewayEVMTestCall struct { + Sender common.Address + Receiver common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMTestCallIterator{contract: _GatewayEVMTest.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestCall, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestCall) + if err := _GatewayEVMTest.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseCall(log types.Log) (*GatewayEVMTestCall, error) { + event := new(GatewayEVMTestCall) + if err := _GatewayEVMTest.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the GatewayEVMTest contract. +type GatewayEVMTestDepositIterator struct { + Event *GatewayEVMTestDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestDeposit represents a Deposit event raised by the GatewayEVMTest contract. +type GatewayEVMTestDeposit struct { + Sender common.Address + Receiver common.Address + Amount *big.Int + Asset common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterDeposit(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMTestDepositIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMTestDepositIterator{contract: _GatewayEVMTest.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestDeposit, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestDeposit) + if err := _GatewayEVMTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseDeposit(log types.Log) (*GatewayEVMTestDeposit, error) { + event := new(GatewayEVMTestDeposit) + if err := _GatewayEVMTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestExecutedIterator is returned from FilterExecuted and is used to iterate over the raw logs and unpacked data for Executed events raised by the GatewayEVMTest contract. +type GatewayEVMTestExecutedIterator struct { + Event *GatewayEVMTestExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestExecuted represents a Executed event raised by the GatewayEVMTest contract. +type GatewayEVMTestExecuted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMTestExecutedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMTestExecutedIterator{contract: _GatewayEVMTest.contract, event: "Executed", logs: logs, sub: sub}, nil +} + +// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchExecuted(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestExecuted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestExecuted) + if err := _GatewayEVMTest.contract.UnpackLog(event, "Executed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseExecuted(log types.Log) (*GatewayEVMTestExecuted, error) { + event := new(GatewayEVMTestExecuted) + if err := _GatewayEVMTest.contract.UnpackLog(event, "Executed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestExecutedWithERC20Iterator is returned from FilterExecutedWithERC20 and is used to iterate over the raw logs and unpacked data for ExecutedWithERC20 events raised by the GatewayEVMTest contract. +type GatewayEVMTestExecutedWithERC20Iterator struct { + Event *GatewayEVMTestExecutedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestExecutedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestExecutedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestExecutedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestExecutedWithERC20 represents a ExecutedWithERC20 event raised by the GatewayEVMTest contract. +type GatewayEVMTestExecutedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterExecutedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMTestExecutedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMTestExecutedWithERC20Iterator{contract: _GatewayEVMTest.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchExecutedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestExecutedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestExecutedWithERC20) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseExecutedWithERC20(log types.Log) (*GatewayEVMTestExecutedWithERC20, error) { + event := new(GatewayEVMTestExecutedWithERC20) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestReceivedERC20Iterator is returned from FilterReceivedERC20 and is used to iterate over the raw logs and unpacked data for ReceivedERC20 events raised by the GatewayEVMTest contract. +type GatewayEVMTestReceivedERC20Iterator struct { + Event *GatewayEVMTestReceivedERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestReceivedERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestReceivedERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestReceivedERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestReceivedERC20 represents a ReceivedERC20 event raised by the GatewayEVMTest contract. +type GatewayEVMTestReceivedERC20 struct { + Sender common.Address + Amount *big.Int + Token common.Address + Destination common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedERC20 is a free log retrieval operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterReceivedERC20(opts *bind.FilterOpts) (*GatewayEVMTestReceivedERC20Iterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return &GatewayEVMTestReceivedERC20Iterator{contract: _GatewayEVMTest.contract, event: "ReceivedERC20", logs: logs, sub: sub}, nil +} + +// WatchReceivedERC20 is a free log subscription operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchReceivedERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestReceivedERC20) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestReceivedERC20) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedERC20 is a log parse operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseReceivedERC20(log types.Log) (*GatewayEVMTestReceivedERC20, error) { + event := new(GatewayEVMTestReceivedERC20) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestReceivedNoParamsIterator is returned from FilterReceivedNoParams and is used to iterate over the raw logs and unpacked data for ReceivedNoParams events raised by the GatewayEVMTest contract. +type GatewayEVMTestReceivedNoParamsIterator struct { + Event *GatewayEVMTestReceivedNoParams // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestReceivedNoParamsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestReceivedNoParamsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestReceivedNoParamsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestReceivedNoParams represents a ReceivedNoParams event raised by the GatewayEVMTest contract. +type GatewayEVMTestReceivedNoParams struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNoParams is a free log retrieval operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterReceivedNoParams(opts *bind.FilterOpts) (*GatewayEVMTestReceivedNoParamsIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return &GatewayEVMTestReceivedNoParamsIterator{contract: _GatewayEVMTest.contract, event: "ReceivedNoParams", logs: logs, sub: sub}, nil +} + +// WatchReceivedNoParams is a free log subscription operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchReceivedNoParams(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestReceivedNoParams) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestReceivedNoParams) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNoParams is a log parse operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseReceivedNoParams(log types.Log) (*GatewayEVMTestReceivedNoParams, error) { + event := new(GatewayEVMTestReceivedNoParams) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestReceivedNonPayableIterator is returned from FilterReceivedNonPayable and is used to iterate over the raw logs and unpacked data for ReceivedNonPayable events raised by the GatewayEVMTest contract. +type GatewayEVMTestReceivedNonPayableIterator struct { + Event *GatewayEVMTestReceivedNonPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestReceivedNonPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestReceivedNonPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestReceivedNonPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestReceivedNonPayable represents a ReceivedNonPayable event raised by the GatewayEVMTest contract. +type GatewayEVMTestReceivedNonPayable struct { + Sender common.Address + Strs []string + Nums []*big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNonPayable is a free log retrieval operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterReceivedNonPayable(opts *bind.FilterOpts) (*GatewayEVMTestReceivedNonPayableIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return &GatewayEVMTestReceivedNonPayableIterator{contract: _GatewayEVMTest.contract, event: "ReceivedNonPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedNonPayable is a free log subscription operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchReceivedNonPayable(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestReceivedNonPayable) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestReceivedNonPayable) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNonPayable is a log parse operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseReceivedNonPayable(log types.Log) (*GatewayEVMTestReceivedNonPayable, error) { + event := new(GatewayEVMTestReceivedNonPayable) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestReceivedPayableIterator is returned from FilterReceivedPayable and is used to iterate over the raw logs and unpacked data for ReceivedPayable events raised by the GatewayEVMTest contract. +type GatewayEVMTestReceivedPayableIterator struct { + Event *GatewayEVMTestReceivedPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestReceivedPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestReceivedPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestReceivedPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestReceivedPayable represents a ReceivedPayable event raised by the GatewayEVMTest contract. +type GatewayEVMTestReceivedPayable struct { + Sender common.Address + Value *big.Int + Str string + Num *big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedPayable is a free log retrieval operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterReceivedPayable(opts *bind.FilterOpts) (*GatewayEVMTestReceivedPayableIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return &GatewayEVMTestReceivedPayableIterator{contract: _GatewayEVMTest.contract, event: "ReceivedPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedPayable is a free log subscription operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchReceivedPayable(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestReceivedPayable) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestReceivedPayable) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedPayable is a log parse operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseReceivedPayable(log types.Log) (*GatewayEVMTestReceivedPayable, error) { + event := new(GatewayEVMTestReceivedPayable) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestReceivedRevertIterator is returned from FilterReceivedRevert and is used to iterate over the raw logs and unpacked data for ReceivedRevert events raised by the GatewayEVMTest contract. +type GatewayEVMTestReceivedRevertIterator struct { + Event *GatewayEVMTestReceivedRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestReceivedRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestReceivedRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestReceivedRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestReceivedRevert represents a ReceivedRevert event raised by the GatewayEVMTest contract. +type GatewayEVMTestReceivedRevert struct { + Sender common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedRevert is a free log retrieval operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterReceivedRevert(opts *bind.FilterOpts) (*GatewayEVMTestReceivedRevertIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return &GatewayEVMTestReceivedRevertIterator{contract: _GatewayEVMTest.contract, event: "ReceivedRevert", logs: logs, sub: sub}, nil +} + +// WatchReceivedRevert is a free log subscription operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchReceivedRevert(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestReceivedRevert) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestReceivedRevert) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedRevert is a log parse operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseReceivedRevert(log types.Log) (*GatewayEVMTestReceivedRevert, error) { + event := new(GatewayEVMTestReceivedRevert) + if err := _GatewayEVMTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestRevertedIterator is returned from FilterReverted and is used to iterate over the raw logs and unpacked data for Reverted events raised by the GatewayEVMTest contract. +type GatewayEVMTestRevertedIterator struct { + Event *GatewayEVMTestReverted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestRevertedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestRevertedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestRevertedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestReverted represents a Reverted event raised by the GatewayEVMTest contract. +type GatewayEVMTestReverted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMTestRevertedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMTestRevertedIterator{contract: _GatewayEVMTest.contract, event: "Reverted", logs: logs, sub: sub}, nil +} + +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchReverted(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestReverted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestReverted) + if err := _GatewayEVMTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseReverted(log types.Log) (*GatewayEVMTestReverted, error) { + event := new(GatewayEVMTestReverted) + if err := _GatewayEVMTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestRevertedWithERC20Iterator is returned from FilterRevertedWithERC20 and is used to iterate over the raw logs and unpacked data for RevertedWithERC20 events raised by the GatewayEVMTest contract. +type GatewayEVMTestRevertedWithERC20Iterator struct { + Event *GatewayEVMTestRevertedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestRevertedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestRevertedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestRevertedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestRevertedWithERC20 represents a RevertedWithERC20 event raised by the GatewayEVMTest contract. +type GatewayEVMTestRevertedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterRevertedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMTestRevertedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMTestRevertedWithERC20Iterator{contract: _GatewayEVMTest.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchRevertedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestRevertedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestRevertedWithERC20) + if err := _GatewayEVMTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseRevertedWithERC20(log types.Log) (*GatewayEVMTestRevertedWithERC20, error) { + event := new(GatewayEVMTestRevertedWithERC20) + if err := _GatewayEVMTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the GatewayEVMTest contract. +type GatewayEVMTestWithdrawIterator struct { + Event *GatewayEVMTestWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestWithdraw represents a Withdraw event raised by the GatewayEVMTest contract. +type GatewayEVMTestWithdraw struct { + Token common.Address + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterWithdraw(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMTestWithdrawIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMTestWithdrawIterator{contract: _GatewayEVMTest.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestWithdraw, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestWithdraw) + if err := _GatewayEVMTest.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseWithdraw(log types.Log) (*GatewayEVMTestWithdraw, error) { + event := new(GatewayEVMTestWithdraw) + if err := _GatewayEVMTest.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the GatewayEVMTest contract. +type GatewayEVMTestWithdrawAndCallIterator struct { + Event *GatewayEVMTestWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestWithdrawAndCall represents a WithdrawAndCall event raised by the GatewayEVMTest contract. +type GatewayEVMTestWithdrawAndCall struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndCall is a free log retrieval operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMTestWithdrawAndCallIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMTestWithdrawAndCallIterator{contract: _GatewayEVMTest.contract, event: "WithdrawAndCall", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndCall is a free log subscription operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestWithdrawAndCall, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestWithdrawAndCall) + if err := _GatewayEVMTest.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndCall is a log parse operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseWithdrawAndCall(log types.Log) (*GatewayEVMTestWithdrawAndCall, error) { + event := new(GatewayEVMTestWithdrawAndCall) + if err := _GatewayEVMTest.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the GatewayEVMTest contract. +type GatewayEVMTestWithdrawAndRevertIterator struct { + Event *GatewayEVMTestWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestWithdrawAndRevert represents a WithdrawAndRevert event raised by the GatewayEVMTest contract. +type GatewayEVMTestWithdrawAndRevert struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndRevert is a free log retrieval operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMTestWithdrawAndRevertIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMTestWithdrawAndRevertIterator{contract: _GatewayEVMTest.contract, event: "WithdrawAndRevert", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndRevert is a free log subscription operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestWithdrawAndRevert, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestWithdrawAndRevert) + if err := _GatewayEVMTest.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndRevert is a log parse operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseWithdrawAndRevert(log types.Log) (*GatewayEVMTestWithdrawAndRevert, error) { + event := new(GatewayEVMTestWithdrawAndRevert) + if err := _GatewayEVMTest.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogIterator is returned from FilterLog and is used to iterate over the raw logs and unpacked data for Log events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogIterator struct { + Event *GatewayEVMTestLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLog represents a Log event raised by the GatewayEVMTest contract. +type GatewayEVMTestLog struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLog is a free log retrieval operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLog(opts *bind.FilterOpts) (*GatewayEVMTestLogIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogIterator{contract: _GatewayEVMTest.contract, event: "log", logs: logs, sub: sub}, nil +} + +// WatchLog is a free log subscription operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLog(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLog) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLog) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLog is a log parse operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLog(log types.Log) (*GatewayEVMTestLog, error) { + event := new(GatewayEVMTestLog) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogAddressIterator is returned from FilterLogAddress and is used to iterate over the raw logs and unpacked data for LogAddress events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogAddressIterator struct { + Event *GatewayEVMTestLogAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogAddress represents a LogAddress event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogAddress struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAddress is a free log retrieval operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogAddress(opts *bind.FilterOpts) (*GatewayEVMTestLogAddressIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_address") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogAddressIterator{contract: _GatewayEVMTest.contract, event: "log_address", logs: logs, sub: sub}, nil +} + +// WatchLogAddress is a free log subscription operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogAddress(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogAddress) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogAddress is a log parse operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogAddress(log types.Log) (*GatewayEVMTestLogAddress, error) { + event := new(GatewayEVMTestLogAddress) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogArrayIterator is returned from FilterLogArray and is used to iterate over the raw logs and unpacked data for LogArray events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogArrayIterator struct { + Event *GatewayEVMTestLogArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogArray represents a LogArray event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogArray struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray is a free log retrieval operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogArray(opts *bind.FilterOpts) (*GatewayEVMTestLogArrayIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_array") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogArrayIterator{contract: _GatewayEVMTest.contract, event: "log_array", logs: logs, sub: sub}, nil +} + +// WatchLogArray is a free log subscription operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogArray(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogArray) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogArray) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray is a log parse operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogArray(log types.Log) (*GatewayEVMTestLogArray, error) { + event := new(GatewayEVMTestLogArray) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogArray0Iterator is returned from FilterLogArray0 and is used to iterate over the raw logs and unpacked data for LogArray0 events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogArray0Iterator struct { + Event *GatewayEVMTestLogArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogArray0 represents a LogArray0 event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogArray0 struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray0 is a free log retrieval operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogArray0(opts *bind.FilterOpts) (*GatewayEVMTestLogArray0Iterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogArray0Iterator{contract: _GatewayEVMTest.contract, event: "log_array0", logs: logs, sub: sub}, nil +} + +// WatchLogArray0 is a free log subscription operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogArray0(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogArray0) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray0 is a log parse operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogArray0(log types.Log) (*GatewayEVMTestLogArray0, error) { + event := new(GatewayEVMTestLogArray0) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogArray1Iterator is returned from FilterLogArray1 and is used to iterate over the raw logs and unpacked data for LogArray1 events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogArray1Iterator struct { + Event *GatewayEVMTestLogArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogArray1 represents a LogArray1 event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogArray1 struct { + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray1 is a free log retrieval operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogArray1(opts *bind.FilterOpts) (*GatewayEVMTestLogArray1Iterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogArray1Iterator{contract: _GatewayEVMTest.contract, event: "log_array1", logs: logs, sub: sub}, nil +} + +// WatchLogArray1 is a free log subscription operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogArray1(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogArray1) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray1 is a log parse operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogArray1(log types.Log) (*GatewayEVMTestLogArray1, error) { + event := new(GatewayEVMTestLogArray1) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogBytesIterator is returned from FilterLogBytes and is used to iterate over the raw logs and unpacked data for LogBytes events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogBytesIterator struct { + Event *GatewayEVMTestLogBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogBytes represents a LogBytes event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogBytes struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes is a free log retrieval operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogBytes(opts *bind.FilterOpts) (*GatewayEVMTestLogBytesIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogBytesIterator{contract: _GatewayEVMTest.contract, event: "log_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogBytes is a free log subscription operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogBytes(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogBytes) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes is a log parse operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogBytes(log types.Log) (*GatewayEVMTestLogBytes, error) { + event := new(GatewayEVMTestLogBytes) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogBytes32Iterator is returned from FilterLogBytes32 and is used to iterate over the raw logs and unpacked data for LogBytes32 events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogBytes32Iterator struct { + Event *GatewayEVMTestLogBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogBytes32 represents a LogBytes32 event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogBytes32 struct { + Arg0 [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes32 is a free log retrieval operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogBytes32(opts *bind.FilterOpts) (*GatewayEVMTestLogBytes32Iterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogBytes32Iterator{contract: _GatewayEVMTest.contract, event: "log_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogBytes32 is a free log subscription operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogBytes32(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogBytes32) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes32 is a log parse operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogBytes32(log types.Log) (*GatewayEVMTestLogBytes32, error) { + event := new(GatewayEVMTestLogBytes32) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogIntIterator is returned from FilterLogInt and is used to iterate over the raw logs and unpacked data for LogInt events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogIntIterator struct { + Event *GatewayEVMTestLogInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogInt represents a LogInt event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogInt struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogInt is a free log retrieval operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogInt(opts *bind.FilterOpts) (*GatewayEVMTestLogIntIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_int") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogIntIterator{contract: _GatewayEVMTest.contract, event: "log_int", logs: logs, sub: sub}, nil +} + +// WatchLogInt is a free log subscription operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogInt) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogInt is a log parse operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogInt(log types.Log) (*GatewayEVMTestLogInt, error) { + event := new(GatewayEVMTestLogInt) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedAddressIterator is returned from FilterLogNamedAddress and is used to iterate over the raw logs and unpacked data for LogNamedAddress events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedAddressIterator struct { + Event *GatewayEVMTestLogNamedAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedAddress represents a LogNamedAddress event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedAddress struct { + Key string + Val common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedAddress is a free log retrieval operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedAddress(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedAddressIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedAddressIterator{contract: _GatewayEVMTest.contract, event: "log_named_address", logs: logs, sub: sub}, nil +} + +// WatchLogNamedAddress is a free log subscription operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedAddress(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedAddress) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedAddress is a log parse operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedAddress(log types.Log) (*GatewayEVMTestLogNamedAddress, error) { + event := new(GatewayEVMTestLogNamedAddress) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedArrayIterator is returned from FilterLogNamedArray and is used to iterate over the raw logs and unpacked data for LogNamedArray events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedArrayIterator struct { + Event *GatewayEVMTestLogNamedArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedArray represents a LogNamedArray event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedArray struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray is a free log retrieval operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedArray(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedArrayIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedArrayIterator{contract: _GatewayEVMTest.contract, event: "log_named_array", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray is a free log subscription operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedArray(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedArray) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedArray) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray is a log parse operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedArray(log types.Log) (*GatewayEVMTestLogNamedArray, error) { + event := new(GatewayEVMTestLogNamedArray) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedArray0Iterator is returned from FilterLogNamedArray0 and is used to iterate over the raw logs and unpacked data for LogNamedArray0 events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedArray0Iterator struct { + Event *GatewayEVMTestLogNamedArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedArray0 represents a LogNamedArray0 event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedArray0 struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray0 is a free log retrieval operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedArray0(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedArray0Iterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedArray0Iterator{contract: _GatewayEVMTest.contract, event: "log_named_array0", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray0 is a free log subscription operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedArray0(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedArray0) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray0 is a log parse operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedArray0(log types.Log) (*GatewayEVMTestLogNamedArray0, error) { + event := new(GatewayEVMTestLogNamedArray0) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedArray1Iterator is returned from FilterLogNamedArray1 and is used to iterate over the raw logs and unpacked data for LogNamedArray1 events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedArray1Iterator struct { + Event *GatewayEVMTestLogNamedArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedArray1 represents a LogNamedArray1 event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedArray1 struct { + Key string + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray1 is a free log retrieval operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedArray1(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedArray1Iterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedArray1Iterator{contract: _GatewayEVMTest.contract, event: "log_named_array1", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray1 is a free log subscription operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedArray1(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedArray1) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray1 is a log parse operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedArray1(log types.Log) (*GatewayEVMTestLogNamedArray1, error) { + event := new(GatewayEVMTestLogNamedArray1) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedBytesIterator is returned from FilterLogNamedBytes and is used to iterate over the raw logs and unpacked data for LogNamedBytes events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedBytesIterator struct { + Event *GatewayEVMTestLogNamedBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedBytes represents a LogNamedBytes event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedBytes struct { + Key string + Val []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes is a free log retrieval operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedBytes(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedBytesIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedBytesIterator{contract: _GatewayEVMTest.contract, event: "log_named_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes is a free log subscription operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedBytes(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedBytes) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes is a log parse operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedBytes(log types.Log) (*GatewayEVMTestLogNamedBytes, error) { + event := new(GatewayEVMTestLogNamedBytes) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedBytes32Iterator is returned from FilterLogNamedBytes32 and is used to iterate over the raw logs and unpacked data for LogNamedBytes32 events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedBytes32Iterator struct { + Event *GatewayEVMTestLogNamedBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedBytes32 represents a LogNamedBytes32 event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedBytes32 struct { + Key string + Val [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes32 is a free log retrieval operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedBytes32(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedBytes32Iterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedBytes32Iterator{contract: _GatewayEVMTest.contract, event: "log_named_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes32 is a free log subscription operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedBytes32(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedBytes32) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes32 is a log parse operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedBytes32(log types.Log) (*GatewayEVMTestLogNamedBytes32, error) { + event := new(GatewayEVMTestLogNamedBytes32) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedDecimalIntIterator is returned from FilterLogNamedDecimalInt and is used to iterate over the raw logs and unpacked data for LogNamedDecimalInt events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedDecimalIntIterator struct { + Event *GatewayEVMTestLogNamedDecimalInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedDecimalIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedDecimalIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedDecimalIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedDecimalInt represents a LogNamedDecimalInt event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedDecimalInt struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalInt is a free log retrieval operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedDecimalInt(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedDecimalIntIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedDecimalIntIterator{contract: _GatewayEVMTest.contract, event: "log_named_decimal_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalInt is a free log subscription operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedDecimalInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedDecimalInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedDecimalInt) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalInt is a log parse operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedDecimalInt(log types.Log) (*GatewayEVMTestLogNamedDecimalInt, error) { + event := new(GatewayEVMTestLogNamedDecimalInt) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedDecimalUintIterator is returned from FilterLogNamedDecimalUint and is used to iterate over the raw logs and unpacked data for LogNamedDecimalUint events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedDecimalUintIterator struct { + Event *GatewayEVMTestLogNamedDecimalUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedDecimalUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedDecimalUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedDecimalUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedDecimalUint represents a LogNamedDecimalUint event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedDecimalUint struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalUint is a free log retrieval operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedDecimalUint(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedDecimalUintIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedDecimalUintIterator{contract: _GatewayEVMTest.contract, event: "log_named_decimal_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalUint is a free log subscription operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedDecimalUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedDecimalUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedDecimalUint) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalUint is a log parse operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedDecimalUint(log types.Log) (*GatewayEVMTestLogNamedDecimalUint, error) { + event := new(GatewayEVMTestLogNamedDecimalUint) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedIntIterator is returned from FilterLogNamedInt and is used to iterate over the raw logs and unpacked data for LogNamedInt events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedIntIterator struct { + Event *GatewayEVMTestLogNamedInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedInt represents a LogNamedInt event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedInt struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedInt is a free log retrieval operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedInt(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedIntIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedIntIterator{contract: _GatewayEVMTest.contract, event: "log_named_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedInt is a free log subscription operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedInt) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedInt is a log parse operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedInt(log types.Log) (*GatewayEVMTestLogNamedInt, error) { + event := new(GatewayEVMTestLogNamedInt) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedStringIterator is returned from FilterLogNamedString and is used to iterate over the raw logs and unpacked data for LogNamedString events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedStringIterator struct { + Event *GatewayEVMTestLogNamedString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedString represents a LogNamedString event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedString struct { + Key string + Val string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedString is a free log retrieval operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedString(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedStringIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedStringIterator{contract: _GatewayEVMTest.contract, event: "log_named_string", logs: logs, sub: sub}, nil +} + +// WatchLogNamedString is a free log subscription operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedString(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedString) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedString) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedString is a log parse operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedString(log types.Log) (*GatewayEVMTestLogNamedString, error) { + event := new(GatewayEVMTestLogNamedString) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogNamedUintIterator is returned from FilterLogNamedUint and is used to iterate over the raw logs and unpacked data for LogNamedUint events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedUintIterator struct { + Event *GatewayEVMTestLogNamedUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogNamedUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogNamedUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogNamedUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogNamedUint represents a LogNamedUint event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogNamedUint struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedUint is a free log retrieval operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogNamedUint(opts *bind.FilterOpts) (*GatewayEVMTestLogNamedUintIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogNamedUintIterator{contract: _GatewayEVMTest.contract, event: "log_named_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedUint is a free log subscription operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogNamedUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogNamedUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogNamedUint) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedUint is a log parse operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogNamedUint(log types.Log) (*GatewayEVMTestLogNamedUint, error) { + event := new(GatewayEVMTestLogNamedUint) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogStringIterator is returned from FilterLogString and is used to iterate over the raw logs and unpacked data for LogString events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogStringIterator struct { + Event *GatewayEVMTestLogString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogString represents a LogString event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogString struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogString is a free log retrieval operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogString(opts *bind.FilterOpts) (*GatewayEVMTestLogStringIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_string") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogStringIterator{contract: _GatewayEVMTest.contract, event: "log_string", logs: logs, sub: sub}, nil +} + +// WatchLogString is a free log subscription operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogString(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogString) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogString) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogString is a log parse operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogString(log types.Log) (*GatewayEVMTestLogString, error) { + event := new(GatewayEVMTestLogString) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogUintIterator is returned from FilterLogUint and is used to iterate over the raw logs and unpacked data for LogUint events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogUintIterator struct { + Event *GatewayEVMTestLogUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogUint represents a LogUint event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogUint struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogUint is a free log retrieval operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogUint(opts *bind.FilterOpts) (*GatewayEVMTestLogUintIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogUintIterator{contract: _GatewayEVMTest.contract, event: "log_uint", logs: logs, sub: sub}, nil +} + +// WatchLogUint is a free log subscription operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogUint) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogUint is a log parse operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogUint(log types.Log) (*GatewayEVMTestLogUint, error) { + event := new(GatewayEVMTestLogUint) + if err := _GatewayEVMTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMTestLogsIterator is returned from FilterLogs and is used to iterate over the raw logs and unpacked data for Logs events raised by the GatewayEVMTest contract. +type GatewayEVMTestLogsIterator struct { + Event *GatewayEVMTestLogs // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMTestLogsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMTestLogsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMTestLogsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMTestLogs represents a Logs event raised by the GatewayEVMTest contract. +type GatewayEVMTestLogs struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogs is a free log retrieval operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) FilterLogs(opts *bind.FilterOpts) (*GatewayEVMTestLogsIterator, error) { + + logs, sub, err := _GatewayEVMTest.contract.FilterLogs(opts, "logs") + if err != nil { + return nil, err + } + return &GatewayEVMTestLogsIterator{contract: _GatewayEVMTest.contract, event: "logs", logs: logs, sub: sub}, nil +} + +// WatchLogs is a free log subscription operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) WatchLogs(opts *bind.WatchOpts, sink chan<- *GatewayEVMTestLogs) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMTest.contract.WatchLogs(opts, "logs") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMTestLogs) + if err := _GatewayEVMTest.contract.UnpackLog(event, "logs", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogs is a log parse operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMTest *GatewayEVMTestFilterer) ParseLogs(log types.Log) (*GatewayEVMTestLogs, error) { + event := new(GatewayEVMTestLogs) + if err := _GatewayEVMTest.contract.UnpackLog(event, "logs", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/gatewayevmechidnatest.sol/gatewayevmechidnatest.go b/v2/pkg/gatewayevmechidnatest.sol/gatewayevmechidnatest.go new file mode 100644 index 00000000..d919fd17 --- /dev/null +++ b/v2/pkg/gatewayevmechidnatest.sol/gatewayevmechidnatest.go @@ -0,0 +1,2161 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package gatewayevmechidnatest + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// GatewayEVMEchidnaTestMetaData contains all meta data concerning the GatewayEVMEchidnaTest contract. +var GatewayEVMEchidnaTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"UPGRADE_INTERFACE_VERSION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"call\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"custody\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositAndCall\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"depositAndCall\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"echidnaCaller\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"execute\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"executeRevert\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"executeWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_tssAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_zetaToken\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proxiableUUID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revertWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setConnector\",\"inputs\":[{\"name\":\"_zetaConnector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setCustody\",\"inputs\":[{\"name\":\"_custody\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testERC20\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractTestERC20\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"testExecuteWithERC20\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"upgradeToAndCall\",\"inputs\":[{\"name\":\"newImplementation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"zetaConnector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"zetaToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Executed\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Reverted\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RevertedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ERC1967InvalidImplementation\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967NonPayable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"UUPSUnauthorizedCallContext\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UUPSUnsupportedProxiableUUID\",\"inputs\":[{\"name\":\"slot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x60a060405230608052600580546001600160a01b0319163317905534801561002657600080fd5b5061002f610149565b600554600180546001600160a01b039092166001600160a01b031992831617905560028054610123921691909117905560405161006b906101fb565b60408082526004908201819052631d195cdd60e21b606083015260806020830181905282015263151154d560e21b60a082015260c001604051809103906000f0801580156100bd573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b03928316179055600154604051309291909116906100f090610208565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015610123573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055610215565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156101995760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101f85780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610c9f80612a3f83390190565b610b4a806136de83390190565b60805161280161023e600039600081816116ad015281816116d60152611b1c01526128016000f3fe6080604052600436106101965760003560e01c80635b112591116100e1578063ad3cb1cc1161008a578063dda79b7511610064578063dda79b7514610475578063f2fde38b14610495578063f340fa01146104b5578063f45346dc146104c857600080fd5b8063ad3cb1cc146103ec578063ae7a3a6f14610435578063b8969bd41461045557600080fd5b806381100bf0116100bb57806381100bf01461036f5780638c6f037f1461038f5780638da5cb5b146103af57600080fd5b80635b1125911461031a5780636ab90f9b1461033a578063715018a61461035a57600080fd5b80633c2f05a8116101435780635131ab591161011d5780635131ab59146102b757806352d1902d146102d757806357bec62f146102fa57600080fd5b80633c2f05a814610264578063485cc955146102845780634f1ef286146102a457600080fd5b806321e093b11161017457806321e093b11461020657806329c59b5d1461023e57806335c018db1461025157600080fd5b806310188aef1461019b5780631b8b921d146101bd5780631cff79cd146101dd575b600080fd5b3480156101a757600080fd5b506101bb6101b6366004612295565b6104e8565b005b3480156101c957600080fd5b506101bb6101d83660046122f9565b6105e9565b6101f06101eb3660046122f9565b61063b565b6040516101fd91906123ba565b60405180910390f35b34801561021257600080fd5b50600354610226906001600160a01b031681565b6040516001600160a01b0390911681526020016101fd565b6101bb61024c3660046122f9565b6106e0565b6101bb61025f3660046122f9565b610805565b34801561027057600080fd5b50600454610226906001600160a01b031681565b34801561029057600080fd5b506101bb61029f3660046123cd565b61099d565b6101bb6102b236600461242f565b610bca565b3480156102c357600080fd5b506101bb6102d2366004612536565b610be9565b3480156102e357600080fd5b506102ec610ef0565b6040519081526020016101fd565b34801561030657600080fd5b50600254610226906001600160a01b031681565b34801561032657600080fd5b50600154610226906001600160a01b031681565b34801561034657600080fd5b506101bb6103553660046125a5565b610f1f565b34801561036657600080fd5b506101bb611050565b34801561037b57600080fd5b50600554610226906001600160a01b031681565b34801561039b57600080fd5b506101bb6103aa3660046125ff565b611064565b3480156103bb57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610226565b3480156103f857600080fd5b506101f06040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b34801561044157600080fd5b506101bb610450366004612295565b611101565b34801561046157600080fd5b506101bb610470366004612536565b611202565b34801561048157600080fd5b50600054610226906001600160a01b031681565b3480156104a157600080fd5b506101bb6104b0366004612295565b6113a6565b6101bb6104c3366004612295565b611402565b3480156104d457600080fd5b506101bb6104e3366004612651565b611527565b6001546001600160a01b0316331461052c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546001600160a01b03161561056f576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166105af576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3848460405161062e9291906126d6565b60405180910390a3505050565b6001546060906001600160a01b03163314610682576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061068f8585856115d2565b9050846001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f3486866040516106ce939291906126f2565b60405180910390a290505b9392505050565b3460000361071a576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d8060008114610767576040519150601f19603f3d011682016040523d82523d6000602084013e61076c565b606091505b50909150508015156000036107ad576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600087876040516107f7949392919061270c565b60405180910390a350505050565b6001546001600160a01b03163314610849576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080846001600160a01b03163460405160006040518083038185875af1925050503d8060008114610897576040519150601f19603f3d011682016040523d82523d6000602084013e61089c565b606091505b5091509150816108d8576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b59061091f90879087906004016126d6565b600060405180830381600087803b15801561093957600080fd5b505af115801561094d573d6000803e3d6000fd5b50505050846001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c34868660405161098e939291906126f2565b60405180910390a25050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109e85750825b905060008267ffffffffffffffff166001148015610a055750303b155b905081158015610a13575080155b15610a4a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610aab5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b0387161580610ac857506001600160a01b038616155b15610aff576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b0833611679565b610b1061168a565b610b18611692565b600180546001600160a01b03808a167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560038054928916929091169190911790558315610bc15784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610bd26116a2565b610bdb82611772565b610be5828261177a565b5050565b610bf161189e565b6000546001600160a01b03163314801590610c1757506002546001600160a01b03163314155b15610c4e576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003610c88576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c92858561191f565b610cc8576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905286169063095ea7b3906044016020604051808303816000875af1158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d549190612735565b610d8a576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d978584846115d2565b9050610da3868661191f565b610dd9576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190612757565b90508015610e6f57610e6f87826119af565b856001600160a01b0316876001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382878787604051610eb6939291906126f2565b60405180910390a35050610ee960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6000610efa611b11565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b600480546040517f40c10f190000000000000000000000000000000000000000000000000000000081523092810192909252602482018590526001600160a01b0316906340c10f1990604401600060405180830381600087803b158015610f8557600080fd5b505af1158015610f99573d6000803e3d6000fd5b5050600454610fb792506001600160a01b0316905085858585610be9565b600480546040517f70a0823100000000000000000000000000000000000000000000000000000000815230928101929092526001600160a01b0316906370a0823190602401602060405180830381865afa158015611019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103d9190612757565b1561104a5761104a612770565b50505050565b611058611b73565b6110626000611be7565b565b8360000361109e576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110a9338486611c70565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4868686866040516110f2949392919061270c565b60405180910390a35050505050565b6001546001600160a01b03163314611145576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b031615611188576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166111c8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61120a61189e565b6000546001600160a01b0316331480159061123057506002546001600160a01b03163314155b15611267576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826000036112a1576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112b56001600160a01b0386168585611dbb565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638fcaa0b5906112fc90859085906004016126d6565b600060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7858585604051611375939291906126f2565b60405180910390a3610ee960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6113ae611b73565b6001600160a01b0381166113f6576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6113ff81611be7565b50565b3460000361143c576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d8060008114611489576040519150601f19603f3d011682016040523d82523d6000602084013e61148e565b606091505b50909150508015156000036114cf576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b81600003611561576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61156c338284611c70565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4848460405161062e9291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b6060600080856001600160a01b03163486866040516115f292919061279f565b60006040518083038185875af1925050503d806000811461162f576040519150601f19603f3d011682016040523d82523d6000602084013e611634565b606091505b509150915081611670576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b95945050505050565b611681611e2f565b6113ff81611e96565b611062611e2f565b61169a611e2f565b611062611e9e565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061173b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661172f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15611062576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ff611b73565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156117f2575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526117ef91810190612757565b60015b611833576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016113ed565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461188f576040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600481018290526024016113ed565b6118998383611ea6565b505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611919576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af115801561198b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d99190612735565b6003546001600160a01b0390811690831603611ad1576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a559190612735565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611ab557600080fd5b505af1158015611ac9573d6000803e3d6000fd5b505050505050565b600054610be5906001600160a01b03848116911683611dbb565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611062576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33611ba57f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614611062576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016113ed565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6003546001600160a01b0390811690831603611d9f57611c9b6001600160a01b038316843084611efc565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2b9190612735565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611d8b57600080fd5b505af1158015610bc1573d6000803e3d6000fd5b600054611899906001600160a01b038481169186911684611efc565b6040516001600160a01b0383811660248301526044820183905261189991859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611f35565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611062576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ae611e2f565b611aeb611e2f565b611eaf82611fb1565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611ef4576118998282612059565b610be56120c6565b6040516001600160a01b03848116602483015283811660448301526064820183905261104a9186918216906323b872dd90608401611de8565b6000611f4a6001600160a01b038416836120fe565b90508051600014158015611f6f575080806020019051810190611f6d9190612735565b155b15611899576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016113ed565b806001600160a01b03163b600003612000576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016113ed565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161207691906127af565b600060405180830381855af49150503d80600081146120b1576040519150601f19603f3d011682016040523d82523d6000602084013e6120b6565b606091505b509150915061167085838361210c565b3415611062576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60606106d983836000612181565b6060826121215761211c82612237565b6106d9565b815115801561213857506001600160a01b0384163b155b1561217a576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016113ed565b50806106d9565b6060814710156121bf576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016113ed565b600080856001600160a01b031684866040516121db91906127af565b60006040518083038185875af1925050503d8060008114612218576040519150601f19603f3d011682016040523d82523d6000602084013e61221d565b606091505b509150915061222d86838361210c565b9695505050505050565b8051156122475780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b038116811461229057600080fd5b919050565b6000602082840312156122a757600080fd5b6106d982612279565b60008083601f8401126122c257600080fd5b50813567ffffffffffffffff8111156122da57600080fd5b6020830191508360208285010111156122f257600080fd5b9250929050565b60008060006040848603121561230e57600080fd5b61231784612279565b9250602084013567ffffffffffffffff81111561233357600080fd5b61233f868287016122b0565b9497909650939450505050565b60005b8381101561236757818101518382015260200161234f565b50506000910152565b6000815180845261238881602086016020860161234c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106d96020830184612370565b600080604083850312156123e057600080fd5b6123e983612279565b91506123f760208401612279565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561244257600080fd5b61244b83612279565b9150602083013567ffffffffffffffff81111561246757600080fd5b8301601f8101851361247857600080fd5b803567ffffffffffffffff81111561249257612492612400565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156124fe576124fe612400565b60405281815282820160200187101561251657600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008060008060006080868803121561254e57600080fd5b61255786612279565b945061256560208701612279565b935060408601359250606086013567ffffffffffffffff81111561258857600080fd5b612594888289016122b0565b969995985093965092949392505050565b600080600080606085870312156125bb57600080fd5b6125c485612279565b935060208501359250604085013567ffffffffffffffff8111156125e757600080fd5b6125f3878288016122b0565b95989497509550505050565b60008060008060006080868803121561261757600080fd5b61262086612279565b94506020860135935061263560408701612279565b9250606086013567ffffffffffffffff81111561258857600080fd5b60008060006060848603121561266657600080fd5b61266f84612279565b92506020840135915061268460408501612279565b90509250925092565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6020815260006126ea60208301848661268d565b949350505050565b83815260406020820152600061167060408301848661268d565b8481526001600160a01b038416602082015260606040820152600061222d60608301848661268d565b60006020828403121561274757600080fd5b815180151581146106d957600080fd5b60006020828403121561276957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183823760009101908152919050565b600082516127c181846020870161234c565b919091019291505056fea26469706673582212208320883bd4bfae2ca3d75ca12c286d744989c1c031265ae8356454d2eac5070964736f6c634300081a0033608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b50604051610b4a380380610b4a83398101604081905261002f916100bc565b60016000556001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ef565b80516001600160a01b03811681146100b757600080fd5b919050565b600080604083850312156100cf57600080fd5b6100d8836100a0565b91506100e6602084016100a0565b90509250929050565b610a4c806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80635b112591116100505780635b112591146100ca578063c8a02362146100ea578063d9caed12146100fd57600080fd5b8063116191b61461006c57806321fc65f2146100b5575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100c86100c3366004610822565b610110565b005b60025461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100c86100f8366004610822565b61029a565b6100c861010b3660046108bf565b61040b565b6101186104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610169576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546101909073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906101ee9088908890889088908890600401610945565b600060405180830381600087803b15801561020857600080fd5b505af115801561021c573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610281939291906109a2565b60405180910390a36102936001600055565b5050505050565b6102a26104fb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102f3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015461031a9073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906103789088908890889088908890600401610945565b600060405180830381600087803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8858585604051610281939291906109a2565b6104136104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61048573ffffffffffffffffffffffffffffffffffffffff8416838361053e565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104e491815260200190565b60405180910390a36104f66001600055565b505050565b600260005403610537576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f6918591906000906105d790841683610650565b905080516000141580156105fc5750808060200190518101906105fa91906109c5565b155b156104f6576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b606061065e83836000610665565b9392505050565b6060814710156106a3576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610647565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516106cc91906109e7565b60006040518083038185875af1925050503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b509150915061071e868383610728565b9695505050505050565b60608261073d57610738826107b7565b61065e565b8151158015610761575073ffffffffffffffffffffffffffffffffffffffff84163b155b156107b0576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610647565b508061065e565b8051156107c75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461081d57600080fd5b919050565b60008060008060006080868803121561083a57600080fd5b610843866107f9565b9450610851602087016107f9565b935060408601359250606086013567ffffffffffffffff81111561087457600080fd5b8601601f8101881361088557600080fd5b803567ffffffffffffffff81111561089c57600080fd5b8860208284010111156108ae57600080fd5b959894975092955050506020019190565b6000806000606084860312156108d457600080fd5b6108dd846107f9565b92506108eb602085016107f9565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006109976080830184866108fc565b979650505050505050565b8381526040602082015260006109bc6040830184866108fc565b95945050505050565b6000602082840312156109d757600080fd5b8151801515811461065e57600080fd5b6000825160005b81811015610a0857602081860181015185830152016109ee565b50600092019182525091905056fea264697066735822122041336b1568f49be1aa3dcd208e804b373772741e9b7e1726a8869e99fced60c764736f6c634300081a0033", +} + +// GatewayEVMEchidnaTestABI is the input ABI used to generate the binding from. +// Deprecated: Use GatewayEVMEchidnaTestMetaData.ABI instead. +var GatewayEVMEchidnaTestABI = GatewayEVMEchidnaTestMetaData.ABI + +// GatewayEVMEchidnaTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use GatewayEVMEchidnaTestMetaData.Bin instead. +var GatewayEVMEchidnaTestBin = GatewayEVMEchidnaTestMetaData.Bin + +// DeployGatewayEVMEchidnaTest deploys a new Ethereum contract, binding an instance of GatewayEVMEchidnaTest to it. +func DeployGatewayEVMEchidnaTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GatewayEVMEchidnaTest, error) { + parsed, err := GatewayEVMEchidnaTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(GatewayEVMEchidnaTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &GatewayEVMEchidnaTest{GatewayEVMEchidnaTestCaller: GatewayEVMEchidnaTestCaller{contract: contract}, GatewayEVMEchidnaTestTransactor: GatewayEVMEchidnaTestTransactor{contract: contract}, GatewayEVMEchidnaTestFilterer: GatewayEVMEchidnaTestFilterer{contract: contract}}, nil +} + +// GatewayEVMEchidnaTest is an auto generated Go binding around an Ethereum contract. +type GatewayEVMEchidnaTest struct { + GatewayEVMEchidnaTestCaller // Read-only binding to the contract + GatewayEVMEchidnaTestTransactor // Write-only binding to the contract + GatewayEVMEchidnaTestFilterer // Log filterer for contract events +} + +// GatewayEVMEchidnaTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type GatewayEVMEchidnaTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMEchidnaTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type GatewayEVMEchidnaTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMEchidnaTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type GatewayEVMEchidnaTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMEchidnaTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type GatewayEVMEchidnaTestSession struct { + Contract *GatewayEVMEchidnaTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMEchidnaTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type GatewayEVMEchidnaTestCallerSession struct { + Contract *GatewayEVMEchidnaTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// GatewayEVMEchidnaTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type GatewayEVMEchidnaTestTransactorSession struct { + Contract *GatewayEVMEchidnaTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMEchidnaTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type GatewayEVMEchidnaTestRaw struct { + Contract *GatewayEVMEchidnaTest // Generic contract binding to access the raw methods on +} + +// GatewayEVMEchidnaTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type GatewayEVMEchidnaTestCallerRaw struct { + Contract *GatewayEVMEchidnaTestCaller // Generic read-only contract binding to access the raw methods on +} + +// GatewayEVMEchidnaTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type GatewayEVMEchidnaTestTransactorRaw struct { + Contract *GatewayEVMEchidnaTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewGatewayEVMEchidnaTest creates a new instance of GatewayEVMEchidnaTest, bound to a specific deployed contract. +func NewGatewayEVMEchidnaTest(address common.Address, backend bind.ContractBackend) (*GatewayEVMEchidnaTest, error) { + contract, err := bindGatewayEVMEchidnaTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTest{GatewayEVMEchidnaTestCaller: GatewayEVMEchidnaTestCaller{contract: contract}, GatewayEVMEchidnaTestTransactor: GatewayEVMEchidnaTestTransactor{contract: contract}, GatewayEVMEchidnaTestFilterer: GatewayEVMEchidnaTestFilterer{contract: contract}}, nil +} + +// NewGatewayEVMEchidnaTestCaller creates a new read-only instance of GatewayEVMEchidnaTest, bound to a specific deployed contract. +func NewGatewayEVMEchidnaTestCaller(address common.Address, caller bind.ContractCaller) (*GatewayEVMEchidnaTestCaller, error) { + contract, err := bindGatewayEVMEchidnaTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestCaller{contract: contract}, nil +} + +// NewGatewayEVMEchidnaTestTransactor creates a new write-only instance of GatewayEVMEchidnaTest, bound to a specific deployed contract. +func NewGatewayEVMEchidnaTestTransactor(address common.Address, transactor bind.ContractTransactor) (*GatewayEVMEchidnaTestTransactor, error) { + contract, err := bindGatewayEVMEchidnaTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestTransactor{contract: contract}, nil +} + +// NewGatewayEVMEchidnaTestFilterer creates a new log filterer instance of GatewayEVMEchidnaTest, bound to a specific deployed contract. +func NewGatewayEVMEchidnaTestFilterer(address common.Address, filterer bind.ContractFilterer) (*GatewayEVMEchidnaTestFilterer, error) { + contract, err := bindGatewayEVMEchidnaTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestFilterer{contract: contract}, nil +} + +// bindGatewayEVMEchidnaTest binds a generic wrapper to an already deployed contract. +func bindGatewayEVMEchidnaTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := GatewayEVMEchidnaTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMEchidnaTest.Contract.GatewayEVMEchidnaTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.GatewayEVMEchidnaTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.GatewayEVMEchidnaTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMEchidnaTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.contract.Transact(opts, method, params...) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) UPGRADEINTERFACEVERSION(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "UPGRADE_INTERFACE_VERSION") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) UPGRADEINTERFACEVERSION() (string, error) { + return _GatewayEVMEchidnaTest.Contract.UPGRADEINTERFACEVERSION(&_GatewayEVMEchidnaTest.CallOpts) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) UPGRADEINTERFACEVERSION() (string, error) { + return _GatewayEVMEchidnaTest.Contract.UPGRADEINTERFACEVERSION(&_GatewayEVMEchidnaTest.CallOpts) +} + +// Custody is a free data retrieval call binding the contract method 0xdda79b75. +// +// Solidity: function custody() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) Custody(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "custody") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Custody is a free data retrieval call binding the contract method 0xdda79b75. +// +// Solidity: function custody() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Custody() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.Custody(&_GatewayEVMEchidnaTest.CallOpts) +} + +// Custody is a free data retrieval call binding the contract method 0xdda79b75. +// +// Solidity: function custody() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) Custody() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.Custody(&_GatewayEVMEchidnaTest.CallOpts) +} + +// EchidnaCaller is a free data retrieval call binding the contract method 0x81100bf0. +// +// Solidity: function echidnaCaller() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) EchidnaCaller(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "echidnaCaller") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EchidnaCaller is a free data retrieval call binding the contract method 0x81100bf0. +// +// Solidity: function echidnaCaller() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) EchidnaCaller() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.EchidnaCaller(&_GatewayEVMEchidnaTest.CallOpts) +} + +// EchidnaCaller is a free data retrieval call binding the contract method 0x81100bf0. +// +// Solidity: function echidnaCaller() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) EchidnaCaller() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.EchidnaCaller(&_GatewayEVMEchidnaTest.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Owner() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.Owner(&_GatewayEVMEchidnaTest.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) Owner() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.Owner(&_GatewayEVMEchidnaTest.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "proxiableUUID") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) ProxiableUUID() ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.ProxiableUUID(&_GatewayEVMEchidnaTest.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) ProxiableUUID() ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.ProxiableUUID(&_GatewayEVMEchidnaTest.CallOpts) +} + +// TestERC20 is a free data retrieval call binding the contract method 0x3c2f05a8. +// +// Solidity: function testERC20() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) TestERC20(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "testERC20") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TestERC20 is a free data retrieval call binding the contract method 0x3c2f05a8. +// +// Solidity: function testERC20() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) TestERC20() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.TestERC20(&_GatewayEVMEchidnaTest.CallOpts) +} + +// TestERC20 is a free data retrieval call binding the contract method 0x3c2f05a8. +// +// Solidity: function testERC20() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) TestERC20() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.TestERC20(&_GatewayEVMEchidnaTest.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "tssAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) TssAddress() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.TssAddress(&_GatewayEVMEchidnaTest.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) TssAddress() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.TssAddress(&_GatewayEVMEchidnaTest.CallOpts) +} + +// ZetaConnector is a free data retrieval call binding the contract method 0x57bec62f. +// +// Solidity: function zetaConnector() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) ZetaConnector(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "zetaConnector") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaConnector is a free data retrieval call binding the contract method 0x57bec62f. +// +// Solidity: function zetaConnector() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) ZetaConnector() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.ZetaConnector(&_GatewayEVMEchidnaTest.CallOpts) +} + +// ZetaConnector is a free data retrieval call binding the contract method 0x57bec62f. +// +// Solidity: function zetaConnector() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) ZetaConnector() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.ZetaConnector(&_GatewayEVMEchidnaTest.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) ZetaToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "zetaToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) ZetaToken() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.ZetaToken(&_GatewayEVMEchidnaTest.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) ZetaToken() (common.Address, error) { + return _GatewayEVMEchidnaTest.Contract.ZetaToken(&_GatewayEVMEchidnaTest.CallOpts) +} + +// Call is a paid mutator transaction binding the contract method 0x1b8b921d. +// +// Solidity: function call(address receiver, bytes payload) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) Call(opts *bind.TransactOpts, receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "call", receiver, payload) +} + +// Call is a paid mutator transaction binding the contract method 0x1b8b921d. +// +// Solidity: function call(address receiver, bytes payload) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Call(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Call(&_GatewayEVMEchidnaTest.TransactOpts, receiver, payload) +} + +// Call is a paid mutator transaction binding the contract method 0x1b8b921d. +// +// Solidity: function call(address receiver, bytes payload) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) Call(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Call(&_GatewayEVMEchidnaTest.TransactOpts, receiver, payload) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf340fa01. +// +// Solidity: function deposit(address receiver) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) Deposit(opts *bind.TransactOpts, receiver common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "deposit", receiver) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf340fa01. +// +// Solidity: function deposit(address receiver) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Deposit(receiver common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Deposit(&_GatewayEVMEchidnaTest.TransactOpts, receiver) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf340fa01. +// +// Solidity: function deposit(address receiver) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) Deposit(receiver common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Deposit(&_GatewayEVMEchidnaTest.TransactOpts, receiver) +} + +// Deposit0 is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address receiver, uint256 amount, address asset) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) Deposit0(opts *bind.TransactOpts, receiver common.Address, amount *big.Int, asset common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "deposit0", receiver, amount, asset) +} + +// Deposit0 is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address receiver, uint256 amount, address asset) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Deposit0(receiver common.Address, amount *big.Int, asset common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Deposit0(&_GatewayEVMEchidnaTest.TransactOpts, receiver, amount, asset) +} + +// Deposit0 is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address receiver, uint256 amount, address asset) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) Deposit0(receiver common.Address, amount *big.Int, asset common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Deposit0(&_GatewayEVMEchidnaTest.TransactOpts, receiver, amount, asset) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x29c59b5d. +// +// Solidity: function depositAndCall(address receiver, bytes payload) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) DepositAndCall(opts *bind.TransactOpts, receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "depositAndCall", receiver, payload) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x29c59b5d. +// +// Solidity: function depositAndCall(address receiver, bytes payload) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) DepositAndCall(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.DepositAndCall(&_GatewayEVMEchidnaTest.TransactOpts, receiver, payload) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x29c59b5d. +// +// Solidity: function depositAndCall(address receiver, bytes payload) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) DepositAndCall(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.DepositAndCall(&_GatewayEVMEchidnaTest.TransactOpts, receiver, payload) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0x8c6f037f. +// +// Solidity: function depositAndCall(address receiver, uint256 amount, address asset, bytes payload) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) DepositAndCall0(opts *bind.TransactOpts, receiver common.Address, amount *big.Int, asset common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "depositAndCall0", receiver, amount, asset, payload) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0x8c6f037f. +// +// Solidity: function depositAndCall(address receiver, uint256 amount, address asset, bytes payload) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) DepositAndCall0(receiver common.Address, amount *big.Int, asset common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.DepositAndCall0(&_GatewayEVMEchidnaTest.TransactOpts, receiver, amount, asset, payload) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0x8c6f037f. +// +// Solidity: function depositAndCall(address receiver, uint256 amount, address asset, bytes payload) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) DepositAndCall0(receiver common.Address, amount *big.Int, asset common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.DepositAndCall0(&_GatewayEVMEchidnaTest.TransactOpts, receiver, amount, asset, payload) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) Execute(opts *bind.TransactOpts, destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "execute", destination, data) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Execute(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Execute(&_GatewayEVMEchidnaTest.TransactOpts, destination, data) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) Execute(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Execute(&_GatewayEVMEchidnaTest.TransactOpts, destination, data) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x35c018db. +// +// Solidity: function executeRevert(address destination, bytes data) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) ExecuteRevert(opts *bind.TransactOpts, destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "executeRevert", destination, data) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x35c018db. +// +// Solidity: function executeRevert(address destination, bytes data) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) ExecuteRevert(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.ExecuteRevert(&_GatewayEVMEchidnaTest.TransactOpts, destination, data) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x35c018db. +// +// Solidity: function executeRevert(address destination, bytes data) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) ExecuteRevert(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.ExecuteRevert(&_GatewayEVMEchidnaTest.TransactOpts, destination, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) ExecuteWithERC20(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "executeWithERC20", token, to, amount, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) ExecuteWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.ExecuteWithERC20(&_GatewayEVMEchidnaTest.TransactOpts, token, to, amount, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) ExecuteWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.ExecuteWithERC20(&_GatewayEVMEchidnaTest.TransactOpts, token, to, amount, data) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) Initialize(opts *bind.TransactOpts, _tssAddress common.Address, _zetaToken common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "initialize", _tssAddress, _zetaToken) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Initialize(_tssAddress common.Address, _zetaToken common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Initialize(&_GatewayEVMEchidnaTest.TransactOpts, _tssAddress, _zetaToken) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) Initialize(_tssAddress common.Address, _zetaToken common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Initialize(&_GatewayEVMEchidnaTest.TransactOpts, _tssAddress, _zetaToken) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) RenounceOwnership() (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.RenounceOwnership(&_GatewayEVMEchidnaTest.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.RenounceOwnership(&_GatewayEVMEchidnaTest.TransactOpts) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) RevertWithERC20(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "revertWithERC20", token, to, amount, data) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) RevertWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.RevertWithERC20(&_GatewayEVMEchidnaTest.TransactOpts, token, to, amount, data) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) RevertWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.RevertWithERC20(&_GatewayEVMEchidnaTest.TransactOpts, token, to, amount, data) +} + +// SetConnector is a paid mutator transaction binding the contract method 0x10188aef. +// +// Solidity: function setConnector(address _zetaConnector) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) SetConnector(opts *bind.TransactOpts, _zetaConnector common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "setConnector", _zetaConnector) +} + +// SetConnector is a paid mutator transaction binding the contract method 0x10188aef. +// +// Solidity: function setConnector(address _zetaConnector) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) SetConnector(_zetaConnector common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.SetConnector(&_GatewayEVMEchidnaTest.TransactOpts, _zetaConnector) +} + +// SetConnector is a paid mutator transaction binding the contract method 0x10188aef. +// +// Solidity: function setConnector(address _zetaConnector) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) SetConnector(_zetaConnector common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.SetConnector(&_GatewayEVMEchidnaTest.TransactOpts, _zetaConnector) +} + +// SetCustody is a paid mutator transaction binding the contract method 0xae7a3a6f. +// +// Solidity: function setCustody(address _custody) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) SetCustody(opts *bind.TransactOpts, _custody common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "setCustody", _custody) +} + +// SetCustody is a paid mutator transaction binding the contract method 0xae7a3a6f. +// +// Solidity: function setCustody(address _custody) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) SetCustody(_custody common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.SetCustody(&_GatewayEVMEchidnaTest.TransactOpts, _custody) +} + +// SetCustody is a paid mutator transaction binding the contract method 0xae7a3a6f. +// +// Solidity: function setCustody(address _custody) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) SetCustody(_custody common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.SetCustody(&_GatewayEVMEchidnaTest.TransactOpts, _custody) +} + +// TestExecuteWithERC20 is a paid mutator transaction binding the contract method 0x6ab90f9b. +// +// Solidity: function testExecuteWithERC20(address to, uint256 amount, bytes data) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) TestExecuteWithERC20(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "testExecuteWithERC20", to, amount, data) +} + +// TestExecuteWithERC20 is a paid mutator transaction binding the contract method 0x6ab90f9b. +// +// Solidity: function testExecuteWithERC20(address to, uint256 amount, bytes data) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) TestExecuteWithERC20(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.TestExecuteWithERC20(&_GatewayEVMEchidnaTest.TransactOpts, to, amount, data) +} + +// TestExecuteWithERC20 is a paid mutator transaction binding the contract method 0x6ab90f9b. +// +// Solidity: function testExecuteWithERC20(address to, uint256 amount, bytes data) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) TestExecuteWithERC20(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.TestExecuteWithERC20(&_GatewayEVMEchidnaTest.TransactOpts, to, amount, data) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.TransferOwnership(&_GatewayEVMEchidnaTest.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.TransferOwnership(&_GatewayEVMEchidnaTest.TransactOpts, newOwner) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "upgradeToAndCall", newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.UpgradeToAndCall(&_GatewayEVMEchidnaTest.TransactOpts, newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.UpgradeToAndCall(&_GatewayEVMEchidnaTest.TransactOpts, newImplementation, data) +} + +// GatewayEVMEchidnaTestCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestCallIterator struct { + Event *GatewayEVMEchidnaTestCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestCall represents a Call event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestCall struct { + Sender common.Address + Receiver common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMEchidnaTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestCallIterator{contract: _GatewayEVMEchidnaTest.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestCall, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestCall) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseCall(log types.Log) (*GatewayEVMEchidnaTestCall, error) { + event := new(GatewayEVMEchidnaTestCall) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestDepositIterator struct { + Event *GatewayEVMEchidnaTestDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestDeposit represents a Deposit event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestDeposit struct { + Sender common.Address + Receiver common.Address + Amount *big.Int + Asset common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterDeposit(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMEchidnaTestDepositIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestDepositIterator{contract: _GatewayEVMEchidnaTest.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestDeposit, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestDeposit) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseDeposit(log types.Log) (*GatewayEVMEchidnaTestDeposit, error) { + event := new(GatewayEVMEchidnaTestDeposit) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestExecutedIterator is returned from FilterExecuted and is used to iterate over the raw logs and unpacked data for Executed events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestExecutedIterator struct { + Event *GatewayEVMEchidnaTestExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestExecuted represents a Executed event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestExecuted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMEchidnaTestExecutedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestExecutedIterator{contract: _GatewayEVMEchidnaTest.contract, event: "Executed", logs: logs, sub: sub}, nil +} + +// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchExecuted(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestExecuted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestExecuted) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Executed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseExecuted(log types.Log) (*GatewayEVMEchidnaTestExecuted, error) { + event := new(GatewayEVMEchidnaTestExecuted) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Executed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestExecutedWithERC20Iterator is returned from FilterExecutedWithERC20 and is used to iterate over the raw logs and unpacked data for ExecutedWithERC20 events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestExecutedWithERC20Iterator struct { + Event *GatewayEVMEchidnaTestExecutedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestExecutedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestExecutedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestExecutedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestExecutedWithERC20 represents a ExecutedWithERC20 event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestExecutedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterExecutedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMEchidnaTestExecutedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestExecutedWithERC20Iterator{contract: _GatewayEVMEchidnaTest.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchExecutedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestExecutedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestExecutedWithERC20) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseExecutedWithERC20(log types.Log) (*GatewayEVMEchidnaTestExecutedWithERC20, error) { + event := new(GatewayEVMEchidnaTestExecutedWithERC20) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestInitializedIterator struct { + Event *GatewayEVMEchidnaTestInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestInitialized represents a Initialized event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterInitialized(opts *bind.FilterOpts) (*GatewayEVMEchidnaTestInitializedIterator, error) { + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestInitializedIterator{contract: _GatewayEVMEchidnaTest.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestInitialized) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestInitialized) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseInitialized(log types.Log) (*GatewayEVMEchidnaTestInitialized, error) { + event := new(GatewayEVMEchidnaTestInitialized) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestOwnershipTransferredIterator struct { + Event *GatewayEVMEchidnaTestOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestOwnershipTransferred represents a OwnershipTransferred event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*GatewayEVMEchidnaTestOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestOwnershipTransferredIterator{contract: _GatewayEVMEchidnaTest.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestOwnershipTransferred) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseOwnershipTransferred(log types.Log) (*GatewayEVMEchidnaTestOwnershipTransferred, error) { + event := new(GatewayEVMEchidnaTestOwnershipTransferred) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestRevertedIterator is returned from FilterReverted and is used to iterate over the raw logs and unpacked data for Reverted events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestRevertedIterator struct { + Event *GatewayEVMEchidnaTestReverted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestRevertedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestRevertedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestRevertedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestReverted represents a Reverted event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestReverted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMEchidnaTestRevertedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestRevertedIterator{contract: _GatewayEVMEchidnaTest.contract, event: "Reverted", logs: logs, sub: sub}, nil +} + +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchReverted(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestReverted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestReverted) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseReverted(log types.Log) (*GatewayEVMEchidnaTestReverted, error) { + event := new(GatewayEVMEchidnaTestReverted) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestRevertedWithERC20Iterator is returned from FilterRevertedWithERC20 and is used to iterate over the raw logs and unpacked data for RevertedWithERC20 events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestRevertedWithERC20Iterator struct { + Event *GatewayEVMEchidnaTestRevertedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestRevertedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestRevertedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestRevertedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestRevertedWithERC20 represents a RevertedWithERC20 event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestRevertedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterRevertedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMEchidnaTestRevertedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestRevertedWithERC20Iterator{contract: _GatewayEVMEchidnaTest.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchRevertedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestRevertedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestRevertedWithERC20) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseRevertedWithERC20(log types.Log) (*GatewayEVMEchidnaTestRevertedWithERC20, error) { + event := new(GatewayEVMEchidnaTestRevertedWithERC20) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestUpgradedIterator struct { + Event *GatewayEVMEchidnaTestUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestUpgraded represents a Upgraded event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*GatewayEVMEchidnaTestUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestUpgradedIterator{contract: _GatewayEVMEchidnaTest.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestUpgraded) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseUpgraded(log types.Log) (*GatewayEVMEchidnaTestUpgraded, error) { + event := new(GatewayEVMEchidnaTestUpgraded) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/gatewayevmupgrade.t.sol/gatewayevmuupsupgradetest.go b/v2/pkg/gatewayevmupgrade.t.sol/gatewayevmuupsupgradetest.go new file mode 100644 index 00000000..995d2916 --- /dev/null +++ b/v2/pkg/gatewayevmupgrade.t.sol/gatewayevmuupsupgradetest.go @@ -0,0 +1,5335 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package gatewayevmupgrade + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdInvariantFuzzArtifactSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzArtifactSelector struct { + Artifact string + Selectors [][4]byte +} + +// StdInvariantFuzzInterface is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzInterface struct { + Addr common.Address + Artifacts []string +} + +// StdInvariantFuzzSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzSelector struct { + Addr common.Address + Selectors [][4]byte +} + +// GatewayEVMUUPSUpgradeTestMetaData contains all meta data concerning the GatewayEVMUUPSUpgradeTest contract. +var GatewayEVMUUPSUpgradeTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"IS_TEST\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"failed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setUp\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzArtifactSelector[]\",\"components\":[{\"name\":\"artifact\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetInterfaces\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzInterface[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"artifacts\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"testUpgradeAndForwardCallToReceivePayable\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Executed\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedV2\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedERC20\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNoParams\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNonPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strs\",\"type\":\"string[]\",\"indexed\":false,\"internalType\":\"string[]\"},{\"name\":\"nums\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"str\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedRevert\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Reverted\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RevertedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_address\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes32\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_int\",\"inputs\":[{\"name\":\"\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_address\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes32\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_string\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_string\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_uint\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"logs\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061add18061003c6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806385226c811161008c578063b5508aa911610066578063b5508aa91461018b578063ba414fa614610193578063e20c9f71146101ab578063fa7626d4146101b357600080fd5b806385226c8114610159578063916a17c61461016e578063b0464fdc1461018357600080fd5b80633e5e3c23116100c85780633e5e3c231461012c5780633f7286f41461013457806366d9a9a01461013c5780637a380ebf1461015157600080fd5b80630a9254e4146100ef5780631ed7831c146100f95780632ade388014610117575b600080fd5b6100f76101c0565b005b610101610a5d565b60405161010e91906161e3565b60405180910390f35b61011f610abf565b60405161010e919061627f565b610101610c01565b610101610c61565b610144610cc1565b60405161010e91906163e5565b6100f7610e43565b610161611505565b60405161010e9190616483565b6101766115d5565b60405161010e91906164fa565b6101766116d0565b6101616117cb565b61019b61189b565b604051901515815260200161010e565b61010161196f565b601f5461019b9060ff1681565b602680547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116301790915560278054821661123417905560288054909116615678179055604051610212906160f6565b60408082526004908201527f746573740000000000000000000000000000000000000000000000000000000060608201526080602082018190526003908201527f54544b000000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f080158015610297573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040516102dc906160f6565b604080825260049082018190527f7a6574610000000000000000000000000000000000000000000000000000000060608301526080602083018190528201527f5a4554410000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f080158015610360573d6000803e3d6000fd5b50602580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155604080518082018252600e81527f4761746577617945564d2e736f6c000000000000000000000000000000000000602082015260285491519190931660248201526044810191909152610446919060640160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f485cc955000000000000000000000000000000000000000000000000000000001790526119cf565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155602854604051919216906104ca90616103565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156104fd573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055602054602554602854604051928416939182169291169061055290616110565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801561058e573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040516105d39061611d565b604051809103906000f0801580156105ef573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556028546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b15801561069b57600080fd5b505af11580156106af573d6000803e3d6000fd5b50506028546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b15801561072557600080fd5b505af1158015610739573d6000803e3d6000fd5b50506020546022546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b15801561079f57600080fd5b505af11580156107b3573d6000803e3d6000fd5b50506020546023546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b15801561081957600080fd5b505af115801561082d573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561088f57600080fd5b505af11580156108a3573d6000803e3d6000fd5b5050602480546026546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f4240938101939093521692506340c10f199150604401600060405180830381600087803b15801561091457600080fd5b505af1158015610928573d6000803e3d6000fd5b5050602480546022546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526207a1209381019390935216925063a9059cbb91506044016020604051808303816000875af115801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190616591565b506028546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b158015610a4357600080fd5b505af1158015610a57573d6000803e3d6000fd5b50505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610ab557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a97575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015610bf857600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610be1578382906000526020600020018054610b54906165b3565b80601f0160208091040260200160405190810160405280929190818152602001828054610b80906165b3565b8015610bcd5780601f10610ba257610100808354040283529160200191610bcd565b820191906000526020600020905b815481529060010190602001808311610bb057829003601f168201915b505050505081526020019060010190610b35565b505050508152505081526020019060010190610ae3565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610ab5576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610a97575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610ab5576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610a97575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015610bf85783829060005260206000209060020201604051806040016040529081600082018054610d18906165b3565b80601f0160208091040260200160405190810160405280929190818152602001828054610d44906165b3565b8015610d915780601f10610d6657610100808354040283529160200191610d91565b820191906000526020600020905b815481529060010190602001808311610d7457829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610e2b57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610dd85790505b50505050508152505081526020019060010190610ce5565b60208054604080517fdda79b7500000000000000000000000000000000000000000000000000000000815290516000936001600160a01b039093169263dda79b7592600480820193918290030181865afa158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190616600565b60208054604080517f5b11259100000000000000000000000000000000000000000000000000000000815290519394506000936001600160a01b0390921692635b112591926004808401938290030181865afa158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190616600565b604080518082018252600f81527f48656c6c6f2c20466f756e647279210000000000000000000000000000000000602080830191909152601f5483518085018552601981527f4761746577617945564d55706772616465546573742e736f6c00000000000000818401528451928301909452600082526026549495509193602a93600193670de0b6b3a764000093610ffb936001600160a01b0361010090930483169392166119ee565b600084848460405160240161101293929190616629565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f9700000000000000000000000000000000000000000000000000000000179052601f5460215491517ff30c7ba30000000000000000000000000000000000000000000000000000000081529293506001600160a01b03610100909104811692737109709ecfa91a80626ff3989d68f67f5b1dd12d9263f30c7ba3926110d89291169087908790600401616653565b600060405180830381600087803b1580156110f257600080fd5b505af1158015611106573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b50506020546040517f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa93506111f592506001600160a01b039091169086908a908a908a9061667b565b60405180910390a16020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561128b57600080fd5b505af115801561129f573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e854691506112e490869086906166bc565b60405180910390a26028546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561135e57600080fd5b505af1158015611372573d6000803e3d6000fd5b50506021546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b038086169450631cff79cd935087926113c49291169087906004016166d5565b60006040518083038185885af11580156113e2573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261140b91908101906167df565b5060208054604080517fdda79b750000000000000000000000000000000000000000000000000000000081529051611498938c936001600160a01b03169263dda79b7592600480830193928290030181865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114939190616600565b611a0a565b60208054604080517f5b11259100000000000000000000000000000000000000000000000000000000815290516114fb938b936001600160a01b031692635b11259192600480830193928290030181865afa15801561146f573d6000803e3d6000fd5b5050505050505050565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610bf8578382906000526020600020018054611548906165b3565b80601f0160208091040260200160405190810160405280929190818152602001828054611574906165b3565b80156115c15780601f10611596576101008083540402835291602001916115c1565b820191906000526020600020905b8154815290600101906020018083116115a457829003601f168201915b505050505081526020019060010190611529565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015610bf85760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156116b857602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116116655790505b505050505081525050815260200190600101906115f9565b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015610bf85760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156117b357602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116117605790505b505050505081525050815260200190600101906116f4565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610bf857838290600052602060002001805461180e906165b3565b80601f016020809104026020016040519081016040528092919081815260200182805461183a906165b3565b80156118875780601f1061185c57610100808354040283529160200191611887565b820191906000526020600020905b81548152906001019060200180831161186a57829003601f168201915b5050505050815260200190600101906117ef565b60085460009060ff16156118b3575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015611944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119689190616814565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015610ab5576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610a97575050505050905090565b60006119d961612a565b6119e4848483611a9a565b9150505b92915050565b6119f661612a565b611a038585858486611b15565b5050505050565b6040517f515361f60000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015282166024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063515361f69060440160006040518083038186803b158015611a7e57600080fd5b505afa158015611a92573d6000803e3d6000fd5b505050505050565b600080611aa78584611c16565b9050611b0a6040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f78790000008152508286604051602001611af59291906166d5565b60405160208183030381529060405285611c22565b9150505b9392505050565b6040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201528190737109709ecfa91a80626ff3989d68f67f5b1dd12d9081906306447d5690602401600060405180830381600087803b158015611b8757600080fd5b505af1925050508015611b98575060015b611bad57611ba887878787611c50565b611c0d565b611bb987878787611c50565b806001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505050505b50505050505050565b6000611b0e8383611c69565b60c08101515160009015611c4657611c3f84848460c00151611c84565b9050611b0e565b611c3f8484611e2a565b6000611c5c8483611f15565b9050611a03858285611f21565b6000611c7583836122eb565b611b0e83836020015184611c22565b600080611c8f6122fb565b90506000611c9d86836123ce565b90506000611cb48260600151836020015185612874565b90506000611cc483838989612a86565b90506000611cd182613903565b602081015181519192509060030b15611d4457898260400151604051602001611cfb92919061682d565b60408051601f19818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252611d3b916004016168ae565b60405180910390fd5b6000611d876040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001613ad2565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d90611dda9084906004016168ae565b602060405180830381865afa158015611df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1b9190616600565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590611e7f9087906004016168ae565b600060405180830381865afa158015611e9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ec491908101906167df565b90506000611ef28285604051602001611ede9291906168c1565b604051602081830303815290604052613cd2565b90506001600160a01b0381166119e4578484604051602001611cfb9291906168f0565b6000611c758383613ce5565b6040517f667f9d700000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90600090829063667f9d7090604401602060405180830381865afa158015611fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe19190616814565b905080612188576000611ff386613cf1565b604080518082018252600581527f352e302e300000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061207e905b60408051808201825260008082526020918201528151808301909252845182528085019082015290613dde565b8061208a575060008451115b1561210d576040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03871690634f1ef286906120d690889088906004016166d5565b600060405180830381600087803b1580156120f057600080fd5b505af1158015612104573d6000803e3d6000fd5b50505050612182565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152871690633659cfe690602401600060405180830381600087803b15801561216957600080fd5b505af115801561217d573d6000803e3d6000fd5b505050505b50611a03565b80600061219482613cf1565b604080518082018252600581527f352e302e30000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506121f690612051565b80612202575060008551115b15612287576040517f9623609d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831690639623609d90612250908a908a908a9060040161699b565b600060405180830381600087803b15801561226a57600080fd5b505af115801561227e573d6000803e3d6000fd5b50505050611c0d565b6040517f99a88ec40000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015287811660248301528316906399a88ec490604401600060405180830381600087803b158015611bf457600080fd5b6122f782826000613df2565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c906123829084906004016169cc565b600060405180830381865afa15801561239f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123c79190810190616a13565b9250505090565b6124006040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d905061244b6040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b61245485613ef5565b60208201526000612464866142da565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa1580156124a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124ce9190810190616a13565b868385602001516040516020016124e89493929190616a5c565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb11906125409085906004016168ae565b600060405180830381865afa15801561255d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125859190810190616a13565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f6906125cd908490600401616b60565b602060405180830381865afa1580156125ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260e9190616591565b6126235781604051602001611cfb9190616bb2565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890612668908490600401616c44565b600060405180830381865afa158015612685573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126ad9190810190616a13565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f6906126f4908490600401616c96565b602060405180830381865afa158015612711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127359190616591565b156127ca576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac89061277f908490600401616c96565b600060405180830381865afa15801561279c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127c49190810190616a13565b60408501525b846001600160a01b03166349c4fac88286600001516040516020016127ef9190616ce8565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161281b929190616d54565b600060405180830381865afa158015612838573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128609190810190616a13565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816128905790505090506040518060400160405280600481526020017f6772657000000000000000000000000000000000000000000000000000000000815250816000815181106128f0576128f0616d79565b60200260200101819052506040518060400160405280600381526020017f2d726c00000000000000000000000000000000000000000000000000000000008152508160018151811061294457612944616d79565b6020026020010181905250846040516020016129609190616da8565b6040516020818303038152906040528160028151811061298257612982616d79565b60200260200101819052508260405160200161299e9190616e14565b604051602081830303815290604052816003815181106129c0576129c0616d79565b602002602001018190525060006129d682613903565b602080820151604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000008185019081528251808401845260008082529086015282518084019093529051825292810192909252919250612a67906040805180820182526000808252602091820152815180830190925284518252808501908201529061455d565b612a7c5785604051602001611cfb9190616e55565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9015612ad6565b511590565b612c4a57826020015115612b92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a401611d3b565b8260c0015115612c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a401611d3b565b6040805160ff8082526120008201909252600091816020015b6060815260200190600190039081612c6357905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280612cbe90616f15565b935060ff1681518110612cd357612cd3616d79565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e3700000000000000000000000000000000000000815250604051602001612d249190616f34565b604051602081830303815290604052828280612d3f90616f15565b935060ff1681518110612d5457612d54616d79565b60200260200101819052506040518060400160405280600681526020017f6465706c6f790000000000000000000000000000000000000000000000000000815250828280612da190616f15565b935060ff1681518110612db657612db6616d79565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d65000000000000000000000000000000000000815250828280612e0390616f15565b935060ff1681518110612e1857612e18616d79565b60200260200101819052508760200151828280612e3490616f15565b935060ff1681518110612e4957612e49616d79565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e747261637450617468000000000000000000000000000000000000815250828280612e9690616f15565b935060ff1681518110612eab57612eab616d79565b602090810291909101015287518282612ec381616f15565b935060ff1681518110612ed857612ed8616d79565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e49640000000000000000000000000000000000000000000000815250828280612f2590616f15565b935060ff1681518110612f3a57612f3a616d79565b6020026020010181905250612f4e466145be565b8282612f5981616f15565b935060ff1681518110612f6e57612f6e616d79565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c650000000000000000000000000000000000815250828280612fbb90616f15565b935060ff1681518110612fd057612fd0616d79565b602002602001018190525086828280612fe890616f15565b935060ff1681518110612ffd57612ffd616d79565b60209081029190910101528551156131245760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f646500000000000000000000006020820152828261304e81616f15565b935060ff168151811061306357613063616d79565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d906130b39089906004016168ae565b600060405180830381865afa1580156130d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130f89190810190616a13565b828261310381616f15565b935060ff168151811061311857613118616d79565b60200260200101819052505b8460200151156131f45760408051808201909152601281527f2d2d766572696679536f75726365436f646500000000000000000000000000006020820152828261316d81616f15565b935060ff168151811061318257613182616d79565b60200260200101819052506040518060400160405280600581526020017f66616c73650000000000000000000000000000000000000000000000000000008152508282806131cf90616f15565b935060ff16815181106131e4576131e4616d79565b60200260200101819052506133bb565b61322c612ad18660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6132bf5760408051808201909152600d81527f2d2d6c6963656e736554797065000000000000000000000000000000000000006020820152828261326f81616f15565b935060ff168151811061328457613284616d79565b60200260200101819052508460a001516040516020016132a49190616da8565b6040516020818303038152906040528282806131cf90616f15565b8460c0015115801561330257506040808901518151808301835260008082526020918201528251808401909352815183529081019082015261330090511590565b155b156133bb5760408051808201909152600d81527f2d2d6c6963656e736554797065000000000000000000000000000000000000006020820152828261334681616f15565b935060ff168151811061335b5761335b616d79565b602002602001018190525061336f8861465e565b60405160200161337f9190616da8565b60405160208183030381529060405282828061339a90616f15565b935060ff16815181106133af576133af616d79565b60200260200101819052505b604080860151815180830183526000808252602091820152825180840190935281518352908101908201526133ef90511590565b6134845760408051808201909152600b81527f2d2d72656c6179657249640000000000000000000000000000000000000000006020820152828261343281616f15565b935060ff168151811061344757613447616d79565b6020026020010181905250846040015182828061346390616f15565b935060ff168151811061347857613478616d79565b60200260200101819052505b6060850151156135a55760408051808201909152600681527f2d2d73616c740000000000000000000000000000000000000000000000000000602082015282826134cd81616f15565b935060ff16815181106134e2576134e2616d79565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015613551573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135799190810190616a13565b828261358481616f15565b935060ff168151811061359957613599616d79565b60200260200101819052505b60e0850151511561364c5760408051808201909152600a81527f2d2d6761734c696d697400000000000000000000000000000000000000000000602082015282826135ef81616f15565b935060ff168151811061360457613604616d79565b60200260200101819052506136208560e00151600001516145be565b828261362b81616f15565b935060ff168151811061364057613640616d79565b60200260200101819052505b60e085015160200151156136f65760408051808201909152600a81527f2d2d6761735072696365000000000000000000000000000000000000000000006020820152828261369981616f15565b935060ff16815181106136ae576136ae616d79565b60200260200101819052506136ca8560e00151602001516145be565b82826136d581616f15565b935060ff16815181106136ea576136ea616d79565b60200260200101819052505b60e085015160400151156137a05760408051808201909152600e81527f2d2d6d61784665655065724761730000000000000000000000000000000000006020820152828261374381616f15565b935060ff168151811061375857613758616d79565b60200260200101819052506137748560e00151604001516145be565b828261377f81616f15565b935060ff168151811061379457613794616d79565b60200260200101819052505b60e0850151606001511561384a5760408051808201909152601681527f2d2d6d61785072696f7269747946656550657247617300000000000000000000602082015282826137ed81616f15565b935060ff168151811061380257613802616d79565b602002602001018190525061381e8560e00151606001516145be565b828261382981616f15565b935060ff168151811061383e5761383e616d79565b60200260200101819052505b60008160ff1667ffffffffffffffff811115613868576138686166f7565b60405190808252806020026020018201604052801561389b57816020015b60608152602001906001900390816138865790505b50905060005b8260ff168160ff1610156138f457838160ff16815181106138c4576138c4616d79565b6020026020010151828260ff16815181106138e1576138e1616d79565b60209081029190910101526001016138a1565b5093505050505b949350505050565b61392a6040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c916139b091869101616f9f565b600060405180830381865afa1580156139cd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139f59190810190616a13565b90506000613a03868361514d565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b8152600401613a339190616483565b6000604051808303816000875af1158015613a52573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613a7a9190810190616fe6565b805190915060030b15801590613a935750602081015151155b8015613aa25750604081015151155b15612a7c5781600081518110613aba57613aba616d79565b6020026020010151604051602001611cfb919061709c565b60606000613b078560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528651825280870190820152909150613b3e9082905b906152a2565b15613c9b576000613bbb82613bb584613baf613b818a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b906152c9565b9061532b565b604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150613c1f9082906152a2565b15613c8957604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152613c86905b82906153b0565b90505b613c92816153d6565b92505050611b0e565b8215613cb4578484604051602001611cfb929190617288565b5050604080516020810190915260008152611b0e565b509392505050565b6000808251602084016000f09392505050565b6122f782826001613df2565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fad3cb1cc00000000000000000000000000000000000000000000000000000000179052905160609160009182916001600160a01b03861691613d66919061732f565b6000604051808303816000865af19150503d8060008114613da3576040519150601f19603f3d011682016040523d82523d6000602084013e613da8565b606091505b50915091508115613dc757808060200190518101906138fb9190616a13565b505060408051602081019091526000815292915050565b6000613dea838361543f565b159392505050565b8160a0015115613e0157505050565b6000613e0e84848461551a565b90506000613e1b82613903565b602081015181519192509060030b158015613eb75750604080518082018252600781527f535543434553530000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152613eb790604080518082018252600080825260209182015281518083019092528451825280850190820152613b38565b15613ec457505050505050565b60408201515115613ee4578160400151604051602001611cfb919061734b565b80604051602001611cfb91906173a9565b60606000613f2a8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150613f8f905b829061455d565b15613ffe57604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152611b0e90613ff9908390615ab5565b6153d6565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614060905b8290615b3f565b60010361412d57604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526140c690613c7f565b50604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152611b0e90613ff9905b83906153b0565b604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261418c90613f88565b156142c357604080518082018252600181527f2f000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201819052845180860190955292518452830152906141f4908390615bd9565b9050600081600183516142079190617414565b8151811061421757614217616d79565b602002602001015190506142ba613ff961428d6040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252855182528086019082015290615ab5565b95945050505050565b82604051602001611cfb9190617427565b50919050565b6060600061430f8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061437190613f88565b1561437f57611b0e816153d6565b604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526143de90614059565b60010361444857604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152611b0e90613ff990614126565b604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526144a790613f88565b156142c357604080518082018252600181527f2f0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082018190528451808601909552925184528301529061450f908390615bd9565b905060018151111561454b57806002825161452a9190617414565b8151811061453a5761453a616d79565b602002602001015192505050919050565b5082604051602001611cfb9190617427565b805182516000911115614572575060006119e8565b8151835160208501516000929161458891617505565b6145929190617414565b9050826020015181036145a95760019150506119e8565b82516020840151819020912014905092915050565b606060006145cb83615c7e565b600101905060008167ffffffffffffffff8111156145eb576145eb6166f7565b6040519080825280601f01601f191660200182016040528015614615576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461461f57509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e53454400000000000000000000000000000000000000000000818401908152855180870187528381528401929092528451808601909552518452908301526060916146ea905b8290613dde565b1561472a57505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e7365000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614789906146e3565b156147c957505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d4954000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614828906146e3565b1561486857505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526148c7906146e3565b8061492c5750604080518082018252601081527f47504c2d322e302d6f722d6c61746572000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261492c906146e3565b1561496c57505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526149cb906146e3565b80614a305750604080518082018252601081527f47504c2d332e302d6f722d6c617465720000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614a30906146e3565b15614a7057505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614acf906146e3565b80614b345750604080518082018252601181527f4c47504c2d322e312d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614b34906146e3565b15614b7457505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614bd3906146e3565b80614c385750604080518082018252601181527f4c47504c2d332e302d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614c38906146e3565b15614c7857505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c61757365000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614cd7906146e3565b15614d1757505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c61757365000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614d76906146e3565b15614db657505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e300000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614e15906146e3565b15614e5557505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e300000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614eb4906146e3565b15614ef457505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e300000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614f53906146e3565b15614f9357505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614ff2906146e3565b806150575750604080518082018252601181527f4147504c2d332e302d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615057906146e3565b1561509757505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e31000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526150f6906146e3565b1561513657505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b60408084015184519151611cfb9290602001617518565b60608060005b84518110156151d8578185828151811061516f5761516f616d79565b60200260200101516040516020016151889291906168c1565b6040516020818303038152906040529150600185516151a79190617414565b81146151d057816040516020016151be9190617681565b60405160208183030381529060405291505b600101615153565b5060408051600380825260808201909252600091816020015b60608152602001906001900390816151f1579050509050838160008151811061521c5761521c616d79565b60200260200101819052506040518060400160405280600281526020017f2d630000000000000000000000000000000000000000000000000000000000008152508160018151811061527057615270616d79565b6020026020010181905250818160028151811061528f5761528f616d79565b6020908102919091010152949350505050565b60208083015183518351928401516000936152c09291849190615d60565b14159392505050565b604080518082019091526000808252602082015260006152fb8460000151856020015185600001518660200151615e71565b905083602001518161530d9190617414565b8451859061531c908390617414565b90525060208401525090919050565b60408051808201909152600080825260208201528151835110156153505750816119e8565b60208083015190840151600191146153775750815160208481015190840151829020919020145b80156153a85782518451859061538e908390617414565b90525082516020850180516153a4908390617505565b9052505b509192915050565b60408051808201909152600080825260208201526153cf838383615f91565b5092915050565b60606000826000015167ffffffffffffffff8111156153f7576153f76166f7565b6040519080825280601f01601f191660200182016040528015615421576020820181803683370190505b50905060006020820190506153cf818560200151866000015161603c565b8151815160009190811115615452575081515b6020808501519084015160005b8381101561550b57825182518082146154db5760001960208710156154ba5760018461548c896020617414565b6154969190617505565b6154a19060086176c2565b6154ac9060026177c0565b6154b69190617414565b1990505b81811683821681810391146154d85797506119e89650505050505050565b50505b6154e6602086617505565b94506154f3602085617505565b935050506020816155049190617505565b905061545f565b5084518651612a7c91906177cc565b606060006155266122fb565b6040805160ff808252612000820190925291925060009190816020015b606081526020019060019003908161554357905050905060006040518060400160405280600381526020017f6e7078000000000000000000000000000000000000000000000000000000000081525082828061559e90616f15565b935060ff16815181106155b3576155b3616d79565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e330000000000000000000000000000000000000000000000000081525060405160200161560491906177ec565b60405160208183030381529060405282828061561f90616f15565b935060ff168151811061563457615634616d79565b60200260200101819052506040518060400160405280600881526020017f76616c696461746500000000000000000000000000000000000000000000000081525082828061568190616f15565b935060ff168151811061569657615696616d79565b6020026020010181905250826040516020016156b29190616e14565b6040516020818303038152906040528282806156cd90616f15565b935060ff16815181106156e2576156e2616d79565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e74726163740000000000000000000000000000000000000000000081525082828061572f90616f15565b935060ff168151811061574457615744616d79565b602002602001018190525061575987846160b6565b828261576481616f15565b935060ff168151811061577957615779616d79565b6020908102919091010152855151156158255760408051808201909152600b81527f2d2d7265666572656e6365000000000000000000000000000000000000000000602082015282826157cb81616f15565b935060ff16815181106157e0576157e0616d79565b60200260200101819052506157f98660000151846160b6565b828261580481616f15565b935060ff168151811061581957615819616d79565b60200260200101819052505b8560800151156158935760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b00000000000000006020820152828261586e81616f15565b935060ff168151811061588357615883616d79565b60200260200101819052506158f9565b84156158f95760408051808201909152601281527f2d2d726571756972655265666572656e63650000000000000000000000000000602082015282826158d881616f15565b935060ff16815181106158ed576158ed616d79565b60200260200101819052505b604086015151156159955760408051808201909152600d81527f2d2d756e73616665416c6c6f77000000000000000000000000000000000000006020820152828261594381616f15565b935060ff168151811061595857615958616d79565b6020026020010181905250856040015182828061597490616f15565b935060ff168151811061598957615989616d79565b60200260200101819052505b8560600151156159ff5760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d6573000000000000000000000000602082015282826159de81616f15565b935060ff16815181106159f3576159f3616d79565b60200260200101819052505b60008160ff1667ffffffffffffffff811115615a1d57615a1d6166f7565b604051908082528060200260200182016040528015615a5057816020015b6060815260200190600190039081615a3b5790505b50905060005b8260ff168160ff161015615aa957838160ff1681518110615a7957615a79616d79565b6020026020010151828260ff1681518110615a9657615a96616d79565b6020908102919091010152600101615a56565b50979650505050505050565b6040805180820190915260008082526020820152815183511015615ada5750816119e8565b81518351602085015160009291615af091617505565b615afa9190617414565b60208401519091506001908214615b1b575082516020840151819020908220145b8015615b3657835185518690615b32908390617414565b9052505b50929392505050565b6000808260000151615b638560000151866020015186600001518760200151615e71565b615b6d9190617505565b90505b83516020850151615b819190617505565b81116153cf5781615b9181617831565b9250508260000151615bc8856020015183615bac9190617414565b8651615bb89190617414565b8386600001518760200151615e71565b615bd29190617505565b9050615b70565b60606000615be78484615b3f565b615bf2906001617505565b67ffffffffffffffff811115615c0a57615c0a6166f7565b604051908082528060200260200182016040528015615c3d57816020015b6060815260200190600190039081615c285790505b50905060005b8151811015613cca57615c59613ff986866153b0565b828281518110615c6b57615c6b616d79565b6020908102919091010152600101615c43565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310615cc7577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310615cf3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310615d1157662386f26fc10000830492506010015b6305f5e1008310615d29576305f5e100830492506008015b6127108310615d3d57612710830492506004015b60648310615d4f576064830492506002015b600a83106119e85760010192915050565b600080858411615e675760208411615e135760008415615dab576001615d87866020617414565b615d929060086176c2565b615d9d9060026177c0565b615da79190617414565b1990505b8351811685615dba8989617505565b615dc49190617414565b805190935082165b818114615dfe57878411615de657879450505050506138fb565b83615df08161784b565b945050828451169050615dcc565b615e088785617505565b9450505050506138fb565b838320615e208588617414565b615e2a9087617505565b91505b858210615e6557848220808203615e5257615e488684617505565b93505050506138fb565b615e5d600184617414565b925050615e2d565b505b5092949350505050565b60008381868511615f7c5760208511615f2b5760008515615ebd576001615e99876020617414565b615ea49060086176c2565b615eaf9060026177c0565b615eb99190617414565b1990505b84518116600087615ece8b8b617505565b615ed89190617414565b855190915083165b828114615f1d57818610615f0557615ef88b8b617505565b96505050505050506138fb565b85615f0f81617831565b965050838651169050615ee0565b8596505050505050506138fb565b508383206000905b615f3d8689617414565b8211615f7a57858320808203615f5957839450505050506138fb565b615f64600185617505565b9350508180615f7290617831565b925050615f33565b505b615f868787617505565b979650505050505050565b60408051808201909152600080825260208201526000615fc38560000151866020015186600001518760200151615e71565b602080870180519186019190915251909150615fdf9082617414565b835284516020860151615ff29190617505565b81036160015760008552616033565b8351835161600f9190617505565b8551869061601e908390617414565b905250835161602d9082617505565b60208601525b50909392505050565b602081106160745781518352616053602084617505565b9250616060602083617505565b915061606d602082617414565b905061603c565b60001981156160a357600161608a836020617414565b616096906101006177c0565b6160a09190617414565b90505b9151835183169219169190911790915250565b606060006160c484846123ce565b80516020808301516040519394506160de93909101617862565b60405160208183030381529060405291505092915050565b610c9f806178bb83390190565b610b4a8061855a83390190565b610f9a806190a483390190565b610d5e8061a03e83390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161616d616172565b905290565b6040518061010001604052806000151581526020016000151581526020016060815260200160008019168152602001606081526020016060815260200160001515815260200161616d6040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b818110156162245783516001600160a01b03168352602093840193909201916001016161fd565b509095945050505050565b60005b8381101561624a578181015183820152602001616232565b50506000910152565b6000815180845261626b81602086016020860161622f565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561637b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015616361577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a850301835261634b848651616253565b6020958601959094509290920191600101616311565b5091975050506020948501949290920191506001016162a7565b50929695505050505050565b600081518084526020840193506020830160005b828110156163db5781517fffffffff000000000000000000000000000000000000000000000000000000001686526020958601959091019060010161639b565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561637b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281518051604087526164516040880182616253565b905060208201519150868103602088015261646c8183616387565b96505050602093840193919091019060010161640d565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561637b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184526164e5858351616253565b945060209384019391909101906001016164ab565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561637b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b038151168652602081015190506040602087015261657b6040870182616387565b9550506020938401939190910190600101616522565b6000602082840312156165a357600080fd5b81518015158114611b0e57600080fd5b600181811c908216806165c757607f821691505b6020821081036142d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006020828403121561661257600080fd5b81516001600160a01b0381168114611b0e57600080fd5b60608152600061663c6060830186616253565b602083019490945250901515604090910152919050565b6001600160a01b03841681528260208201526060604082015260006142ba6060830184616253565b6001600160a01b038616815284602082015260a0604082015260006166a360a0830186616253565b6060830194909452509015156080909101529392505050565b8281526040602082015260006138fb6040830184616253565b6001600160a01b03831681526040602082015260006138fb6040830184616253565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715616749576167496166f7565b60405290565b60008067ffffffffffffffff84111561676a5761676a6166f7565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715616799576167996166f7565b6040528381529050808284018510156167b157600080fd5b613cca84602083018561622f565b600082601f8301126167d057600080fd5b611b0e8383516020850161674f565b6000602082840312156167f157600080fd5b815167ffffffffffffffff81111561680857600080fd5b6119e4848285016167bf565b60006020828403121561682657600080fd5b5051919050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161686581601a85016020880161622f565b7f3a20000000000000000000000000000000000000000000000000000000000000601a9184019182015283516168a281601c84016020880161622f565b01601c01949350505050565b602081526000611b0e6020830184616253565b600083516168d381846020880161622f565b8351908301906168e781836020880161622f565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161692881601a85016020880161622f565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a91840191820152835161696581603384016020880161622f565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b6001600160a01b03841681526001600160a01b03831660208201526060604082015260006142ba6060830184616253565b60408152600b60408201527f464f554e4452595f4f55540000000000000000000000000000000000000000006060820152608060208201526000611b0e6080830184616253565b600060208284031215616a2557600080fd5b815167ffffffffffffffff811115616a3c57600080fd5b8201601f81018413616a4d57600080fd5b6119e48482516020840161674f565b60008551616a6e818460208a0161622f565b7f2f000000000000000000000000000000000000000000000000000000000000009083019081528551616aa8816001840160208a0161622f565b7f2f00000000000000000000000000000000000000000000000000000000000000600192909101918201528451616ae681600284016020890161622f565b6001818301019150507f2f0000000000000000000000000000000000000000000000000000000000000060018201528351616b2881600284016020880161622f565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b604081526000616b736040830184616253565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e2061727469666163742000815260008251616bea81601f85016020870161622f565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b604081526000616c576040830184616253565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b604081526000616ca96040830184616253565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b27000000000000000000000000815260008251616d2081601485016020870161622f565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b604081526000616d676040830185616253565b8281036020840152611b0a8185616253565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f2200000000000000000000000000000000000000000000000000000000000000815260008251616de081600185016020870161622f565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b60008251616e2681846020870161622f565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e747261637420000000000000000000000000000000000000000000604082015260008251616ed981604b85016020870161622f565b91909101604b0192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff821660ff8103616f2b57616f2b616ee6565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c69400000000000000000000000000000000000000000000000602082015260008251616f9281602985016020870161622f565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f50415448000000000000000000006060820152608060208201526000611b0e6080830184616253565b600060208284031215616ff857600080fd5b815167ffffffffffffffff81111561700f57600080fd5b82016060818503121561702157600080fd5b617029616726565b81518060030b811461703a57600080fd5b8152602082015167ffffffffffffffff81111561705657600080fd5b617062868285016167bf565b602083015250604082015167ffffffffffffffff81111561708257600080fd5b61708e868285016167bf565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f22000000000000000000000000000000000000000000000000000000000000006020820152600082516170fa81602185016020870161622f565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f27000000000000000000000000000000000000000000000000000000000000006020820152600083516172e681602185016020880161622f565b7f2720696e206f75747075743a2000000000000000000000000000000000000000602191840191820152835161732381602e84016020880161622f565b01602e01949350505050565b6000825161734181846020870161622f565b9190910192915050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a200000000000000000000000000000000000000000000000602082015260008251616f9281602985016020870161622f565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a00000000000000000000000000000000000000000000000000000000000060208201526000825161740781602285016020870161622f565b9190910160220192915050565b818103818111156119e8576119e8616ee6565b7f436f6e7472616374206e616d652000000000000000000000000000000000000081526000825161745f81600e85016020870161622f565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b808201808211156119e8576119e8616ee6565b7f53504458206c6963656e7365206964656e74696669657220000000000000000081526000835161755081601885016020880161622f565b7f20696e2000000000000000000000000000000000000000000000000000000000601891840191820152835161758d81601c84016020880161622f565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b6000825161769381846020870161622f565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b80820281158282048414176119e8576119e8616ee6565b6001815b6001841115617714578085048111156176f8576176f8616ee6565b600184161561770657908102905b60019390931c9280026176dd565b935093915050565b60008261772b575060016119e8565b81617738575060006119e8565b816001811461774e576002811461775857617774565b60019150506119e8565b60ff84111561776957617769616ee6565b50506001821b6119e8565b5060208310610133831016604e8410600b8410161715617797575081810a6119e8565b6177a460001984846176d9565b80600019048211156177b8576177b8616ee6565b029392505050565b6000611b0e838361771c565b81810360008312801583831316838312821617156153cf576153cf616ee6565b7f406f70656e7a657070656c696e2f75706772616465732d636f7265400000000081526000825161782481601c85016020870161622f565b91909101601c0192915050565b6000600019820361784457617844616ee6565b5060010190565b60008161785a5761785a616ee6565b506000190190565b6000835161787481846020880161622f565b7f3a0000000000000000000000000000000000000000000000000000000000000090830190815283516178ae81600184016020880161622f565b0160010194935050505056fe608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b50604051610b4a380380610b4a83398101604081905261002f916100bc565b60016000556001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ef565b80516001600160a01b03811681146100b757600080fd5b919050565b600080604083850312156100cf57600080fd5b6100d8836100a0565b91506100e6602084016100a0565b90509250929050565b610a4c806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80635b112591116100505780635b112591146100ca578063c8a02362146100ea578063d9caed12146100fd57600080fd5b8063116191b61461006c57806321fc65f2146100b5575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100c86100c3366004610822565b610110565b005b60025461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100c86100f8366004610822565b61029a565b6100c861010b3660046108bf565b61040b565b6101186104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610169576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546101909073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906101ee9088908890889088908890600401610945565b600060405180830381600087803b15801561020857600080fd5b505af115801561021c573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610281939291906109a2565b60405180910390a36102936001600055565b5050505050565b6102a26104fb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102f3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015461031a9073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906103789088908890889088908890600401610945565b600060405180830381600087803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8858585604051610281939291906109a2565b6104136104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61048573ffffffffffffffffffffffffffffffffffffffff8416838361053e565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104e491815260200190565b60405180910390a36104f66001600055565b505050565b600260005403610537576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f6918591906000906105d790841683610650565b905080516000141580156105fc5750808060200190518101906105fa91906109c5565b155b156104f6576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b606061065e83836000610665565b9392505050565b6060814710156106a3576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610647565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516106cc91906109e7565b60006040518083038185875af1925050503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b509150915061071e868383610728565b9695505050505050565b60608261073d57610738826107b7565b61065e565b8151158015610761575073ffffffffffffffffffffffffffffffffffffffff84163b155b156107b0576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610647565b508061065e565b8051156107c75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461081d57600080fd5b919050565b60008060008060006080868803121561083a57600080fd5b610843866107f9565b9450610851602087016107f9565b935060408601359250606086013567ffffffffffffffff81111561087457600080fd5b8601601f8101881361088557600080fd5b803567ffffffffffffffff81111561089c57600080fd5b8860208284010111156108ae57600080fd5b959894975092955050506020019190565b6000806000606084860312156108d457600080fd5b6108dd846107f9565b92506108eb602085016107f9565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006109976080830184866108fc565b979650505050505050565b8381526040602082015260006109bc6040830184866108fc565b95945050505050565b6000602082840312156109d757600080fd5b8151801515811461065e57600080fd5b6000825160005b81811015610a0857602081860181015185830152016109ee565b50600092019182525091905056fea264697066735822122041336b1568f49be1aa3dcd208e804b373772741e9b7e1726a8869e99fced60c764736f6c634300081a003360c060405260001960025534801561001657600080fd5b50604051610f9a380380610f9a833981016040819052610035916100d8565b60016000558282826001600160a01b038316158061005a57506001600160a01b038216155b8061006c57506001600160a01b038116155b1561008a5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0392831660805290821660a052600180546001600160a01b031916919092161790555061011b915050565b80516001600160a01b03811681146100d357600080fd5b919050565b6000806000606084860312156100ed57600080fd5b6100f6846100bc565b9250610104602085016100bc565b9150610112604085016100bc565b90509250925092565b60805160a051610e0061019a6000396000818161012601528181610216015281816103580152818161041e01528181610541015281816106630152818161077c015281816108be015281816109840152610af101526000818160d501528181610322015281816103ef0152818161088801526109550152610e006000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80635b112591116100765780636f8b44b01161005b5780636f8b44b01461017b578063743e0c9b1461018e578063d5abeb01146101a157600080fd5b80635b112591146101485780635e3e9fef1461016857600080fd5b806302d5c899146100a8578063106e6290146100bd578063116191b6146100d057806321e093b114610121575b600080fd5b6100bb6100b6366004610bca565b6101b8565b005b6100bb6100cb366004610c5c565b6104e3565b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b6001546100f79073ffffffffffffffffffffffffffffffffffffffff1681565b6100bb610176366004610bca565b61071e565b6100bb610189366004610c8f565b610a30565b6100bb61019c366004610c8f565b610abc565b6101aa60025481565b604051908152602001610118565b6101c0610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610211576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a39190610ca8565b6102ad9086610cc1565b11156102e5576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561039c57600080fd5b505af11580156103b0573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd4915061044e907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b15801561046857600080fd5b505af115801561047c573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8585856040516104ca93929190610da7565b60405180910390a26104dc6001600055565b5050505050565b6104eb610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff16331461053c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce9190610ca8565b6105d89084610cc1565b1115610610576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161070791815260200190565b60405180910390a26107196001600055565b505050565b610726610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610777576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190610ca8565b6108139086610cc1565b111561084b576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090257600080fd5b505af1158015610916573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab5991506109b4907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b1580156109ce57600080fd5b505af11580156109e2573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8585856040516104ca93929190610da7565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a81576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a150565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610b4a57600080fd5b505af11580156104dc573d6000803e3d6000fd5b600260005403610b9a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bc557600080fd5b919050565b600080600080600060808688031215610be257600080fd5b610beb86610ba1565b945060208601359350604086013567ffffffffffffffff811115610c0e57600080fd5b8601601f81018813610c1f57600080fd5b803567ffffffffffffffff811115610c3657600080fd5b886020828401011115610c4857600080fd5b959894975060200195606001359392505050565b600080600060608486031215610c7157600080fd5b610c7a84610ba1565b95602085013595506040909401359392505050565b600060208284031215610ca157600080fd5b5035919050565b600060208284031215610cba57600080fd5b5051919050565b80820180821115610cfb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610d9c608083018486610d01565b979650505050505050565b838152604060208201526000610dc1604083018486610d01565b9594505050505056fea2646970667358221220eef04aea35a49145971cb42500074f7c44d89db08a5df2b7d071494c05cc1a2a64736f6c634300081a00336080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a0033a2646970667358221220fb91357315243cd58b4984ef515d932060b4bcfe79bbfd334e009bce2403ecce64736f6c634300081a0033", +} + +// GatewayEVMUUPSUpgradeTestABI is the input ABI used to generate the binding from. +// Deprecated: Use GatewayEVMUUPSUpgradeTestMetaData.ABI instead. +var GatewayEVMUUPSUpgradeTestABI = GatewayEVMUUPSUpgradeTestMetaData.ABI + +// GatewayEVMUUPSUpgradeTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use GatewayEVMUUPSUpgradeTestMetaData.Bin instead. +var GatewayEVMUUPSUpgradeTestBin = GatewayEVMUUPSUpgradeTestMetaData.Bin + +// DeployGatewayEVMUUPSUpgradeTest deploys a new Ethereum contract, binding an instance of GatewayEVMUUPSUpgradeTest to it. +func DeployGatewayEVMUUPSUpgradeTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GatewayEVMUUPSUpgradeTest, error) { + parsed, err := GatewayEVMUUPSUpgradeTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(GatewayEVMUUPSUpgradeTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &GatewayEVMUUPSUpgradeTest{GatewayEVMUUPSUpgradeTestCaller: GatewayEVMUUPSUpgradeTestCaller{contract: contract}, GatewayEVMUUPSUpgradeTestTransactor: GatewayEVMUUPSUpgradeTestTransactor{contract: contract}, GatewayEVMUUPSUpgradeTestFilterer: GatewayEVMUUPSUpgradeTestFilterer{contract: contract}}, nil +} + +// GatewayEVMUUPSUpgradeTest is an auto generated Go binding around an Ethereum contract. +type GatewayEVMUUPSUpgradeTest struct { + GatewayEVMUUPSUpgradeTestCaller // Read-only binding to the contract + GatewayEVMUUPSUpgradeTestTransactor // Write-only binding to the contract + GatewayEVMUUPSUpgradeTestFilterer // Log filterer for contract events +} + +// GatewayEVMUUPSUpgradeTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type GatewayEVMUUPSUpgradeTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMUUPSUpgradeTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type GatewayEVMUUPSUpgradeTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMUUPSUpgradeTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type GatewayEVMUUPSUpgradeTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMUUPSUpgradeTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type GatewayEVMUUPSUpgradeTestSession struct { + Contract *GatewayEVMUUPSUpgradeTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMUUPSUpgradeTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type GatewayEVMUUPSUpgradeTestCallerSession struct { + Contract *GatewayEVMUUPSUpgradeTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// GatewayEVMUUPSUpgradeTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type GatewayEVMUUPSUpgradeTestTransactorSession struct { + Contract *GatewayEVMUUPSUpgradeTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMUUPSUpgradeTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type GatewayEVMUUPSUpgradeTestRaw struct { + Contract *GatewayEVMUUPSUpgradeTest // Generic contract binding to access the raw methods on +} + +// GatewayEVMUUPSUpgradeTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type GatewayEVMUUPSUpgradeTestCallerRaw struct { + Contract *GatewayEVMUUPSUpgradeTestCaller // Generic read-only contract binding to access the raw methods on +} + +// GatewayEVMUUPSUpgradeTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type GatewayEVMUUPSUpgradeTestTransactorRaw struct { + Contract *GatewayEVMUUPSUpgradeTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewGatewayEVMUUPSUpgradeTest creates a new instance of GatewayEVMUUPSUpgradeTest, bound to a specific deployed contract. +func NewGatewayEVMUUPSUpgradeTest(address common.Address, backend bind.ContractBackend) (*GatewayEVMUUPSUpgradeTest, error) { + contract, err := bindGatewayEVMUUPSUpgradeTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTest{GatewayEVMUUPSUpgradeTestCaller: GatewayEVMUUPSUpgradeTestCaller{contract: contract}, GatewayEVMUUPSUpgradeTestTransactor: GatewayEVMUUPSUpgradeTestTransactor{contract: contract}, GatewayEVMUUPSUpgradeTestFilterer: GatewayEVMUUPSUpgradeTestFilterer{contract: contract}}, nil +} + +// NewGatewayEVMUUPSUpgradeTestCaller creates a new read-only instance of GatewayEVMUUPSUpgradeTest, bound to a specific deployed contract. +func NewGatewayEVMUUPSUpgradeTestCaller(address common.Address, caller bind.ContractCaller) (*GatewayEVMUUPSUpgradeTestCaller, error) { + contract, err := bindGatewayEVMUUPSUpgradeTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestCaller{contract: contract}, nil +} + +// NewGatewayEVMUUPSUpgradeTestTransactor creates a new write-only instance of GatewayEVMUUPSUpgradeTest, bound to a specific deployed contract. +func NewGatewayEVMUUPSUpgradeTestTransactor(address common.Address, transactor bind.ContractTransactor) (*GatewayEVMUUPSUpgradeTestTransactor, error) { + contract, err := bindGatewayEVMUUPSUpgradeTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestTransactor{contract: contract}, nil +} + +// NewGatewayEVMUUPSUpgradeTestFilterer creates a new log filterer instance of GatewayEVMUUPSUpgradeTest, bound to a specific deployed contract. +func NewGatewayEVMUUPSUpgradeTestFilterer(address common.Address, filterer bind.ContractFilterer) (*GatewayEVMUUPSUpgradeTestFilterer, error) { + contract, err := bindGatewayEVMUUPSUpgradeTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestFilterer{contract: contract}, nil +} + +// bindGatewayEVMUUPSUpgradeTest binds a generic wrapper to an already deployed contract. +func bindGatewayEVMUUPSUpgradeTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := GatewayEVMUUPSUpgradeTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMUUPSUpgradeTest.Contract.GatewayEVMUUPSUpgradeTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.GatewayEVMUUPSUpgradeTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.GatewayEVMUUPSUpgradeTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMUUPSUpgradeTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.contract.Transact(opts, method, params...) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) ISTEST(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "IS_TEST") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) ISTEST() (bool, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.ISTEST(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) ISTEST() (bool, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.ISTEST(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) ExcludeArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "excludeArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) ExcludeArtifacts() ([]string, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.ExcludeArtifacts(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) ExcludeArtifacts() ([]string, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.ExcludeArtifacts(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) ExcludeContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "excludeContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.ExcludeContracts(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.ExcludeContracts(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) ExcludeSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "excludeSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.ExcludeSelectors(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.ExcludeSelectors(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) ExcludeSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "excludeSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.ExcludeSenders(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.ExcludeSenders(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) Failed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "failed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) Failed() (bool, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.Failed(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) Failed() (bool, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.Failed(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) TargetArtifactSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzArtifactSelector, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "targetArtifactSelectors") + + if err != nil { + return *new([]StdInvariantFuzzArtifactSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzArtifactSelector)).(*[]StdInvariantFuzzArtifactSelector) + + return out0, err + +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetArtifactSelectors(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetArtifactSelectors(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) TargetArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "targetArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) TargetArtifacts() ([]string, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetArtifacts(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) TargetArtifacts() ([]string, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetArtifacts(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) TargetContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "targetContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) TargetContracts() ([]common.Address, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetContracts(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) TargetContracts() ([]common.Address, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetContracts(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) TargetInterfaces(opts *bind.CallOpts) ([]StdInvariantFuzzInterface, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "targetInterfaces") + + if err != nil { + return *new([]StdInvariantFuzzInterface), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzInterface)).(*[]StdInvariantFuzzInterface) + + return out0, err + +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetInterfaces(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetInterfaces(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) TargetSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "targetSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetSelectors(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetSelectors(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCaller) TargetSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMUUPSUpgradeTest.contract.Call(opts, &out, "targetSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) TargetSenders() ([]common.Address, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetSenders(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestCallerSession) TargetSenders() ([]common.Address, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TargetSenders(&_GatewayEVMUUPSUpgradeTest.CallOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestTransactor) SetUp(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMUUPSUpgradeTest.contract.Transact(opts, "setUp") +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) SetUp() (*types.Transaction, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.SetUp(&_GatewayEVMUUPSUpgradeTest.TransactOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestTransactorSession) SetUp() (*types.Transaction, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.SetUp(&_GatewayEVMUUPSUpgradeTest.TransactOpts) +} + +// TestUpgradeAndForwardCallToReceivePayable is a paid mutator transaction binding the contract method 0x7a380ebf. +// +// Solidity: function testUpgradeAndForwardCallToReceivePayable() returns() +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestTransactor) TestUpgradeAndForwardCallToReceivePayable(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMUUPSUpgradeTest.contract.Transact(opts, "testUpgradeAndForwardCallToReceivePayable") +} + +// TestUpgradeAndForwardCallToReceivePayable is a paid mutator transaction binding the contract method 0x7a380ebf. +// +// Solidity: function testUpgradeAndForwardCallToReceivePayable() returns() +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestSession) TestUpgradeAndForwardCallToReceivePayable() (*types.Transaction, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TestUpgradeAndForwardCallToReceivePayable(&_GatewayEVMUUPSUpgradeTest.TransactOpts) +} + +// TestUpgradeAndForwardCallToReceivePayable is a paid mutator transaction binding the contract method 0x7a380ebf. +// +// Solidity: function testUpgradeAndForwardCallToReceivePayable() returns() +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestTransactorSession) TestUpgradeAndForwardCallToReceivePayable() (*types.Transaction, error) { + return _GatewayEVMUUPSUpgradeTest.Contract.TestUpgradeAndForwardCallToReceivePayable(&_GatewayEVMUUPSUpgradeTest.TransactOpts) +} + +// GatewayEVMUUPSUpgradeTestCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestCallIterator struct { + Event *GatewayEVMUUPSUpgradeTestCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestCall represents a Call event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestCall struct { + Sender common.Address + Receiver common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMUUPSUpgradeTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestCallIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestCall, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestCall) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseCall(log types.Log) (*GatewayEVMUUPSUpgradeTestCall, error) { + event := new(GatewayEVMUUPSUpgradeTestCall) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestDepositIterator struct { + Event *GatewayEVMUUPSUpgradeTestDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestDeposit represents a Deposit event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestDeposit struct { + Sender common.Address + Receiver common.Address + Amount *big.Int + Asset common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterDeposit(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMUUPSUpgradeTestDepositIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestDepositIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestDeposit, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestDeposit) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseDeposit(log types.Log) (*GatewayEVMUUPSUpgradeTestDeposit, error) { + event := new(GatewayEVMUUPSUpgradeTestDeposit) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestExecutedIterator is returned from FilterExecuted and is used to iterate over the raw logs and unpacked data for Executed events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestExecutedIterator struct { + Event *GatewayEVMUUPSUpgradeTestExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestExecuted represents a Executed event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestExecuted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMUUPSUpgradeTestExecutedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestExecutedIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "Executed", logs: logs, sub: sub}, nil +} + +// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchExecuted(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestExecuted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestExecuted) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "Executed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseExecuted(log types.Log) (*GatewayEVMUUPSUpgradeTestExecuted, error) { + event := new(GatewayEVMUUPSUpgradeTestExecuted) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "Executed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestExecutedV2Iterator is returned from FilterExecutedV2 and is used to iterate over the raw logs and unpacked data for ExecutedV2 events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestExecutedV2Iterator struct { + Event *GatewayEVMUUPSUpgradeTestExecutedV2 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestExecutedV2Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestExecutedV2) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestExecutedV2) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestExecutedV2Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestExecutedV2Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestExecutedV2 represents a ExecutedV2 event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestExecutedV2 struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedV2 is a free log retrieval operation binding the contract event 0x373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546. +// +// Solidity: event ExecutedV2(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterExecutedV2(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMUUPSUpgradeTestExecutedV2Iterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "ExecutedV2", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestExecutedV2Iterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "ExecutedV2", logs: logs, sub: sub}, nil +} + +// WatchExecutedV2 is a free log subscription operation binding the contract event 0x373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546. +// +// Solidity: event ExecutedV2(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchExecutedV2(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestExecutedV2, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "ExecutedV2", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestExecutedV2) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ExecutedV2", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedV2 is a log parse operation binding the contract event 0x373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546. +// +// Solidity: event ExecutedV2(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseExecutedV2(log types.Log) (*GatewayEVMUUPSUpgradeTestExecutedV2, error) { + event := new(GatewayEVMUUPSUpgradeTestExecutedV2) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ExecutedV2", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestExecutedWithERC20Iterator is returned from FilterExecutedWithERC20 and is used to iterate over the raw logs and unpacked data for ExecutedWithERC20 events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestExecutedWithERC20Iterator struct { + Event *GatewayEVMUUPSUpgradeTestExecutedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestExecutedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestExecutedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestExecutedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestExecutedWithERC20 represents a ExecutedWithERC20 event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestExecutedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterExecutedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMUUPSUpgradeTestExecutedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestExecutedWithERC20Iterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchExecutedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestExecutedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestExecutedWithERC20) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseExecutedWithERC20(log types.Log) (*GatewayEVMUUPSUpgradeTestExecutedWithERC20, error) { + event := new(GatewayEVMUUPSUpgradeTestExecutedWithERC20) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestReceivedERC20Iterator is returned from FilterReceivedERC20 and is used to iterate over the raw logs and unpacked data for ReceivedERC20 events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReceivedERC20Iterator struct { + Event *GatewayEVMUUPSUpgradeTestReceivedERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestReceivedERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestReceivedERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestReceivedERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestReceivedERC20 represents a ReceivedERC20 event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReceivedERC20 struct { + Sender common.Address + Amount *big.Int + Token common.Address + Destination common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedERC20 is a free log retrieval operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterReceivedERC20(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestReceivedERC20Iterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestReceivedERC20Iterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "ReceivedERC20", logs: logs, sub: sub}, nil +} + +// WatchReceivedERC20 is a free log subscription operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchReceivedERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestReceivedERC20) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestReceivedERC20) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedERC20 is a log parse operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseReceivedERC20(log types.Log) (*GatewayEVMUUPSUpgradeTestReceivedERC20, error) { + event := new(GatewayEVMUUPSUpgradeTestReceivedERC20) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestReceivedNoParamsIterator is returned from FilterReceivedNoParams and is used to iterate over the raw logs and unpacked data for ReceivedNoParams events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReceivedNoParamsIterator struct { + Event *GatewayEVMUUPSUpgradeTestReceivedNoParams // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestReceivedNoParamsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestReceivedNoParamsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestReceivedNoParamsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestReceivedNoParams represents a ReceivedNoParams event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReceivedNoParams struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNoParams is a free log retrieval operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterReceivedNoParams(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestReceivedNoParamsIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestReceivedNoParamsIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "ReceivedNoParams", logs: logs, sub: sub}, nil +} + +// WatchReceivedNoParams is a free log subscription operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchReceivedNoParams(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestReceivedNoParams) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestReceivedNoParams) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNoParams is a log parse operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseReceivedNoParams(log types.Log) (*GatewayEVMUUPSUpgradeTestReceivedNoParams, error) { + event := new(GatewayEVMUUPSUpgradeTestReceivedNoParams) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestReceivedNonPayableIterator is returned from FilterReceivedNonPayable and is used to iterate over the raw logs and unpacked data for ReceivedNonPayable events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReceivedNonPayableIterator struct { + Event *GatewayEVMUUPSUpgradeTestReceivedNonPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestReceivedNonPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestReceivedNonPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestReceivedNonPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestReceivedNonPayable represents a ReceivedNonPayable event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReceivedNonPayable struct { + Sender common.Address + Strs []string + Nums []*big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNonPayable is a free log retrieval operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterReceivedNonPayable(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestReceivedNonPayableIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestReceivedNonPayableIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "ReceivedNonPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedNonPayable is a free log subscription operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchReceivedNonPayable(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestReceivedNonPayable) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestReceivedNonPayable) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNonPayable is a log parse operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseReceivedNonPayable(log types.Log) (*GatewayEVMUUPSUpgradeTestReceivedNonPayable, error) { + event := new(GatewayEVMUUPSUpgradeTestReceivedNonPayable) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestReceivedPayableIterator is returned from FilterReceivedPayable and is used to iterate over the raw logs and unpacked data for ReceivedPayable events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReceivedPayableIterator struct { + Event *GatewayEVMUUPSUpgradeTestReceivedPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestReceivedPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestReceivedPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestReceivedPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestReceivedPayable represents a ReceivedPayable event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReceivedPayable struct { + Sender common.Address + Value *big.Int + Str string + Num *big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedPayable is a free log retrieval operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterReceivedPayable(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestReceivedPayableIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestReceivedPayableIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "ReceivedPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedPayable is a free log subscription operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchReceivedPayable(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestReceivedPayable) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestReceivedPayable) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedPayable is a log parse operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseReceivedPayable(log types.Log) (*GatewayEVMUUPSUpgradeTestReceivedPayable, error) { + event := new(GatewayEVMUUPSUpgradeTestReceivedPayable) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestReceivedRevertIterator is returned from FilterReceivedRevert and is used to iterate over the raw logs and unpacked data for ReceivedRevert events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReceivedRevertIterator struct { + Event *GatewayEVMUUPSUpgradeTestReceivedRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestReceivedRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestReceivedRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestReceivedRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestReceivedRevert represents a ReceivedRevert event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReceivedRevert struct { + Sender common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedRevert is a free log retrieval operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterReceivedRevert(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestReceivedRevertIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestReceivedRevertIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "ReceivedRevert", logs: logs, sub: sub}, nil +} + +// WatchReceivedRevert is a free log subscription operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchReceivedRevert(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestReceivedRevert) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestReceivedRevert) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedRevert is a log parse operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseReceivedRevert(log types.Log) (*GatewayEVMUUPSUpgradeTestReceivedRevert, error) { + event := new(GatewayEVMUUPSUpgradeTestReceivedRevert) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestRevertedIterator is returned from FilterReverted and is used to iterate over the raw logs and unpacked data for Reverted events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestRevertedIterator struct { + Event *GatewayEVMUUPSUpgradeTestReverted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestRevertedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestRevertedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestRevertedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestReverted represents a Reverted event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestReverted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMUUPSUpgradeTestRevertedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestRevertedIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "Reverted", logs: logs, sub: sub}, nil +} + +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchReverted(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestReverted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestReverted) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseReverted(log types.Log) (*GatewayEVMUUPSUpgradeTestReverted, error) { + event := new(GatewayEVMUUPSUpgradeTestReverted) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestRevertedWithERC20Iterator is returned from FilterRevertedWithERC20 and is used to iterate over the raw logs and unpacked data for RevertedWithERC20 events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestRevertedWithERC20Iterator struct { + Event *GatewayEVMUUPSUpgradeTestRevertedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestRevertedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestRevertedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestRevertedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestRevertedWithERC20 represents a RevertedWithERC20 event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestRevertedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterRevertedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMUUPSUpgradeTestRevertedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestRevertedWithERC20Iterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchRevertedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestRevertedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestRevertedWithERC20) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseRevertedWithERC20(log types.Log) (*GatewayEVMUUPSUpgradeTestRevertedWithERC20, error) { + event := new(GatewayEVMUUPSUpgradeTestRevertedWithERC20) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogIterator is returned from FilterLog and is used to iterate over the raw logs and unpacked data for Log events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogIterator struct { + Event *GatewayEVMUUPSUpgradeTestLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLog represents a Log event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLog struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLog is a free log retrieval operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLog(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log", logs: logs, sub: sub}, nil +} + +// WatchLog is a free log subscription operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLog(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLog) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLog) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLog is a log parse operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLog(log types.Log) (*GatewayEVMUUPSUpgradeTestLog, error) { + event := new(GatewayEVMUUPSUpgradeTestLog) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogAddressIterator is returned from FilterLogAddress and is used to iterate over the raw logs and unpacked data for LogAddress events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogAddressIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogAddress represents a LogAddress event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogAddress struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAddress is a free log retrieval operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogAddress(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogAddressIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_address") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogAddressIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_address", logs: logs, sub: sub}, nil +} + +// WatchLogAddress is a free log subscription operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogAddress(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogAddress) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogAddress is a log parse operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogAddress(log types.Log) (*GatewayEVMUUPSUpgradeTestLogAddress, error) { + event := new(GatewayEVMUUPSUpgradeTestLogAddress) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogArrayIterator is returned from FilterLogArray and is used to iterate over the raw logs and unpacked data for LogArray events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogArrayIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogArray represents a LogArray event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogArray struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray is a free log retrieval operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogArray(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogArrayIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_array") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogArrayIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_array", logs: logs, sub: sub}, nil +} + +// WatchLogArray is a free log subscription operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogArray(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogArray) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogArray) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray is a log parse operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogArray(log types.Log) (*GatewayEVMUUPSUpgradeTestLogArray, error) { + event := new(GatewayEVMUUPSUpgradeTestLogArray) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogArray0Iterator is returned from FilterLogArray0 and is used to iterate over the raw logs and unpacked data for LogArray0 events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogArray0Iterator struct { + Event *GatewayEVMUUPSUpgradeTestLogArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogArray0 represents a LogArray0 event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogArray0 struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray0 is a free log retrieval operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogArray0(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogArray0Iterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogArray0Iterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_array0", logs: logs, sub: sub}, nil +} + +// WatchLogArray0 is a free log subscription operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogArray0(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogArray0) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray0 is a log parse operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogArray0(log types.Log) (*GatewayEVMUUPSUpgradeTestLogArray0, error) { + event := new(GatewayEVMUUPSUpgradeTestLogArray0) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogArray1Iterator is returned from FilterLogArray1 and is used to iterate over the raw logs and unpacked data for LogArray1 events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogArray1Iterator struct { + Event *GatewayEVMUUPSUpgradeTestLogArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogArray1 represents a LogArray1 event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogArray1 struct { + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray1 is a free log retrieval operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogArray1(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogArray1Iterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogArray1Iterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_array1", logs: logs, sub: sub}, nil +} + +// WatchLogArray1 is a free log subscription operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogArray1(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogArray1) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray1 is a log parse operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogArray1(log types.Log) (*GatewayEVMUUPSUpgradeTestLogArray1, error) { + event := new(GatewayEVMUUPSUpgradeTestLogArray1) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogBytesIterator is returned from FilterLogBytes and is used to iterate over the raw logs and unpacked data for LogBytes events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogBytesIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogBytes represents a LogBytes event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogBytes struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes is a free log retrieval operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogBytes(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogBytesIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogBytesIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogBytes is a free log subscription operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogBytes(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogBytes) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes is a log parse operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogBytes(log types.Log) (*GatewayEVMUUPSUpgradeTestLogBytes, error) { + event := new(GatewayEVMUUPSUpgradeTestLogBytes) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogBytes32Iterator is returned from FilterLogBytes32 and is used to iterate over the raw logs and unpacked data for LogBytes32 events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogBytes32Iterator struct { + Event *GatewayEVMUUPSUpgradeTestLogBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogBytes32 represents a LogBytes32 event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogBytes32 struct { + Arg0 [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes32 is a free log retrieval operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogBytes32(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogBytes32Iterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogBytes32Iterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogBytes32 is a free log subscription operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogBytes32(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogBytes32) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes32 is a log parse operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogBytes32(log types.Log) (*GatewayEVMUUPSUpgradeTestLogBytes32, error) { + event := new(GatewayEVMUUPSUpgradeTestLogBytes32) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogIntIterator is returned from FilterLogInt and is used to iterate over the raw logs and unpacked data for LogInt events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogIntIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogInt represents a LogInt event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogInt struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogInt is a free log retrieval operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogInt(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogIntIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_int") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogIntIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_int", logs: logs, sub: sub}, nil +} + +// WatchLogInt is a free log subscription operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogInt) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogInt is a log parse operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogInt(log types.Log) (*GatewayEVMUUPSUpgradeTestLogInt, error) { + event := new(GatewayEVMUUPSUpgradeTestLogInt) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedAddressIterator is returned from FilterLogNamedAddress and is used to iterate over the raw logs and unpacked data for LogNamedAddress events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedAddressIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedAddress represents a LogNamedAddress event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedAddress struct { + Key string + Val common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedAddress is a free log retrieval operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedAddress(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedAddressIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedAddressIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_address", logs: logs, sub: sub}, nil +} + +// WatchLogNamedAddress is a free log subscription operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedAddress(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedAddress) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedAddress is a log parse operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedAddress(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedAddress, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedAddress) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedArrayIterator is returned from FilterLogNamedArray and is used to iterate over the raw logs and unpacked data for LogNamedArray events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedArrayIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedArray represents a LogNamedArray event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedArray struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray is a free log retrieval operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedArray(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedArrayIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedArrayIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_array", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray is a free log subscription operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedArray(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedArray) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedArray) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray is a log parse operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedArray(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedArray, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedArray) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedArray0Iterator is returned from FilterLogNamedArray0 and is used to iterate over the raw logs and unpacked data for LogNamedArray0 events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedArray0Iterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedArray0 represents a LogNamedArray0 event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedArray0 struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray0 is a free log retrieval operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedArray0(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedArray0Iterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedArray0Iterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_array0", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray0 is a free log subscription operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedArray0(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedArray0) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray0 is a log parse operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedArray0(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedArray0, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedArray0) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedArray1Iterator is returned from FilterLogNamedArray1 and is used to iterate over the raw logs and unpacked data for LogNamedArray1 events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedArray1Iterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedArray1 represents a LogNamedArray1 event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedArray1 struct { + Key string + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray1 is a free log retrieval operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedArray1(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedArray1Iterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedArray1Iterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_array1", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray1 is a free log subscription operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedArray1(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedArray1) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray1 is a log parse operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedArray1(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedArray1, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedArray1) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedBytesIterator is returned from FilterLogNamedBytes and is used to iterate over the raw logs and unpacked data for LogNamedBytes events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedBytesIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedBytes represents a LogNamedBytes event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedBytes struct { + Key string + Val []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes is a free log retrieval operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedBytes(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedBytesIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedBytesIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes is a free log subscription operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedBytes(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedBytes) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes is a log parse operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedBytes(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedBytes, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedBytes) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedBytes32Iterator is returned from FilterLogNamedBytes32 and is used to iterate over the raw logs and unpacked data for LogNamedBytes32 events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedBytes32Iterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedBytes32 represents a LogNamedBytes32 event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedBytes32 struct { + Key string + Val [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes32 is a free log retrieval operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedBytes32(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedBytes32Iterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedBytes32Iterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes32 is a free log subscription operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedBytes32(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedBytes32) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes32 is a log parse operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedBytes32(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedBytes32, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedBytes32) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedDecimalIntIterator is returned from FilterLogNamedDecimalInt and is used to iterate over the raw logs and unpacked data for LogNamedDecimalInt events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedDecimalIntIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedDecimalInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedDecimalIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedDecimalIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedDecimalIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedDecimalInt represents a LogNamedDecimalInt event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedDecimalInt struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalInt is a free log retrieval operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedDecimalInt(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedDecimalIntIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedDecimalIntIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_decimal_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalInt is a free log subscription operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedDecimalInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedDecimalInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedDecimalInt) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalInt is a log parse operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedDecimalInt(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedDecimalInt, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedDecimalInt) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedDecimalUintIterator is returned from FilterLogNamedDecimalUint and is used to iterate over the raw logs and unpacked data for LogNamedDecimalUint events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedDecimalUintIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedDecimalUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedDecimalUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedDecimalUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedDecimalUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedDecimalUint represents a LogNamedDecimalUint event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedDecimalUint struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalUint is a free log retrieval operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedDecimalUint(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedDecimalUintIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedDecimalUintIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_decimal_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalUint is a free log subscription operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedDecimalUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedDecimalUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedDecimalUint) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalUint is a log parse operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedDecimalUint(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedDecimalUint, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedDecimalUint) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedIntIterator is returned from FilterLogNamedInt and is used to iterate over the raw logs and unpacked data for LogNamedInt events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedIntIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedInt represents a LogNamedInt event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedInt struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedInt is a free log retrieval operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedInt(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedIntIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedIntIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedInt is a free log subscription operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedInt) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedInt is a log parse operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedInt(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedInt, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedInt) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedStringIterator is returned from FilterLogNamedString and is used to iterate over the raw logs and unpacked data for LogNamedString events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedStringIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedString represents a LogNamedString event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedString struct { + Key string + Val string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedString is a free log retrieval operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedString(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedStringIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedStringIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_string", logs: logs, sub: sub}, nil +} + +// WatchLogNamedString is a free log subscription operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedString(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedString) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedString) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedString is a log parse operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedString(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedString, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedString) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedUintIterator is returned from FilterLogNamedUint and is used to iterate over the raw logs and unpacked data for LogNamedUint events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedUintIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogNamedUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogNamedUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogNamedUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogNamedUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogNamedUint represents a LogNamedUint event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogNamedUint struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedUint is a free log retrieval operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogNamedUint(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogNamedUintIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogNamedUintIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_named_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedUint is a free log subscription operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogNamedUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogNamedUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogNamedUint) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedUint is a log parse operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogNamedUint(log types.Log) (*GatewayEVMUUPSUpgradeTestLogNamedUint, error) { + event := new(GatewayEVMUUPSUpgradeTestLogNamedUint) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogStringIterator is returned from FilterLogString and is used to iterate over the raw logs and unpacked data for LogString events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogStringIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogString represents a LogString event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogString struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogString is a free log retrieval operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogString(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogStringIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_string") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogStringIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_string", logs: logs, sub: sub}, nil +} + +// WatchLogString is a free log subscription operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogString(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogString) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogString) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogString is a log parse operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogString(log types.Log) (*GatewayEVMUUPSUpgradeTestLogString, error) { + event := new(GatewayEVMUUPSUpgradeTestLogString) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogUintIterator is returned from FilterLogUint and is used to iterate over the raw logs and unpacked data for LogUint events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogUintIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogUint represents a LogUint event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogUint struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogUint is a free log retrieval operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogUint(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogUintIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogUintIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "log_uint", logs: logs, sub: sub}, nil +} + +// WatchLogUint is a free log subscription operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogUint) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogUint is a log parse operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogUint(log types.Log) (*GatewayEVMUUPSUpgradeTestLogUint, error) { + event := new(GatewayEVMUUPSUpgradeTestLogUint) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUUPSUpgradeTestLogsIterator is returned from FilterLogs and is used to iterate over the raw logs and unpacked data for Logs events raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogsIterator struct { + Event *GatewayEVMUUPSUpgradeTestLogs // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUUPSUpgradeTestLogsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUUPSUpgradeTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUUPSUpgradeTestLogsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUUPSUpgradeTestLogsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUUPSUpgradeTestLogs represents a Logs event raised by the GatewayEVMUUPSUpgradeTest contract. +type GatewayEVMUUPSUpgradeTestLogs struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogs is a free log retrieval operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) FilterLogs(opts *bind.FilterOpts) (*GatewayEVMUUPSUpgradeTestLogsIterator, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.FilterLogs(opts, "logs") + if err != nil { + return nil, err + } + return &GatewayEVMUUPSUpgradeTestLogsIterator{contract: _GatewayEVMUUPSUpgradeTest.contract, event: "logs", logs: logs, sub: sub}, nil +} + +// WatchLogs is a free log subscription operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) WatchLogs(opts *bind.WatchOpts, sink chan<- *GatewayEVMUUPSUpgradeTestLogs) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUUPSUpgradeTest.contract.WatchLogs(opts, "logs") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUUPSUpgradeTestLogs) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "logs", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogs is a log parse operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMUUPSUpgradeTest *GatewayEVMUUPSUpgradeTestFilterer) ParseLogs(log types.Log) (*GatewayEVMUUPSUpgradeTestLogs, error) { + event := new(GatewayEVMUUPSUpgradeTestLogs) + if err := _GatewayEVMUUPSUpgradeTest.contract.UnpackLog(event, "logs", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/gatewayevmupgradetest.sol/gatewayevmupgradetest.go b/v2/pkg/gatewayevmupgradetest.sol/gatewayevmupgradetest.go new file mode 100644 index 00000000..61308e06 --- /dev/null +++ b/v2/pkg/gatewayevmupgradetest.sol/gatewayevmupgradetest.go @@ -0,0 +1,2224 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package gatewayevmupgradetest + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// GatewayEVMUpgradeTestMetaData contains all meta data concerning the GatewayEVMUpgradeTest contract. +var GatewayEVMUpgradeTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"UPGRADE_INTERFACE_VERSION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"call\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"custody\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositAndCall\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"depositAndCall\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"execute\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"executeRevert\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"executeWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_tssAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_zetaToken\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proxiableUUID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revertWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setConnector\",\"inputs\":[{\"name\":\"_zetaConnector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setCustody\",\"inputs\":[{\"name\":\"_custody\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"upgradeToAndCall\",\"inputs\":[{\"name\":\"newImplementation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"zetaConnector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"zetaToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Executed\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedV2\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Reverted\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RevertedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ERC1967InvalidImplementation\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967NonPayable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"UUPSUnauthorizedCallContext\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UUPSUnsupportedProxiableUUID\",\"inputs\":[{\"name\":\"slot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x60a060405230608052348015601357600080fd5b5060805161254461003d600039600081816114730152818161149c01526118e201526125446000f3fe6080604052600436106101755760003560e01c80635b112591116100cb578063ae7a3a6f1161007f578063f2fde38b11610059578063f2fde38b14610414578063f340fa0114610434578063f45346dc1461044757600080fd5b8063ae7a3a6f146103b4578063b8969bd4146103d4578063dda79b75146103f457600080fd5b80638c6f037f116100b05780638c6f037f1461030e5780638da5cb5b1461032e578063ad3cb1cc1461036b57600080fd5b80635b112591146102d9578063715018a6146102f957600080fd5b806335c018db1161012d5780635131ab59116101075780635131ab591461027657806352d1902d1461029657806357bec62f146102b957600080fd5b806335c018db14610230578063485cc955146102435780634f1ef2861461026357600080fd5b80631cff79cd1161015e5780631cff79cd146101bc57806321e093b1146101e557806329c59b5d1461021d57600080fd5b806310188aef1461017a5780631b8b921d1461019c575b600080fd5b34801561018657600080fd5b5061019a610195366004612061565b610467565b005b3480156101a857600080fd5b5061019a6101b73660046120c5565b610524565b6101cf6101ca3660046120c5565b610576565b6040516101dc9190612186565b60405180910390f35b3480156101f157600080fd5b50600354610205906001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b61019a61022b3660046120c5565b61061b565b61019a61023e3660046120c5565b610740565b34801561024f57600080fd5b5061019a61025e366004612199565b6108d8565b61019a6102713660046121fb565b610b05565b34801561028257600080fd5b5061019a610291366004612302565b610b24565b3480156102a257600080fd5b506102ab610e2b565b6040519081526020016101dc565b3480156102c557600080fd5b50600254610205906001600160a01b031681565b3480156102e557600080fd5b50600154610205906001600160a01b031681565b34801561030557600080fd5b5061019a610e5a565b34801561031a57600080fd5b5061019a610329366004612371565b610e6e565b34801561033a57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610205565b34801561037757600080fd5b506101cf6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156103c057600080fd5b5061019a6103cf366004612061565b610f0b565b3480156103e057600080fd5b5061019a6103ef366004612302565b610fc8565b34801561040057600080fd5b50600054610205906001600160a01b031681565b34801561042057600080fd5b5061019a61042f366004612061565b61116c565b61019a610442366004612061565b6111c8565b34801561045357600080fd5b5061019a6104623660046123c3565b6112ed565b6002546001600160a01b0316156104aa576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166104ea576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde38484604051610569929190612448565b60405180910390a3505050565b6001546060906001600160a01b031633146105bd576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105ca858585611398565b9050846001600160a01b03167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e854634868660405161060993929190612464565b60405180910390a290505b9392505050565b34600003610655576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146106a2576040519150601f19603f3d011682016040523d82523d6000602084013e6106a7565b606091505b50909150508015156000036106e8576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a43460008787604051610732949392919061247e565b60405180910390a350505050565b6001546001600160a01b03163314610784576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080846001600160a01b03163460405160006040518083038185875af1925050503d80600081146107d2576040519150601f19603f3d011682016040523d82523d6000602084013e6107d7565b606091505b509150915081610813576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b59061085a9087908790600401612448565b600060405180830381600087803b15801561087457600080fd5b505af1158015610888573d6000803e3d6000fd5b50505050846001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c3486866040516108c993929190612464565b60405180910390a25050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109235750825b905060008267ffffffffffffffff1660011480156109405750303b155b90508115801561094e575080155b15610985576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156109e65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b0387161580610a0357506001600160a01b038616155b15610a3a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a433361143f565b610a4b611450565b610a53611458565b600180546001600160a01b03808a167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560038054928916929091169190911790558315610afc5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610b0d611468565b610b1682611538565b610b208282611540565b5050565b610b2c611664565b6000546001600160a01b03163314801590610b5257506002546001600160a01b03163314155b15610b89576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003610bc3576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bcd85856116e5565b610c03576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905286169063095ea7b3906044016020604051808303816000875af1158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f91906124a7565b610cc5576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610cd2858484611398565b9050610cde86866116e5565b610d14576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9891906124c9565b90508015610daa57610daa8782611775565b856001600160a01b0316876001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382878787604051610df193929190612464565b60405180910390a35050610e2460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6000610e356118d7565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610e62611939565b610e6c60006119ad565b565b83600003610ea8576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eb3338486611a36565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a486868686604051610efc949392919061247e565b60405180910390a35050505050565b6000546001600160a01b031615610f4e576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610f8e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610fd0611664565b6000546001600160a01b03163314801590610ff657506002546001600160a01b03163314155b1561102d576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003611067576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61107b6001600160a01b0386168585611b81565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638fcaa0b5906110c29085908590600401612448565b600060405180830381600087803b1580156110dc57600080fd5b505af11580156110f0573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda785858560405161113b93929190612464565b60405180910390a3610e2460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611174611939565b6001600160a01b0381166111bc576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6111c5816119ad565b50565b34600003611202576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d806000811461124f576040519150601f19603f3d011682016040523d82523d6000602084013e611254565b606091505b5090915050801515600003611295576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b81600003611327576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611332338284611a36565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a484846040516105699291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b6060600080856001600160a01b03163486866040516113b89291906124e2565b60006040518083038185875af1925050503d80600081146113f5576040519150601f19603f3d011682016040523d82523d6000602084013e6113fa565b606091505b509150915081611436576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b95945050505050565b611447611bf5565b6111c581611c5c565b610e6c611bf5565b611460611bf5565b610e6c611c64565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061150157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114f57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15610e6c576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111c5611939565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156115b8575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526115b5918101906124c9565b60015b6115f9576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016111b3565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611655576040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600481018290526024016111b3565b61165f8383611c6c565b505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016116df576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af1158015611751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061491906124a7565b6003546001600160a01b0390811690831603611897576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af11580156117f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181b91906124a7565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b15801561187b57600080fd5b505af115801561188f573d6000803e3d6000fd5b505050505050565b600054610b20906001600160a01b03848116911683611b81565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e6c576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3361196b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610e6c576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016111b3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6003546001600160a01b0390811690831603611b6557611a616001600160a01b038316843084611cc2565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611acd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af191906124a7565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611b5157600080fd5b505af1158015610afc573d6000803e3d6000fd5b60005461165f906001600160a01b038481169186911684611cc2565b6040516001600160a01b0383811660248301526044820183905261165f91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d01565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610e6c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611174611bf5565b6118b1611bf5565b611c7582611d7d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cba5761165f8282611e25565b610b20611e92565b6040516001600160a01b038481166024830152838116604483015260648201839052611cfb9186918216906323b872dd90608401611bae565b50505050565b6000611d166001600160a01b03841683611eca565b90508051600014158015611d3b575080806020019051810190611d3991906124a7565b155b1561165f576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016111b3565b806001600160a01b03163b600003611dcc576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016111b3565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611e4291906124f2565b600060405180830381855af49150503d8060008114611e7d576040519150601f19603f3d011682016040523d82523d6000602084013e611e82565b606091505b5091509150611436858383611ed8565b3415610e6c576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606061061483836000611f4d565b606082611eed57611ee882612003565b610614565b8151158015611f0457506001600160a01b0384163b155b15611f46576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016111b3565b5080610614565b606081471015611f8b576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016111b3565b600080856001600160a01b03168486604051611fa791906124f2565b60006040518083038185875af1925050503d8060008114611fe4576040519150601f19603f3d011682016040523d82523d6000602084013e611fe9565b606091505b5091509150611ff9868383611ed8565b9695505050505050565b8051156120135780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b038116811461205c57600080fd5b919050565b60006020828403121561207357600080fd5b61061482612045565b60008083601f84011261208e57600080fd5b50813567ffffffffffffffff8111156120a657600080fd5b6020830191508360208285010111156120be57600080fd5b9250929050565b6000806000604084860312156120da57600080fd5b6120e384612045565b9250602084013567ffffffffffffffff8111156120ff57600080fd5b61210b8682870161207c565b9497909650939450505050565b60005b8381101561213357818101518382015260200161211b565b50506000910152565b60008151808452612154816020860160208601612118565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610614602083018461213c565b600080604083850312156121ac57600080fd5b6121b583612045565b91506121c360208401612045565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561220e57600080fd5b61221783612045565b9150602083013567ffffffffffffffff81111561223357600080fd5b8301601f8101851361224457600080fd5b803567ffffffffffffffff81111561225e5761225e6121cc565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156122ca576122ca6121cc565b6040528181528282016020018710156122e257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008060008060006080868803121561231a57600080fd5b61232386612045565b945061233160208701612045565b935060408601359250606086013567ffffffffffffffff81111561235457600080fd5b6123608882890161207c565b969995985093965092949392505050565b60008060008060006080868803121561238957600080fd5b61239286612045565b9450602086013593506123a760408701612045565b9250606086013567ffffffffffffffff81111561235457600080fd5b6000806000606084860312156123d857600080fd5b6123e184612045565b9250602084013591506123f660408501612045565b90509250925092565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208152600061245c6020830184866123ff565b949350505050565b8381526040602082015260006114366040830184866123ff565b8481526001600160a01b0384166020820152606060408201526000611ff96060830184866123ff565b6000602082840312156124b957600080fd5b8151801515811461061457600080fd5b6000602082840312156124db57600080fd5b5051919050565b8183823760009101908152919050565b60008251612504818460208701612118565b919091019291505056fea2646970667358221220de349acfc8741efa6db137df12b279146aa84392e947dfc852fc83fbe89954ff64736f6c634300081a0033", +} + +// GatewayEVMUpgradeTestABI is the input ABI used to generate the binding from. +// Deprecated: Use GatewayEVMUpgradeTestMetaData.ABI instead. +var GatewayEVMUpgradeTestABI = GatewayEVMUpgradeTestMetaData.ABI + +// GatewayEVMUpgradeTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use GatewayEVMUpgradeTestMetaData.Bin instead. +var GatewayEVMUpgradeTestBin = GatewayEVMUpgradeTestMetaData.Bin + +// DeployGatewayEVMUpgradeTest deploys a new Ethereum contract, binding an instance of GatewayEVMUpgradeTest to it. +func DeployGatewayEVMUpgradeTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GatewayEVMUpgradeTest, error) { + parsed, err := GatewayEVMUpgradeTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(GatewayEVMUpgradeTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &GatewayEVMUpgradeTest{GatewayEVMUpgradeTestCaller: GatewayEVMUpgradeTestCaller{contract: contract}, GatewayEVMUpgradeTestTransactor: GatewayEVMUpgradeTestTransactor{contract: contract}, GatewayEVMUpgradeTestFilterer: GatewayEVMUpgradeTestFilterer{contract: contract}}, nil +} + +// GatewayEVMUpgradeTest is an auto generated Go binding around an Ethereum contract. +type GatewayEVMUpgradeTest struct { + GatewayEVMUpgradeTestCaller // Read-only binding to the contract + GatewayEVMUpgradeTestTransactor // Write-only binding to the contract + GatewayEVMUpgradeTestFilterer // Log filterer for contract events +} + +// GatewayEVMUpgradeTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type GatewayEVMUpgradeTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMUpgradeTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type GatewayEVMUpgradeTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMUpgradeTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type GatewayEVMUpgradeTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMUpgradeTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type GatewayEVMUpgradeTestSession struct { + Contract *GatewayEVMUpgradeTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMUpgradeTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type GatewayEVMUpgradeTestCallerSession struct { + Contract *GatewayEVMUpgradeTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// GatewayEVMUpgradeTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type GatewayEVMUpgradeTestTransactorSession struct { + Contract *GatewayEVMUpgradeTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMUpgradeTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type GatewayEVMUpgradeTestRaw struct { + Contract *GatewayEVMUpgradeTest // Generic contract binding to access the raw methods on +} + +// GatewayEVMUpgradeTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type GatewayEVMUpgradeTestCallerRaw struct { + Contract *GatewayEVMUpgradeTestCaller // Generic read-only contract binding to access the raw methods on +} + +// GatewayEVMUpgradeTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type GatewayEVMUpgradeTestTransactorRaw struct { + Contract *GatewayEVMUpgradeTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewGatewayEVMUpgradeTest creates a new instance of GatewayEVMUpgradeTest, bound to a specific deployed contract. +func NewGatewayEVMUpgradeTest(address common.Address, backend bind.ContractBackend) (*GatewayEVMUpgradeTest, error) { + contract, err := bindGatewayEVMUpgradeTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTest{GatewayEVMUpgradeTestCaller: GatewayEVMUpgradeTestCaller{contract: contract}, GatewayEVMUpgradeTestTransactor: GatewayEVMUpgradeTestTransactor{contract: contract}, GatewayEVMUpgradeTestFilterer: GatewayEVMUpgradeTestFilterer{contract: contract}}, nil +} + +// NewGatewayEVMUpgradeTestCaller creates a new read-only instance of GatewayEVMUpgradeTest, bound to a specific deployed contract. +func NewGatewayEVMUpgradeTestCaller(address common.Address, caller bind.ContractCaller) (*GatewayEVMUpgradeTestCaller, error) { + contract, err := bindGatewayEVMUpgradeTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestCaller{contract: contract}, nil +} + +// NewGatewayEVMUpgradeTestTransactor creates a new write-only instance of GatewayEVMUpgradeTest, bound to a specific deployed contract. +func NewGatewayEVMUpgradeTestTransactor(address common.Address, transactor bind.ContractTransactor) (*GatewayEVMUpgradeTestTransactor, error) { + contract, err := bindGatewayEVMUpgradeTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestTransactor{contract: contract}, nil +} + +// NewGatewayEVMUpgradeTestFilterer creates a new log filterer instance of GatewayEVMUpgradeTest, bound to a specific deployed contract. +func NewGatewayEVMUpgradeTestFilterer(address common.Address, filterer bind.ContractFilterer) (*GatewayEVMUpgradeTestFilterer, error) { + contract, err := bindGatewayEVMUpgradeTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestFilterer{contract: contract}, nil +} + +// bindGatewayEVMUpgradeTest binds a generic wrapper to an already deployed contract. +func bindGatewayEVMUpgradeTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := GatewayEVMUpgradeTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMUpgradeTest.Contract.GatewayEVMUpgradeTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.GatewayEVMUpgradeTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.GatewayEVMUpgradeTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMUpgradeTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.contract.Transact(opts, method, params...) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) UPGRADEINTERFACEVERSION(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "UPGRADE_INTERFACE_VERSION") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) UPGRADEINTERFACEVERSION() (string, error) { + return _GatewayEVMUpgradeTest.Contract.UPGRADEINTERFACEVERSION(&_GatewayEVMUpgradeTest.CallOpts) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) UPGRADEINTERFACEVERSION() (string, error) { + return _GatewayEVMUpgradeTest.Contract.UPGRADEINTERFACEVERSION(&_GatewayEVMUpgradeTest.CallOpts) +} + +// Custody is a free data retrieval call binding the contract method 0xdda79b75. +// +// Solidity: function custody() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) Custody(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "custody") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Custody is a free data retrieval call binding the contract method 0xdda79b75. +// +// Solidity: function custody() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Custody() (common.Address, error) { + return _GatewayEVMUpgradeTest.Contract.Custody(&_GatewayEVMUpgradeTest.CallOpts) +} + +// Custody is a free data retrieval call binding the contract method 0xdda79b75. +// +// Solidity: function custody() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) Custody() (common.Address, error) { + return _GatewayEVMUpgradeTest.Contract.Custody(&_GatewayEVMUpgradeTest.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Owner() (common.Address, error) { + return _GatewayEVMUpgradeTest.Contract.Owner(&_GatewayEVMUpgradeTest.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) Owner() (common.Address, error) { + return _GatewayEVMUpgradeTest.Contract.Owner(&_GatewayEVMUpgradeTest.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "proxiableUUID") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) ProxiableUUID() ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.ProxiableUUID(&_GatewayEVMUpgradeTest.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) ProxiableUUID() ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.ProxiableUUID(&_GatewayEVMUpgradeTest.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "tssAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) TssAddress() (common.Address, error) { + return _GatewayEVMUpgradeTest.Contract.TssAddress(&_GatewayEVMUpgradeTest.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) TssAddress() (common.Address, error) { + return _GatewayEVMUpgradeTest.Contract.TssAddress(&_GatewayEVMUpgradeTest.CallOpts) +} + +// ZetaConnector is a free data retrieval call binding the contract method 0x57bec62f. +// +// Solidity: function zetaConnector() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) ZetaConnector(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "zetaConnector") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaConnector is a free data retrieval call binding the contract method 0x57bec62f. +// +// Solidity: function zetaConnector() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) ZetaConnector() (common.Address, error) { + return _GatewayEVMUpgradeTest.Contract.ZetaConnector(&_GatewayEVMUpgradeTest.CallOpts) +} + +// ZetaConnector is a free data retrieval call binding the contract method 0x57bec62f. +// +// Solidity: function zetaConnector() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) ZetaConnector() (common.Address, error) { + return _GatewayEVMUpgradeTest.Contract.ZetaConnector(&_GatewayEVMUpgradeTest.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) ZetaToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "zetaToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) ZetaToken() (common.Address, error) { + return _GatewayEVMUpgradeTest.Contract.ZetaToken(&_GatewayEVMUpgradeTest.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) ZetaToken() (common.Address, error) { + return _GatewayEVMUpgradeTest.Contract.ZetaToken(&_GatewayEVMUpgradeTest.CallOpts) +} + +// Call is a paid mutator transaction binding the contract method 0x1b8b921d. +// +// Solidity: function call(address receiver, bytes payload) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) Call(opts *bind.TransactOpts, receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "call", receiver, payload) +} + +// Call is a paid mutator transaction binding the contract method 0x1b8b921d. +// +// Solidity: function call(address receiver, bytes payload) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Call(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Call(&_GatewayEVMUpgradeTest.TransactOpts, receiver, payload) +} + +// Call is a paid mutator transaction binding the contract method 0x1b8b921d. +// +// Solidity: function call(address receiver, bytes payload) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) Call(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Call(&_GatewayEVMUpgradeTest.TransactOpts, receiver, payload) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf340fa01. +// +// Solidity: function deposit(address receiver) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) Deposit(opts *bind.TransactOpts, receiver common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "deposit", receiver) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf340fa01. +// +// Solidity: function deposit(address receiver) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Deposit(receiver common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Deposit(&_GatewayEVMUpgradeTest.TransactOpts, receiver) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf340fa01. +// +// Solidity: function deposit(address receiver) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) Deposit(receiver common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Deposit(&_GatewayEVMUpgradeTest.TransactOpts, receiver) +} + +// Deposit0 is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address receiver, uint256 amount, address asset) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) Deposit0(opts *bind.TransactOpts, receiver common.Address, amount *big.Int, asset common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "deposit0", receiver, amount, asset) +} + +// Deposit0 is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address receiver, uint256 amount, address asset) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Deposit0(receiver common.Address, amount *big.Int, asset common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Deposit0(&_GatewayEVMUpgradeTest.TransactOpts, receiver, amount, asset) +} + +// Deposit0 is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address receiver, uint256 amount, address asset) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) Deposit0(receiver common.Address, amount *big.Int, asset common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Deposit0(&_GatewayEVMUpgradeTest.TransactOpts, receiver, amount, asset) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x29c59b5d. +// +// Solidity: function depositAndCall(address receiver, bytes payload) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) DepositAndCall(opts *bind.TransactOpts, receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "depositAndCall", receiver, payload) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x29c59b5d. +// +// Solidity: function depositAndCall(address receiver, bytes payload) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) DepositAndCall(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.DepositAndCall(&_GatewayEVMUpgradeTest.TransactOpts, receiver, payload) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x29c59b5d. +// +// Solidity: function depositAndCall(address receiver, bytes payload) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) DepositAndCall(receiver common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.DepositAndCall(&_GatewayEVMUpgradeTest.TransactOpts, receiver, payload) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0x8c6f037f. +// +// Solidity: function depositAndCall(address receiver, uint256 amount, address asset, bytes payload) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) DepositAndCall0(opts *bind.TransactOpts, receiver common.Address, amount *big.Int, asset common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "depositAndCall0", receiver, amount, asset, payload) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0x8c6f037f. +// +// Solidity: function depositAndCall(address receiver, uint256 amount, address asset, bytes payload) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) DepositAndCall0(receiver common.Address, amount *big.Int, asset common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.DepositAndCall0(&_GatewayEVMUpgradeTest.TransactOpts, receiver, amount, asset, payload) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0x8c6f037f. +// +// Solidity: function depositAndCall(address receiver, uint256 amount, address asset, bytes payload) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) DepositAndCall0(receiver common.Address, amount *big.Int, asset common.Address, payload []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.DepositAndCall0(&_GatewayEVMUpgradeTest.TransactOpts, receiver, amount, asset, payload) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) Execute(opts *bind.TransactOpts, destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "execute", destination, data) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Execute(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Execute(&_GatewayEVMUpgradeTest.TransactOpts, destination, data) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) Execute(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Execute(&_GatewayEVMUpgradeTest.TransactOpts, destination, data) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x35c018db. +// +// Solidity: function executeRevert(address destination, bytes data) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) ExecuteRevert(opts *bind.TransactOpts, destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "executeRevert", destination, data) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x35c018db. +// +// Solidity: function executeRevert(address destination, bytes data) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) ExecuteRevert(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.ExecuteRevert(&_GatewayEVMUpgradeTest.TransactOpts, destination, data) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x35c018db. +// +// Solidity: function executeRevert(address destination, bytes data) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) ExecuteRevert(destination common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.ExecuteRevert(&_GatewayEVMUpgradeTest.TransactOpts, destination, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) ExecuteWithERC20(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "executeWithERC20", token, to, amount, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) ExecuteWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.ExecuteWithERC20(&_GatewayEVMUpgradeTest.TransactOpts, token, to, amount, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) ExecuteWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.ExecuteWithERC20(&_GatewayEVMUpgradeTest.TransactOpts, token, to, amount, data) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) Initialize(opts *bind.TransactOpts, _tssAddress common.Address, _zetaToken common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "initialize", _tssAddress, _zetaToken) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Initialize(_tssAddress common.Address, _zetaToken common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Initialize(&_GatewayEVMUpgradeTest.TransactOpts, _tssAddress, _zetaToken) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) Initialize(_tssAddress common.Address, _zetaToken common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Initialize(&_GatewayEVMUpgradeTest.TransactOpts, _tssAddress, _zetaToken) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) RenounceOwnership() (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.RenounceOwnership(&_GatewayEVMUpgradeTest.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.RenounceOwnership(&_GatewayEVMUpgradeTest.TransactOpts) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) RevertWithERC20(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "revertWithERC20", token, to, amount, data) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) RevertWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.RevertWithERC20(&_GatewayEVMUpgradeTest.TransactOpts, token, to, amount, data) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) RevertWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.RevertWithERC20(&_GatewayEVMUpgradeTest.TransactOpts, token, to, amount, data) +} + +// SetConnector is a paid mutator transaction binding the contract method 0x10188aef. +// +// Solidity: function setConnector(address _zetaConnector) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) SetConnector(opts *bind.TransactOpts, _zetaConnector common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "setConnector", _zetaConnector) +} + +// SetConnector is a paid mutator transaction binding the contract method 0x10188aef. +// +// Solidity: function setConnector(address _zetaConnector) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) SetConnector(_zetaConnector common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.SetConnector(&_GatewayEVMUpgradeTest.TransactOpts, _zetaConnector) +} + +// SetConnector is a paid mutator transaction binding the contract method 0x10188aef. +// +// Solidity: function setConnector(address _zetaConnector) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) SetConnector(_zetaConnector common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.SetConnector(&_GatewayEVMUpgradeTest.TransactOpts, _zetaConnector) +} + +// SetCustody is a paid mutator transaction binding the contract method 0xae7a3a6f. +// +// Solidity: function setCustody(address _custody) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) SetCustody(opts *bind.TransactOpts, _custody common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "setCustody", _custody) +} + +// SetCustody is a paid mutator transaction binding the contract method 0xae7a3a6f. +// +// Solidity: function setCustody(address _custody) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) SetCustody(_custody common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.SetCustody(&_GatewayEVMUpgradeTest.TransactOpts, _custody) +} + +// SetCustody is a paid mutator transaction binding the contract method 0xae7a3a6f. +// +// Solidity: function setCustody(address _custody) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) SetCustody(_custody common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.SetCustody(&_GatewayEVMUpgradeTest.TransactOpts, _custody) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.TransferOwnership(&_GatewayEVMUpgradeTest.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.TransferOwnership(&_GatewayEVMUpgradeTest.TransactOpts, newOwner) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "upgradeToAndCall", newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.UpgradeToAndCall(&_GatewayEVMUpgradeTest.TransactOpts, newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.UpgradeToAndCall(&_GatewayEVMUpgradeTest.TransactOpts, newImplementation, data) +} + +// GatewayEVMUpgradeTestCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestCallIterator struct { + Event *GatewayEVMUpgradeTestCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestCall represents a Call event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestCall struct { + Sender common.Address + Receiver common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMUpgradeTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestCallIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestCall, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgradeTestCall) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseCall(log types.Log) (*GatewayEVMUpgradeTestCall, error) { + event := new(GatewayEVMUpgradeTestCall) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUpgradeTestDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestDepositIterator struct { + Event *GatewayEVMUpgradeTestDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestDeposit represents a Deposit event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestDeposit struct { + Sender common.Address + Receiver common.Address + Amount *big.Int + Asset common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterDeposit(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMUpgradeTestDepositIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestDepositIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestDeposit, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgradeTestDeposit) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseDeposit(log types.Log) (*GatewayEVMUpgradeTestDeposit, error) { + event := new(GatewayEVMUpgradeTestDeposit) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUpgradeTestExecutedIterator is returned from FilterExecuted and is used to iterate over the raw logs and unpacked data for Executed events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestExecutedIterator struct { + Event *GatewayEVMUpgradeTestExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestExecuted represents a Executed event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestExecuted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMUpgradeTestExecutedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestExecutedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Executed", logs: logs, sub: sub}, nil +} + +// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchExecuted(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestExecuted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgradeTestExecuted) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Executed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseExecuted(log types.Log) (*GatewayEVMUpgradeTestExecuted, error) { + event := new(GatewayEVMUpgradeTestExecuted) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Executed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUpgradeTestExecutedV2Iterator is returned from FilterExecutedV2 and is used to iterate over the raw logs and unpacked data for ExecutedV2 events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestExecutedV2Iterator struct { + Event *GatewayEVMUpgradeTestExecutedV2 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestExecutedV2Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestExecutedV2) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestExecutedV2) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestExecutedV2Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestExecutedV2Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestExecutedV2 represents a ExecutedV2 event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestExecutedV2 struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedV2 is a free log retrieval operation binding the contract event 0x373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546. +// +// Solidity: event ExecutedV2(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterExecutedV2(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMUpgradeTestExecutedV2Iterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "ExecutedV2", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestExecutedV2Iterator{contract: _GatewayEVMUpgradeTest.contract, event: "ExecutedV2", logs: logs, sub: sub}, nil +} + +// WatchExecutedV2 is a free log subscription operation binding the contract event 0x373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546. +// +// Solidity: event ExecutedV2(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchExecutedV2(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestExecutedV2, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "ExecutedV2", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgradeTestExecutedV2) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "ExecutedV2", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedV2 is a log parse operation binding the contract event 0x373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546. +// +// Solidity: event ExecutedV2(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseExecutedV2(log types.Log) (*GatewayEVMUpgradeTestExecutedV2, error) { + event := new(GatewayEVMUpgradeTestExecutedV2) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "ExecutedV2", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUpgradeTestExecutedWithERC20Iterator is returned from FilterExecutedWithERC20 and is used to iterate over the raw logs and unpacked data for ExecutedWithERC20 events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestExecutedWithERC20Iterator struct { + Event *GatewayEVMUpgradeTestExecutedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestExecutedWithERC20 represents a ExecutedWithERC20 event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestExecutedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterExecutedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMUpgradeTestExecutedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestExecutedWithERC20Iterator{contract: _GatewayEVMUpgradeTest.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchExecutedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestExecutedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgradeTestExecutedWithERC20) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseExecutedWithERC20(log types.Log) (*GatewayEVMUpgradeTestExecutedWithERC20, error) { + event := new(GatewayEVMUpgradeTestExecutedWithERC20) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUpgradeTestInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestInitializedIterator struct { + Event *GatewayEVMUpgradeTestInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestInitialized represents a Initialized event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterInitialized(opts *bind.FilterOpts) (*GatewayEVMUpgradeTestInitializedIterator, error) { + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestInitializedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestInitialized) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgradeTestInitialized) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseInitialized(log types.Log) (*GatewayEVMUpgradeTestInitialized, error) { + event := new(GatewayEVMUpgradeTestInitialized) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUpgradeTestOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestOwnershipTransferredIterator struct { + Event *GatewayEVMUpgradeTestOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestOwnershipTransferred represents a OwnershipTransferred event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*GatewayEVMUpgradeTestOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestOwnershipTransferredIterator{contract: _GatewayEVMUpgradeTest.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgradeTestOwnershipTransferred) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseOwnershipTransferred(log types.Log) (*GatewayEVMUpgradeTestOwnershipTransferred, error) { + event := new(GatewayEVMUpgradeTestOwnershipTransferred) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUpgradeTestRevertedIterator is returned from FilterReverted and is used to iterate over the raw logs and unpacked data for Reverted events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestRevertedIterator struct { + Event *GatewayEVMUpgradeTestReverted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestRevertedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestRevertedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestRevertedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestReverted represents a Reverted event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestReverted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMUpgradeTestRevertedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestRevertedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Reverted", logs: logs, sub: sub}, nil +} + +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchReverted(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestReverted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgradeTestReverted) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseReverted(log types.Log) (*GatewayEVMUpgradeTestReverted, error) { + event := new(GatewayEVMUpgradeTestReverted) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUpgradeTestRevertedWithERC20Iterator is returned from FilterRevertedWithERC20 and is used to iterate over the raw logs and unpacked data for RevertedWithERC20 events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestRevertedWithERC20Iterator struct { + Event *GatewayEVMUpgradeTestRevertedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestRevertedWithERC20 represents a RevertedWithERC20 event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestRevertedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterRevertedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMUpgradeTestRevertedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestRevertedWithERC20Iterator{contract: _GatewayEVMUpgradeTest.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchRevertedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestRevertedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgradeTestRevertedWithERC20) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseRevertedWithERC20(log types.Log) (*GatewayEVMUpgradeTestRevertedWithERC20, error) { + event := new(GatewayEVMUpgradeTestRevertedWithERC20) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMUpgradeTestUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestUpgradedIterator struct { + Event *GatewayEVMUpgradeTestUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestUpgraded represents a Upgraded event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*GatewayEVMUpgradeTestUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &GatewayEVMUpgradeTestUpgradedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMUpgradeTestUpgraded) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseUpgraded(log types.Log) (*GatewayEVMUpgradeTestUpgraded, error) { + event := new(GatewayEVMUpgradeTestUpgraded) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/gatewayevmzevm.t.sol/gatewayevmzevmtest.go b/v2/pkg/gatewayevmzevm.t.sol/gatewayevmzevmtest.go new file mode 100644 index 00000000..9779a4fa --- /dev/null +++ b/v2/pkg/gatewayevmzevm.t.sol/gatewayevmzevmtest.go @@ -0,0 +1,5548 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package gatewayevmzevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdInvariantFuzzArtifactSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzArtifactSelector struct { + Artifact string + Selectors [][4]byte +} + +// StdInvariantFuzzInterface is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzInterface struct { + Addr common.Address + Artifacts []string +} + +// StdInvariantFuzzSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzSelector struct { + Addr common.Address + Selectors [][4]byte +} + +// GatewayEVMZEVMTestMetaData contains all meta data concerning the GatewayEVMZEVMTest contract. +var GatewayEVMZEVMTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"IS_TEST\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"failed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setUp\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzArtifactSelector[]\",\"components\":[{\"name\":\"artifact\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetInterfaces\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzInterface[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"artifacts\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"testCallReceiverEVMFromSenderZEVM\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCallReceiverEVMFromZEVM\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndCallReceiverEVMFromSenderZEVM\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndCallReceiverEVMFromZEVM\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Executed\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedERC20\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNoParams\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNonPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strs\",\"type\":\"string[]\",\"indexed\":false,\"internalType\":\"string[]\"},{\"name\":\"nums\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"str\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedRevert\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Reverted\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RevertedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"zrc20\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"gasfee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"protocolFlatFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_address\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes32\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_int\",\"inputs\":[{\"name\":\"\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_address\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes32\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_string\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_string\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_uint\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"logs\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedZetaSent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GasFeeTransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientZRC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTarget\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyWZETAOrFungible\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZRC20BurnFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZRC20TransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061f1148061003c6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c806385226c81116100b2578063b5508aa911610081578063d7a525fc11610066578063d7a525fc146101ec578063e20c9f71146101f4578063fa7626d4146101fc57600080fd5b8063b5508aa9146101cc578063ba414fa6146101d457600080fd5b806385226c8114610192578063916a17c6146101a75780639683c695146101bc578063b0464fdc146101c457600080fd5b80633f7286f4116100ee5780633f7286f414610165578063524744131461016d57806366d9a9a0146101755780636ff15ccc1461018a57600080fd5b80630a9254e4146101205780631ed7831c1461012a5780632ade3880146101485780633e5e3c231461015d575b600080fd5b610128610209565b005b610132611156565b60405161013f9190617602565b60405180910390f35b6101506111b8565b60405161013f919061769e565b6101326112fa565b61013261135a565b6101286113ba565b61017d611c17565b60405161013f9190617804565b610128611d99565b61019a6125a2565b60405161013f91906178a2565b6101af612672565b60405161013f9190617919565b61012861276d565b6101af612d32565b61019a612e2d565b6101dc612efd565b604051901515815260200161013f565b610128612fd1565b61013261337d565b601f546101dc9060ff1681565b602680547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602780548216611234179055602880548216615678179055602e8054909116614321179055604051610267906174ee565b60408082526004908201527f746573740000000000000000000000000000000000000000000000000000000060608201526080602082018190526003908201527f54544b000000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f0801580156102ec573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055604051610331906174ee565b604080825260049082018190527f7a6574610000000000000000000000000000000000000000000000000000000060608301526080602083018190528201527f5a4554410000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f0801580156103b5573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081178255604080518082018252600e81527f4761746577617945564d2e736f6c0000000000000000000000000000000000006020820152602854915191909416928101929092526044820152610499919060640160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f485cc955000000000000000000000000000000000000000000000000000000001790526133dd565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556028546040519192169061051d906174fb565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015610550573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392831617905560205460245460285460405192841693918216929116906105a590617508565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f0801580156105e1573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556028546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b15801561068d57600080fd5b505af11580156106a1573d6000803e3d6000fd5b50506028546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b15801561071757600080fd5b505af115801561072b573d6000803e3d6000fd5b50506020546021546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b15801561079157600080fd5b505af11580156107a5573d6000803e3d6000fd5b50506020546022546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b15801561080b57600080fd5b505af115801561081f573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561088157600080fd5b505af1158015610895573d6000803e3d6000fd5b50506023546026546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f42406024820152911692506340c10f199150604401600060405180830381600087803b15801561090457600080fd5b505af1158015610918573d6000803e3d6000fd5b50506023546021546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526207a12060248201529116925063a9059cbb91506044016020604051808303816000875af115801561098c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b091906179b0565b506040516109bd90617515565b604051809103906000f0801580156109d9573d6000803e3d6000fd5b50602580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055604080518082018252600f81527f476174657761795a45564d2e736f6c000000000000000000000000000000000060208201526024805492519290931692820192909252610ab7919060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de8000000000000000000000000000000000000000000000000000000001790526133dd565b602980546001600160a01b03929092167fffffffffffffffffffffffff00000000000000000000000000000000000000009283168117909155602a80549092168117909155604051610b0890617522565b6001600160a01b039091168152602001604051809103906000f080158015610b34573d6000803e3d6000fd5b50602b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040517f06447d5600000000000000000000000000000000000000000000000000000000815273735b14bb79463307aacbed86daf3322b1e6226ab6004820181905290737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b158015610be957600080fd5b505af1158015610bfd573d6000803e3d6000fd5b505050506000806000604051610c129061752f565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610c4e573d6000803e3d6000fd5b50602c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155602a54604051601293600193600093849391921690610ca49061753c565b610cb3969594939291906179d2565b604051809103906000f080158015610ccf573d6000803e3d6000fd5b50602d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155602c546040517fee2815ba0000000000000000000000000000000000000000000000000000000081526001600482015260248101929092529091169063ee2815ba90604401600060405180830381600087803b158015610d6657600080fd5b505af1158015610d7a573d6000803e3d6000fd5b5050602c546040517fa7cb050700000000000000000000000000000000000000000000000000000000815260016004820181905260248201526001600160a01b03909116925063a7cb05079150604401600060405180830381600087803b158015610de457600080fd5b505af1158015610df8573d6000803e3d6000fd5b5050602d54602e546040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f42406024820152911692506347e7ef2491506044016020604051808303816000875af1158015610e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9091906179b0565b50602d54602b546040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f424060248201529116906347e7ef24906044016020604051808303816000875af1158015610f01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2591906179b0565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f8457600080fd5b505af1158015610f98573d6000803e3d6000fd5b5050602e546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561100e57600080fd5b505af1158015611022573d6000803e3d6000fd5b5050602d54602a546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f424060248201529116925063095ea7b391506044016020604051808303816000875af1158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba91906179b0565b506028546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b15801561113b57600080fd5b505af115801561114f573d6000803e3d6000fd5b5050505050565b606060168054806020026020016040519081016040528092919081815260200182805480156111ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611190575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b828210156112f157600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156112da57838290600052602060002001805461124d90617ac7565b80601f016020809104026020016040519081016040528092919081815260200182805461127990617ac7565b80156112c65780601f1061129b576101008083540402835291602001916112c6565b820191906000526020600020905b8154815290600101906020018083116112a957829003601f168201915b50505050508152602001906001019061122e565b5050505081525050815260200190600101906111dc565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156111ae576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611190575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156111ae576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611190575050505050905090565b604080518082018252600681527f48656c6c6f2100000000000000000000000000000000000000000000000000006020820152602d54602b5492517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0393841660048201529192602a92600192670de0b6b3a7640000926000929116906370a0823190602401602060405180830381865afa158015611466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148a9190617b14565b6040519091506000907fe04d4f9700000000000000000000000000000000000000000000000000000000906114c790889088908890602401617b2d565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909516949094179093526025549051919350600092611560926001600160a01b03909216910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f1981840301815290829052602d5461159192620f4240916001600160a01b0316908690602401617b57565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7993c1e000000000000000000000000000000000000000000000000000000000179052602a5490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba39161164e916001600160a01b0391909116906000908690600401617b96565b600060405180830381600087803b15801561166857600080fd5b505af115801561167c573d6000803e3d6000fd5b5050602e546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b1580156116f257600080fd5b505af1158015611706573d6000803e3d6000fd5b5050602b5460255460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b039091169250630abd8905915060340160408051601f1981840301815290829052602d547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1683526117a092620f4240916001600160a01b0316908d908d908d90600401617bbe565b600060405180830381600087803b1580156117ba57600080fd5b505af11580156117ce573d6000803e3d6000fd5b50506020546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015260248101879052737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b15801561184b57600080fd5b505af115801561185f573d6000803e3d6000fd5b50506025546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156118f157600080fd5b505af1158015611905573d6000803e3d6000fd5b50506020546040517f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa935061194e92506001600160a01b039091169087908b908b908b90617c13565b60405180910390a16020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156119e457600080fd5b505af11580156119f8573d6000803e3d6000fd5b50506025546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9150611a3d9087908690617c54565b60405180910390a26028546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611ab757600080fd5b505af1158015611acb573d6000803e3d6000fd5b50506020546025546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd93508892611b1f9216908790600401617c6d565b60006040518083038185885af1158015611b3d573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611b669190810190617d77565b50602d54602b546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015611bd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf59190617b14565b9050611c0d81611c08620f424087617ddb565b6133fc565b5050505050505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156112f15783829060005260206000209060020201604051806040016040529081600082018054611c6e90617ac7565b80601f0160208091040260200160405190810160405280929190818152602001828054611c9a90617ac7565b8015611ce75780601f10611cbc57610100808354040283529160200191611ce7565b820191906000526020600020905b815481529060010190602001808311611cca57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d8157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611d2e5790505b50505050508152505081526020019060010190611c3b565b604080518082018252600681527f48656c6c6f21000000000000000000000000000000000000000000000000000060208201529051602a90600190670de0b6b3a7640000906000907fe04d4f970000000000000000000000000000000000000000000000000000000090611e1590879087908790602401617b2d565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009490941693909317909252602a5491517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b0390921660848301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015611f0457600080fd5b505af1158015611f18573d6000803e3d6000fd5b5050602e54602d5460255460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b0392831694507f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc577169350911690603401604051602081830303815290604052620f42406000602d60009054906101000a90046001600160a01b03166001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fde573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120029190617b14565b8760405161201596959493929190617dee565b60405180910390a2602e546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561208f57600080fd5b505af11580156120a3573d6000803e3d6000fd5b5050602a5460255460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b039091169250637993c1e0915060340160408051601f1981840301815290829052602d547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16835261213992620f4240916001600160a01b0316908790600401617e41565b600060405180830381600087803b15801561215357600080fd5b505af1158015612167573d6000803e3d6000fd5b5050602d54602e546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156121d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f79190617b14565b90506122048160006133fc565b6020546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015260248101849052737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015b600060405180830381600087803b15801561227e57600080fd5b505af1158015612292573d6000803e3d6000fd5b50506025546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561232457600080fd5b505af1158015612338573d6000803e3d6000fd5b50506020546040517f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa935061238192506001600160a01b039091169086908a908a908a90617c13565b60405180910390a16020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561241757600080fd5b505af115801561242b573d6000803e3d6000fd5b50506025546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f91506124709086908690617c54565b60405180910390a26028546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156124ea57600080fd5b505af11580156124fe573d6000803e3d6000fd5b50506020546025546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd935087926125529216908790600401617c6d565b60006040518083038185885af1158015612570573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526125999190810190617d77565b50505050505050565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156112f15783829060005260206000200180546125e590617ac7565b80601f016020809104026020016040519081016040528092919081815260200182805461261190617ac7565b801561265e5780601f106126335761010080835404028352916020019161265e565b820191906000526020600020905b81548152906001019060200180831161264157829003601f168201915b5050505050815260200190600101906125c6565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156112f15760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561275557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116127025790505b50505050508152505081526020019060010190612696565b604080518082018252600681527f48656c6c6f21000000000000000000000000000000000000000000000000000060208201529051602a90600190670de0b6b3a7640000906000907fe04d4f9700000000000000000000000000000000000000000000000000000000906127e990879087908790602401617b2d565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009490941693909317909252602e5491517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b0390921660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156128bc57600080fd5b505af11580156128d0573d6000803e3d6000fd5b5050602a546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561296257600080fd5b505af1158015612976573d6000803e3d6000fd5b5050602e5460255460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b0390911692507f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f915060340160408051601f19818403018152908290526129ea918590617e7b565b60405180910390a2602a5460255460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b0390911690630ac7c44c90603401604051602081830303815290604052836040518363ffffffff1660e01b8152600401612a57929190617e7b565b600060405180830381600087803b158015612a7157600080fd5b505af1158015612a85573d6000803e3d6000fd5b50506020546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015260248101859052737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b158015612b0257600080fd5b505af1158015612b16573d6000803e3d6000fd5b50506020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015612ba857600080fd5b505af1158015612bbc573d6000803e3d6000fd5b50506025546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9150612c019085908590617c54565b60405180910390a26028546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612c7b57600080fd5b505af1158015612c8f573d6000803e3d6000fd5b50506020546025546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd93508692612ce39216908690600401617c6d565b60006040518083038185885af1158015612d01573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612d2a9190810190617d77565b505050505050565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156112f15760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015612e1557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411612dc25790505b50505050508152505081526020019060010190612d56565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156112f1578382906000526020600020018054612e7090617ac7565b80601f0160208091040260200160405190810160405280929190818152602001828054612e9c90617ac7565b8015612ee95780601f10612ebe57610100808354040283529160200191612ee9565b820191906000526020600020905b815481529060010190602001808311612ecc57829003601f168201915b505050505081526020019060010190612e51565b60085460009060ff1615612f15575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015612fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fca9190617b14565b1415905090565b604080518082018252600681527f48656c6c6f21000000000000000000000000000000000000000000000000000060208201529051602a90600190670de0b6b3a7640000906000907fe04d4f97000000000000000000000000000000000000000000000000000000009061304d90879087908790602401617b2d565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009095169490941790935260255490519193506000926130e6926001600160a01b03909216910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f1981840301815290829052613105918490602401617e7b565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0ac7c44c00000000000000000000000000000000000000000000000000000000179052602a5490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba3916131c2916001600160a01b0391909116906000908690600401617b96565b600060405180830381600087803b1580156131dc57600080fd5b505af11580156131f0573d6000803e3d6000fd5b5050602e546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561326657600080fd5b505af115801561327a573d6000803e3d6000fd5b5050602b5460255460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b03909116925063a0a1730b91506034016040516020818303038152906040528888886040518563ffffffff1660e01b81526004016132e79493929190617ea0565b600060405180830381600087803b15801561330157600080fd5b505af1158015613315573d6000803e3d6000fd5b50506020546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015260248101869052737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401612264565b606060158054806020026020016040519081016040528092919081815260200182805480156111ae576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611190575050505050905090565b60006133e7617549565b6133f284848361347b565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b15801561346757600080fd5b505afa158015612d2a573d6000803e3d6000fd5b60008061348885846134f6565b90506134eb6040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f787900000081525082866040516020016134d6929190617c6d565b60405160208183030381529060405285613502565b9150505b9392505050565b60006134ef8383613530565b60c081015151600090156135265761351f84848460c0015161354b565b90506134ef565b61351f84846136f1565b600061353c83836137dc565b6134ef83836020015184613502565b6000806135566137ec565b9050600061356486836138bf565b9050600061357b8260600151836020015185613d65565b9050600061358b83838989613f77565b9050600061359882614df4565b602081015181519192509060030b1561360b578982604001516040516020016135c2929190617ede565b60408051601f19818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261360291600401617f5f565b60405180910390fd5b600061364e6040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001614fc3565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d906136a1908490600401617f5f565b602060405180830381865afa1580156136be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e29190617f72565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590613746908790600401617f5f565b600060405180830381865afa158015613763573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261378b9190810190617d77565b905060006137b982856040516020016137a5929190617f9b565b6040516020818303038152906040526151c3565b90506001600160a01b0381166133f25784846040516020016135c2929190617fca565b6137e8828260006151d6565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c90613873908490600401618075565b600060405180830381865afa158015613890573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138b891908101906180bc565b9250505090565b6138f16040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d905061393c6040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b613945856152d9565b60208201526000613955866156be565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015613997573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139bf91908101906180bc565b868385602001516040516020016139d99493929190618105565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190613a31908590600401617f5f565b600060405180830381865afa158015613a4e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613a7691908101906180bc565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f690613abe908490600401618209565b602060405180830381865afa158015613adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aff91906179b0565b613b1457816040516020016135c2919061825b565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890613b599084906004016182ed565b600060405180830381865afa158015613b76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b9e91908101906180bc565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f690613be590849060040161833f565b602060405180830381865afa158015613c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2691906179b0565b15613cbb576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890613c7090849060040161833f565b600060405180830381865afa158015613c8d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613cb591908101906180bc565b60408501525b846001600160a01b03166349c4fac8828660000151604051602001613ce09190618391565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401613d0c929190617e7b565b600060405180830381865afa158015613d29573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613d5191908101906180bc565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b6060815260200190600190039081613d815790505090506040518060400160405280600481526020017f677265700000000000000000000000000000000000000000000000000000000081525081600081518110613de157613de16183fd565b60200260200101819052506040518060400160405280600381526020017f2d726c000000000000000000000000000000000000000000000000000000000081525081600181518110613e3557613e356183fd565b602002602001018190525084604051602001613e51919061842c565b60405160208183030381529060405281600281518110613e7357613e736183fd565b602002602001018190525082604051602001613e8f9190618498565b60405160208183030381529060405281600381518110613eb157613eb16183fd565b60200260200101819052506000613ec782614df4565b602080820151604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000008185019081528251808401845260008082529086015282518084019093529051825292810192909252919250613f589060408051808201825260008082526020918201528151808301909252845182528085019082015290615941565b613f6d57856040516020016135c291906184d9565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9015613fc7565b511590565b61413b57826020015115614083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a401613602565b8260c001511561413b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a401613602565b6040805160ff8082526120008201909252600091816020015b606081526020019060019003908161415457905050905060006040518060400160405280600381526020017f6e707800000000000000000000000000000000000000000000000000000000008152508282806141af9061856a565b935060ff16815181106141c4576141c46183fd565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e37000000000000000000000000000000000000008152506040516020016142159190618589565b6040516020818303038152906040528282806142309061856a565b935060ff1681518110614245576142456183fd565b60200260200101819052506040518060400160405280600681526020017f6465706c6f7900000000000000000000000000000000000000000000000000008152508282806142929061856a565b935060ff16815181106142a7576142a76183fd565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d650000000000000000000000000000000000008152508282806142f49061856a565b935060ff1681518110614309576143096183fd565b602002602001018190525087602001518282806143259061856a565b935060ff168151811061433a5761433a6183fd565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e7472616374506174680000000000000000000000000000000000008152508282806143879061856a565b935060ff168151811061439c5761439c6183fd565b6020908102919091010152875182826143b48161856a565b935060ff16815181106143c9576143c96183fd565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e496400000000000000000000000000000000000000000000008152508282806144169061856a565b935060ff168151811061442b5761442b6183fd565b602002602001018190525061443f466159a2565b828261444a8161856a565b935060ff168151811061445f5761445f6183fd565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c6500000000000000000000000000000000008152508282806144ac9061856a565b935060ff16815181106144c1576144c16183fd565b6020026020010181905250868282806144d99061856a565b935060ff16815181106144ee576144ee6183fd565b60209081029190910101528551156146155760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f646500000000000000000000006020820152828261453f8161856a565b935060ff1681518110614554576145546183fd565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d906145a4908990600401617f5f565b600060405180830381865afa1580156145c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526145e991908101906180bc565b82826145f48161856a565b935060ff1681518110614609576146096183fd565b60200260200101819052505b8460200151156146e55760408051808201909152601281527f2d2d766572696679536f75726365436f646500000000000000000000000000006020820152828261465e8161856a565b935060ff1681518110614673576146736183fd565b60200260200101819052506040518060400160405280600581526020017f66616c73650000000000000000000000000000000000000000000000000000008152508282806146c09061856a565b935060ff16815181106146d5576146d56183fd565b60200260200101819052506148ac565b61471d613fc28660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6147b05760408051808201909152600d81527f2d2d6c6963656e73655479706500000000000000000000000000000000000000602082015282826147608161856a565b935060ff1681518110614775576147756183fd565b60200260200101819052508460a00151604051602001614795919061842c565b6040516020818303038152906040528282806146c09061856a565b8460c001511580156147f35750604080890151815180830183526000808252602091820152825180840190935281518352908101908201526147f190511590565b155b156148ac5760408051808201909152600d81527f2d2d6c6963656e73655479706500000000000000000000000000000000000000602082015282826148378161856a565b935060ff168151811061484c5761484c6183fd565b602002602001018190525061486088615a42565b604051602001614870919061842c565b60405160208183030381529060405282828061488b9061856a565b935060ff16815181106148a0576148a06183fd565b60200260200101819052505b604080860151815180830183526000808252602091820152825180840190935281518352908101908201526148e090511590565b6149755760408051808201909152600b81527f2d2d72656c617965724964000000000000000000000000000000000000000000602082015282826149238161856a565b935060ff1681518110614938576149386183fd565b602002602001018190525084604001518282806149549061856a565b935060ff1681518110614969576149696183fd565b60200260200101819052505b606085015115614a965760408051808201909152600681527f2d2d73616c740000000000000000000000000000000000000000000000000000602082015282826149be8161856a565b935060ff16815181106149d3576149d36183fd565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015614a42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614a6a91908101906180bc565b8282614a758161856a565b935060ff1681518110614a8a57614a8a6183fd565b60200260200101819052505b60e08501515115614b3d5760408051808201909152600a81527f2d2d6761734c696d69740000000000000000000000000000000000000000000060208201528282614ae08161856a565b935060ff1681518110614af557614af56183fd565b6020026020010181905250614b118560e00151600001516159a2565b8282614b1c8161856a565b935060ff1681518110614b3157614b316183fd565b60200260200101819052505b60e08501516020015115614be75760408051808201909152600a81527f2d2d67617350726963650000000000000000000000000000000000000000000060208201528282614b8a8161856a565b935060ff1681518110614b9f57614b9f6183fd565b6020026020010181905250614bbb8560e00151602001516159a2565b8282614bc68161856a565b935060ff1681518110614bdb57614bdb6183fd565b60200260200101819052505b60e08501516040015115614c915760408051808201909152600e81527f2d2d6d617846656550657247617300000000000000000000000000000000000060208201528282614c348161856a565b935060ff1681518110614c4957614c496183fd565b6020026020010181905250614c658560e00151604001516159a2565b8282614c708161856a565b935060ff1681518110614c8557614c856183fd565b60200260200101819052505b60e08501516060015115614d3b5760408051808201909152601681527f2d2d6d61785072696f726974794665655065724761730000000000000000000060208201528282614cde8161856a565b935060ff1681518110614cf357614cf36183fd565b6020026020010181905250614d0f8560e00151606001516159a2565b8282614d1a8161856a565b935060ff1681518110614d2f57614d2f6183fd565b60200260200101819052505b60008160ff1667ffffffffffffffff811115614d5957614d59617c8f565b604051908082528060200260200182016040528015614d8c57816020015b6060815260200190600190039081614d775790505b50905060005b8260ff168160ff161015614de557838160ff1681518110614db557614db56183fd565b6020026020010151828260ff1681518110614dd257614dd26183fd565b6020908102919091010152600101614d92565b5093505050505b949350505050565b614e1b6040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c91614ea1918691016185f4565b600060405180830381865afa158015614ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614ee691908101906180bc565b90506000614ef48683616531565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b8152600401614f2491906178a2565b6000604051808303816000875af1158015614f43573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614f6b919081019061863b565b805190915060030b15801590614f845750602081015151155b8015614f935750604081015151155b15613f6d5781600081518110614fab57614fab6183fd565b60200260200101516040516020016135c291906186f1565b60606000614ff88560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252865182528087019082015290915061502f9082905b90616686565b1561518c5760006150ac826150a6846150a06150728a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b906166ad565b9061670f565b604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615110908290616686565b1561517a57604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615177905b8290616794565b90505b615183816167ba565b925050506134ef565b82156151a55784846040516020016135c29291906188dd565b50506040805160208101909152600081526134ef565b509392505050565b6000808251602084016000f09392505050565b8160a00151156151e557505050565b60006151f2848484616823565b905060006151ff82614df4565b602081015181519192509060030b15801561529b5750604080518082018252600781527f53554343455353000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261529b90604080518082018252600080825260209182015281518083019092528451825280850190820152615029565b156152a857505050505050565b604082015151156152c85781604001516040516020016135c29190618984565b806040516020016135c291906189e2565b6060600061530e8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615373905b8290615941565b156153e257604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526134ef906153dd908390616dbe565b6167ba565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615444905b8290616e48565b60010361551157604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526154aa90615170565b50604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526134ef906153dd905b8390616794565b604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526155709061536c565b156156a757604080518082018252600181527f2f000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201819052845180860190955292518452830152906155d8908390616ee2565b9050600081600183516155eb9190617ddb565b815181106155fb576155fb6183fd565b6020026020010151905061569e6153dd6156716040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252855182528086019082015290616dbe565b95945050505050565b826040516020016135c29190618a4d565b50919050565b606060006156f38360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506157559061536c565b15615763576134ef816167ba565b604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526157c29061543d565b60010361582c57604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526134ef906153dd9061550a565b604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261588b9061536c565b156156a757604080518082018252600181527f2f000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201819052845180860190955292518452830152906158f3908390616ee2565b905060018151111561592f57806002825161590e9190617ddb565b8151811061591e5761591e6183fd565b602002602001015192505050919050565b50826040516020016135c29190618a4d565b805182516000911115615956575060006133f6565b8151835160208501516000929161596c91618b2b565b6159769190617ddb565b90508260200151810361598d5760019150506133f6565b82516020840151819020912014905092915050565b606060006159af83616f87565b600101905060008167ffffffffffffffff8111156159cf576159cf617c8f565b6040519080825280601f01601f1916602001820160405280156159f9576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084615a0357509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091615ace905b8290617069565b15615b0e57505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e7365000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615b6d90615ac7565b15615bad57505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d4954000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615c0c90615ac7565b15615c4c57505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c79000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615cab90615ac7565b80615d105750604080518082018252601081527f47504c2d322e302d6f722d6c617465720000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615d1090615ac7565b15615d5057505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c79000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615daf90615ac7565b80615e145750604080518082018252601081527f47504c2d332e302d6f722d6c617465720000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615e1490615ac7565b15615e5457505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615eb390615ac7565b80615f185750604080518082018252601181527f4c47504c2d322e312d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615f1890615ac7565b15615f5857505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615fb790615ac7565b8061601c5750604080518082018252601181527f4c47504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261601c90615ac7565b1561605c57505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c617573650000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526160bb90615ac7565b156160fb57505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261615a90615ac7565b1561619a57505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e3000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526161f990615ac7565b1561623957505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261629890615ac7565b156162d857505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261633790615ac7565b1561637757505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526163d690615ac7565b8061643b5750604080518082018252601181527f4147504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261643b90615ac7565b1561647b57505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e31000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526164da90615ac7565b1561651a57505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b604080840151845191516135c29290602001618b3e565b60608060005b84518110156165bc5781858281518110616553576165536183fd565b602002602001015160405160200161656c929190617f9b565b60405160208183030381529060405291506001855161658b9190617ddb565b81146165b457816040516020016165a29190618ca7565b60405160208183030381529060405291505b600101616537565b5060408051600380825260808201909252600091816020015b60608152602001906001900390816165d55790505090508381600081518110616600576166006183fd565b60200260200101819052506040518060400160405280600281526020017f2d6300000000000000000000000000000000000000000000000000000000000081525081600181518110616654576166546183fd565b60200260200101819052508181600281518110616673576166736183fd565b6020908102919091010152949350505050565b60208083015183518351928401516000936166a4929184919061707d565b14159392505050565b604080518082019091526000808252602082015260006166df846000015185602001518560000151866020015161718e565b90508360200151816166f19190617ddb565b84518590616700908390617ddb565b90525060208401525090919050565b60408051808201909152600080825260208201528151835110156167345750816133f6565b602080830151908401516001911461675b5750815160208481015190840151829020919020145b801561678c57825184518590616772908390617ddb565b9052508251602085018051616788908390618b2b565b9052505b509192915050565b60408051808201909152600080825260208201526167b38383836172ae565b5092915050565b60606000826000015167ffffffffffffffff8111156167db576167db617c8f565b6040519080825280601f01601f191660200182016040528015616805576020820181803683370190505b50905060006020820190506167b38185602001518660000151617359565b6060600061682f6137ec565b6040805160ff808252612000820190925291925060009190816020015b606081526020019060019003908161684c57905050905060006040518060400160405280600381526020017f6e707800000000000000000000000000000000000000000000000000000000008152508282806168a79061856a565b935060ff16815181106168bc576168bc6183fd565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e330000000000000000000000000000000000000000000000000081525060405160200161690d9190618ce8565b6040516020818303038152906040528282806169289061856a565b935060ff168151811061693d5761693d6183fd565b60200260200101819052506040518060400160405280600881526020017f76616c696461746500000000000000000000000000000000000000000000000081525082828061698a9061856a565b935060ff168151811061699f5761699f6183fd565b6020026020010181905250826040516020016169bb9190618498565b6040516020818303038152906040528282806169d69061856a565b935060ff16815181106169eb576169eb6183fd565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280616a389061856a565b935060ff1681518110616a4d57616a4d6183fd565b6020026020010181905250616a6287846173d3565b8282616a6d8161856a565b935060ff1681518110616a8257616a826183fd565b602090810291909101015285515115616b2e5760408051808201909152600b81527f2d2d7265666572656e636500000000000000000000000000000000000000000060208201528282616ad48161856a565b935060ff1681518110616ae957616ae96183fd565b6020026020010181905250616b028660000151846173d3565b8282616b0d8161856a565b935060ff1681518110616b2257616b226183fd565b60200260200101819052505b856080015115616b9c5760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282616b778161856a565b935060ff1681518110616b8c57616b8c6183fd565b6020026020010181905250616c02565b8415616c025760408051808201909152601281527f2d2d726571756972655265666572656e6365000000000000000000000000000060208201528282616be18161856a565b935060ff1681518110616bf657616bf66183fd565b60200260200101819052505b60408601515115616c9e5760408051808201909152600d81527f2d2d756e73616665416c6c6f770000000000000000000000000000000000000060208201528282616c4c8161856a565b935060ff1681518110616c6157616c616183fd565b60200260200101819052508560400151828280616c7d9061856a565b935060ff1681518110616c9257616c926183fd565b60200260200101819052505b856060015115616d085760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d657300000000000000000000000060208201528282616ce78161856a565b935060ff1681518110616cfc57616cfc6183fd565b60200260200101819052505b60008160ff1667ffffffffffffffff811115616d2657616d26617c8f565b604051908082528060200260200182016040528015616d5957816020015b6060815260200190600190039081616d445790505b50905060005b8260ff168160ff161015616db257838160ff1681518110616d8257616d826183fd565b6020026020010151828260ff1681518110616d9f57616d9f6183fd565b6020908102919091010152600101616d5f565b50979650505050505050565b6040805180820190915260008082526020820152815183511015616de35750816133f6565b81518351602085015160009291616df991618b2b565b616e039190617ddb565b60208401519091506001908214616e24575082516020840151819020908220145b8015616e3f57835185518690616e3b908390617ddb565b9052505b50929392505050565b6000808260000151616e6c856000015186602001518660000151876020015161718e565b616e769190618b2b565b90505b83516020850151616e8a9190618b2b565b81116167b35781616e9a81618d2d565b9250508260000151616ed1856020015183616eb59190617ddb565b8651616ec19190617ddb565b838660000151876020015161718e565b616edb9190618b2b565b9050616e79565b60606000616ef08484616e48565b616efb906001618b2b565b67ffffffffffffffff811115616f1357616f13617c8f565b604051908082528060200260200182016040528015616f4657816020015b6060815260200190600190039081616f315790505b50905060005b81518110156151bb57616f626153dd8686616794565b828281518110616f7457616f746183fd565b6020908102919091010152600101616f4c565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310616fd0577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310616ffc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061701a57662386f26fc10000830492506010015b6305f5e1008310617032576305f5e100830492506008015b612710831061704657612710830492506004015b60648310617058576064830492506002015b600a83106133f65760010192915050565b60006170758383617413565b159392505050565b600080858411617184576020841161713057600084156170c85760016170a4866020617ddb565b6170af906008618d47565b6170ba906002618e45565b6170c49190617ddb565b1990505b83518116856170d78989618b2b565b6170e19190617ddb565b805190935082165b81811461711b578784116171035787945050505050614dec565b8361710d81618e51565b9450508284511690506170e9565b6171258785618b2b565b945050505050614dec565b83832061713d8588617ddb565b6171479087618b2b565b91505b8582106171825784822080820361716f576171658684618b2b565b9350505050614dec565b61717a600184617ddb565b92505061714a565b505b5092949350505050565b60008381868511617299576020851161724857600085156171da5760016171b6876020617ddb565b6171c1906008618d47565b6171cc906002618e45565b6171d69190617ddb565b1990505b845181166000876171eb8b8b618b2b565b6171f59190617ddb565b855190915083165b82811461723a57818610617222576172158b8b618b2b565b9650505050505050614dec565b8561722c81618d2d565b9650508386511690506171fd565b859650505050505050614dec565b508383206000905b61725a8689617ddb565b8211617297578583208082036172765783945050505050614dec565b617281600185618b2b565b935050818061728f90618d2d565b925050617250565b505b6172a38787618b2b565b979650505050505050565b604080518082019091526000808252602082015260006172e0856000015186602001518660000151876020015161718e565b6020808701805191860191909152519091506172fc9082617ddb565b83528451602086015161730f9190618b2b565b810361731e5760008552617350565b8351835161732c9190618b2b565b8551869061733b908390617ddb565b905250835161734a9082618b2b565b60208601525b50909392505050565b602081106173915781518352617370602084618b2b565b925061737d602083618b2b565b915061738a602082617ddb565b9050617359565b60001981156173c05760016173a7836020617ddb565b6173b390610100618e45565b6173bd9190617ddb565b90505b9151835183169219169190911790915250565b606060006173e184846138bf565b80516020808301516040519394506173fb93909101618e68565b60405160208183030381529060405291505092915050565b8151815160009190811115617426575081515b6020808501519084015160005b838110156174df57825182518082146174af57600019602087101561748e57600184617460896020617ddb565b61746a9190618b2b565b617475906008618d47565b617480906002618e45565b61748a9190617ddb565b1990505b81811683821681810391146174ac5797506133f69650505050505050565b50505b6174ba602086618b2b565b94506174c7602085618b2b565b935050506020816174d89190618b2b565b9050617433565b5084518651613f6d9190618ec0565b610c9f80618ee183390190565b610b4a80619b8083390190565b610f9a8061a6ca83390190565b610d5e8061b66483390190565b6107f68061c3c283390190565b610b3f8061cbb883390190565b6119e88061d6f783390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161758c617591565b905290565b6040518061010001604052806000151581526020016000151581526020016060815260200160008019168152602001606081526020016060815260200160001515815260200161758c6040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b818110156176435783516001600160a01b031683526020938401939092019160010161761c565b509095945050505050565b60005b83811015617669578181015183820152602001617651565b50506000910152565b6000815180845261768a81602086016020860161764e565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561779a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015617780577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a850301835261776a848651617672565b6020958601959094509290920191600101617730565b5091975050506020948501949290920191506001016176c6565b50929695505050505050565b600081518084526020840193506020830160005b828110156177fa5781517fffffffff00000000000000000000000000000000000000000000000000000000168652602095860195909101906001016177ba565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561779a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281518051604087526178706040880182617672565b905060208201519150868103602088015261788b81836177a6565b96505050602093840193919091019060010161782c565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561779a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452617904858351617672565b945060209384019391909101906001016178ca565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561779a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b038151168652602081015190506040602087015261799a60408701826177a6565b9550506020938401939190910190600101617941565b6000602082840312156179c257600080fd5b815180151581146134ef57600080fd5b610100815260056101008201527f544f4b454e000000000000000000000000000000000000000000000000000000610120820152610140602082015260036101408201527f544b4e000000000000000000000000000000000000000000000000000000000061016082015260006101808201905060ff8816604083015286606083015260038610617a8c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8560808301528460a0830152617aad60c08301856001600160a01b03169052565b6001600160a01b03831660e0830152979650505050505050565b600181811c90821680617adb57607f821691505b6020821081036156b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215617b2657600080fd5b5051919050565b606081526000617b406060830186617672565b602083019490945250901515604090910152919050565b608081526000617b6a6080830187617672565b62ffffff861660208401526001600160a01b038516604084015282810360608401526172a38185617672565b6001600160a01b038416815282602082015260606040820152600061569e6060830184617672565b60c081526000617bd160c0830189617672565b8760208401526001600160a01b03871660408401528281036060840152617bf88187617672565b6080840195909552505090151560a090910152949350505050565b6001600160a01b038616815284602082015260a060408201526000617c3b60a0830186617672565b6060830194909452509015156080909101529392505050565b828152604060208201526000614dec6040830184617672565b6001600160a01b0383168152604060208201526000614dec6040830184617672565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715617ce157617ce1617c8f565b60405290565b60008067ffffffffffffffff841115617d0257617d02617c8f565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715617d3157617d31617c8f565b604052838152905080828401851015617d4957600080fd5b6151bb84602083018561764e565b600082601f830112617d6857600080fd5b6134ef83835160208501617ce7565b600060208284031215617d8957600080fd5b815167ffffffffffffffff811115617da057600080fd5b6133f284828501617d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156133f6576133f6617dac565b6001600160a01b038716815260c060208201526000617e1060c0830188617672565b86604084015285606084015284608084015282810360a0840152617e348185617672565b9998505050505050505050565b608081526000617e546080830187617672565b8560208401526001600160a01b038516604084015282810360608401526172a38185617672565b604081526000617e8e6040830185617672565b82810360208401526134eb8185617672565b608081526000617eb36080830187617672565b8281036020840152617ec58187617672565b6040840195909552505090151560609091015292915050565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351617f1681601a85016020880161764e565b7f3a20000000000000000000000000000000000000000000000000000000000000601a918401918201528351617f5381601c84016020880161764e565b01601c01949350505050565b6020815260006134ef6020830184617672565b600060208284031215617f8457600080fd5b81516001600160a01b03811681146134ef57600080fd5b60008351617fad81846020880161764e565b835190830190617fc181836020880161764e565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161800281601a85016020880161764e565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a91840191820152835161803f81603384016020880161764e565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f555400000000000000000000000000000000000000000060608201526080602082015260006134ef6080830184617672565b6000602082840312156180ce57600080fd5b815167ffffffffffffffff8111156180e557600080fd5b8201601f810184136180f657600080fd5b6133f284825160208401617ce7565b60008551618117818460208a0161764e565b7f2f000000000000000000000000000000000000000000000000000000000000009083019081528551618151816001840160208a0161764e565b7f2f0000000000000000000000000000000000000000000000000000000000000060019290910191820152845161818f81600284016020890161764e565b6001818301019150507f2f00000000000000000000000000000000000000000000000000000000000000600182015283516181d181600284016020880161764e565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b60408152600061821c6040830184617672565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161829381601f85016020870161764e565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b6040815260006183006040830184617672565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b6040815260006183526040830184617672565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b270000000000000000000000008152600082516183c981601485016020870161764e565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f220000000000000000000000000000000000000000000000000000000000000081526000825161846481600185016020870161764e565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b600082516184aa81846020870161764e565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e74726163742000000000000000000000000000000000000000000060408201526000825161855d81604b85016020870161764e565b91909101604b0192915050565b600060ff821660ff810361858057618580617dac565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c694000000000000000000000000000000000000000000000006020820152600082516185e781602985016020870161764e565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f504154480000000000000000000060608201526080602082015260006134ef6080830184617672565b60006020828403121561864d57600080fd5b815167ffffffffffffffff81111561866457600080fd5b82016060818503121561867657600080fd5b61867e617cbe565b81518060030b811461868f57600080fd5b8152602082015167ffffffffffffffff8111156186ab57600080fd5b6186b786828501617d57565b602083015250604082015167ffffffffffffffff8111156186d757600080fd5b6186e386828501617d57565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f220000000000000000000000000000000000000000000000000000000000000060208201526000825161874f81602185016020870161764e565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f270000000000000000000000000000000000000000000000000000000000000060208201526000835161893b81602185016020880161764e565b7f2720696e206f75747075743a2000000000000000000000000000000000000000602191840191820152835161897881602e84016020880161764e565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a2000000000000000000000000000000000000000000000006020820152600082516185e781602985016020870161764e565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a000000000000000000000000000000000000000000000000000000000000602082015260008251618a4081602285016020870161764e565b9190910160220192915050565b7f436f6e7472616374206e616d6520000000000000000000000000000000000000815260008251618a8581600e85016020870161764e565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b808201808211156133f6576133f6617dac565b7f53504458206c6963656e7365206964656e746966696572200000000000000000815260008351618b7681601885016020880161764e565b7f20696e20000000000000000000000000000000000000000000000000000000006018918401918201528351618bb381601c84016020880161764e565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b60008251618cb981846020870161764e565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f72654000000000815260008251618d2081601c85016020870161764e565b91909101601c0192915050565b60006000198203618d4057618d40617dac565b5060010190565b80820281158282048414176133f6576133f6617dac565b6001815b6001841115618d9957808504811115618d7d57618d7d617dac565b6001841615618d8b57908102905b60019390931c928002618d62565b935093915050565b600082618db0575060016133f6565b81618dbd575060006133f6565b8160018114618dd35760028114618ddd57618df9565b60019150506133f6565b60ff841115618dee57618dee617dac565b50506001821b6133f6565b5060208310610133831016604e8410600b8410161715618e1c575081810a6133f6565b618e296000198484618d5e565b8060001904821115618e3d57618e3d617dac565b029392505050565b60006134ef8383618da1565b600081618e6057618e60617dac565b506000190190565b60008351618e7a81846020880161764e565b7f3a000000000000000000000000000000000000000000000000000000000000009083019081528351618eb481600184016020880161764e565b01600101949350505050565b81810360008312801583831316838312821617156167b3576167b3617dac56fe608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b50604051610b4a380380610b4a83398101604081905261002f916100bc565b60016000556001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ef565b80516001600160a01b03811681146100b757600080fd5b919050565b600080604083850312156100cf57600080fd5b6100d8836100a0565b91506100e6602084016100a0565b90509250929050565b610a4c806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80635b112591116100505780635b112591146100ca578063c8a02362146100ea578063d9caed12146100fd57600080fd5b8063116191b61461006c57806321fc65f2146100b5575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100c86100c3366004610822565b610110565b005b60025461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100c86100f8366004610822565b61029a565b6100c861010b3660046108bf565b61040b565b6101186104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610169576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546101909073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906101ee9088908890889088908890600401610945565b600060405180830381600087803b15801561020857600080fd5b505af115801561021c573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610281939291906109a2565b60405180910390a36102936001600055565b5050505050565b6102a26104fb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102f3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015461031a9073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906103789088908890889088908890600401610945565b600060405180830381600087803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8858585604051610281939291906109a2565b6104136104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61048573ffffffffffffffffffffffffffffffffffffffff8416838361053e565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104e491815260200190565b60405180910390a36104f66001600055565b505050565b600260005403610537576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f6918591906000906105d790841683610650565b905080516000141580156105fc5750808060200190518101906105fa91906109c5565b155b156104f6576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b606061065e83836000610665565b9392505050565b6060814710156106a3576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610647565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516106cc91906109e7565b60006040518083038185875af1925050503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b509150915061071e868383610728565b9695505050505050565b60608261073d57610738826107b7565b61065e565b8151158015610761575073ffffffffffffffffffffffffffffffffffffffff84163b155b156107b0576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610647565b508061065e565b8051156107c75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461081d57600080fd5b919050565b60008060008060006080868803121561083a57600080fd5b610843866107f9565b9450610851602087016107f9565b935060408601359250606086013567ffffffffffffffff81111561087457600080fd5b8601601f8101881361088557600080fd5b803567ffffffffffffffff81111561089c57600080fd5b8860208284010111156108ae57600080fd5b959894975092955050506020019190565b6000806000606084860312156108d457600080fd5b6108dd846107f9565b92506108eb602085016107f9565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006109976080830184866108fc565b979650505050505050565b8381526040602082015260006109bc6040830184866108fc565b95945050505050565b6000602082840312156109d757600080fd5b8151801515811461065e57600080fd5b6000825160005b81811015610a0857602081860181015185830152016109ee565b50600092019182525091905056fea264697066735822122041336b1568f49be1aa3dcd208e804b373772741e9b7e1726a8869e99fced60c764736f6c634300081a003360c060405260001960025534801561001657600080fd5b50604051610f9a380380610f9a833981016040819052610035916100d8565b60016000558282826001600160a01b038316158061005a57506001600160a01b038216155b8061006c57506001600160a01b038116155b1561008a5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0392831660805290821660a052600180546001600160a01b031916919092161790555061011b915050565b80516001600160a01b03811681146100d357600080fd5b919050565b6000806000606084860312156100ed57600080fd5b6100f6846100bc565b9250610104602085016100bc565b9150610112604085016100bc565b90509250925092565b60805160a051610e0061019a6000396000818161012601528181610216015281816103580152818161041e01528181610541015281816106630152818161077c015281816108be015281816109840152610af101526000818160d501528181610322015281816103ef0152818161088801526109550152610e006000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80635b112591116100765780636f8b44b01161005b5780636f8b44b01461017b578063743e0c9b1461018e578063d5abeb01146101a157600080fd5b80635b112591146101485780635e3e9fef1461016857600080fd5b806302d5c899146100a8578063106e6290146100bd578063116191b6146100d057806321e093b114610121575b600080fd5b6100bb6100b6366004610bca565b6101b8565b005b6100bb6100cb366004610c5c565b6104e3565b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b6001546100f79073ffffffffffffffffffffffffffffffffffffffff1681565b6100bb610176366004610bca565b61071e565b6100bb610189366004610c8f565b610a30565b6100bb61019c366004610c8f565b610abc565b6101aa60025481565b604051908152602001610118565b6101c0610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610211576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a39190610ca8565b6102ad9086610cc1565b11156102e5576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561039c57600080fd5b505af11580156103b0573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd4915061044e907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b15801561046857600080fd5b505af115801561047c573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8585856040516104ca93929190610da7565b60405180910390a26104dc6001600055565b5050505050565b6104eb610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff16331461053c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce9190610ca8565b6105d89084610cc1565b1115610610576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161070791815260200190565b60405180910390a26107196001600055565b505050565b610726610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610777576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190610ca8565b6108139086610cc1565b111561084b576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090257600080fd5b505af1158015610916573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab5991506109b4907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b1580156109ce57600080fd5b505af11580156109e2573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8585856040516104ca93929190610da7565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a81576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a150565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610b4a57600080fd5b505af11580156104dc573d6000803e3d6000fd5b600260005403610b9a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bc557600080fd5b919050565b600080600080600060808688031215610be257600080fd5b610beb86610ba1565b945060208601359350604086013567ffffffffffffffff811115610c0e57600080fd5b8601601f81018813610c1f57600080fd5b803567ffffffffffffffff811115610c3657600080fd5b886020828401011115610c4857600080fd5b959894975060200195606001359392505050565b600080600060608486031215610c7157600080fd5b610c7a84610ba1565b95602085013595506040909401359392505050565b600060208284031215610ca157600080fd5b5035919050565b600060208284031215610cba57600080fd5b5051919050565b80820180821115610cfb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610d9c608083018486610d01565b979650505050505050565b838152604060208201526000610dc1604083018486610d01565b9594505050505056fea2646970667358221220eef04aea35a49145971cb42500074f7c44d89db08a5df2b7d071494c05cc1a2a64736f6c634300081a00336080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a00336080604052348015600f57600080fd5b506040516107f63803806107f6833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b6107698061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b61461005b578063a0a1730b146100a4575b600080fd5b6100596100543660046104c1565b6100b7565b005b60005461007b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100596100b236600461057c565b6102af565b60008383836040516024016100ce93929190610665565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810189905291925086169063095ea7b3906044016020604051808303816000875af11580156101be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e2919061068f565b610218576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517f7993c1e000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690637993c1e090610274908a908a908a9087906004016106b3565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008383836040516024016102c693929190610665565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f0ac7c44c00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690630ac7c44c906103949088908590600401610705565b600060405180830381600087803b1580156103ae57600080fd5b505af11580156103c2573d6000803e3d6000fd5b505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261040d57600080fd5b81356020830160008067ffffffffffffffff84111561042e5761042e6103cd565b506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85018116603f0116810181811067ffffffffffffffff8211171561047b5761047b6103cd565b60405283815290508082840187101561049357600080fd5b838360208301376000602085830101528094505050505092915050565b80151581146104be57600080fd5b50565b60008060008060008060c087890312156104da57600080fd5b863567ffffffffffffffff8111156104f157600080fd5b6104fd89828a016103fc565b96505060208701359450604087013573ffffffffffffffffffffffffffffffffffffffff8116811461052e57600080fd5b9350606087013567ffffffffffffffff81111561054a57600080fd5b61055689828a016103fc565b9350506080870135915060a087013561056e816104b0565b809150509295509295509295565b6000806000806080858703121561059257600080fd5b843567ffffffffffffffff8111156105a957600080fd5b6105b5878288016103fc565b945050602085013567ffffffffffffffff8111156105d257600080fd5b6105de878288016103fc565b9350506040850135915060608501356105f6816104b0565b939692955090935050565b6000815180845260005b818110156106275760208185018101518683018201520161060b565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6060815260006106786060830186610601565b602083019490945250901515604090910152919050565b6000602082840312156106a157600080fd5b81516106ac816104b0565b9392505050565b6080815260006106c66080830187610601565b85602084015273ffffffffffffffffffffffffffffffffffffffff8516604084015282810360608401526106fa8185610601565b979650505050505050565b6040815260006107186040830185610601565b828103602084015261072a8185610601565b9594505050505056fea26469706673582212204babda0c6b9bc7b1d80b616dce92ddfbe79ae0bb96aad4f2c77ffb6a8c63da7f64736f6c634300081a0033608060405234801561001057600080fd5b50604051610b3f380380610b3f83398101604081905261002f916100b9565b600380546001600160a01b038086166001600160a01b0319928316179092556004805485841690831617905560058054928416929091169190911790556040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac590600090a15050506100fc565b80516001600160a01b03811681146100b457600080fd5b919050565b6000806000606084860312156100ce57600080fd5b6100d78461009d565b92506100e56020850161009d565b91506100f36040850161009d565b90509250925092565b610a348061010b6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806397770dff11610081578063d7fd7afb1161005b578063d7fd7afb146101f2578063d936a01214610220578063ee2815ba1461024057600080fd5b806397770dff146101b9578063a7cb0507146101cc578063c63585cc146101df57600080fd5b8063513a9c05116100b2578063513a9c0514610143578063569541b914610179578063842da36d1461019957600080fd5b80630be15547146100ce5780633c669d551461012e575b600080fd5b6101046100dc36600461071e565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61014161013c366004610760565b610253565b005b61010461015136600461071e565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6003546101049073ffffffffffffffffffffffffffffffffffffffff1681565b6005546101049073ffffffffffffffffffffffffffffffffffffffff1681565b6101416101c73660046107fd565b6103a0565b6101416101da36600461081f565b610419565b6101046101ed366004610841565b610467565b61021261020036600461071e565b60006020819052908152604090205481565b604051908152602001610125565b6004546101049073ffffffffffffffffffffffffffffffffffffffff1681565b61014161024e366004610884565b61059c565b604080516080810182526000606082019081528152336020820152468183015290517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526024820186905286169063a9059cbb906044016020604051808303816000875af11580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b91906108b0565b506040517fde43156e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063de43156e90610366908490899089908990899060040161091b565b600060405180830381600087803b15801561038057600080fd5b505af1158015610394573d6000803e3d6000fd5b50505050505050505050565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e9060200160405180910390a150565b6000828152602081815260409182902083905581518481529081018390527f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d91015b60405180910390a15050565b60008060006104768585610620565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084811b8216602084015283901b166034820152919350915086906048016040516020818303038152906040528051906020012060405160200161055c9291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b60008281526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d910161045b565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610688576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106106c25782846106c5565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610717576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b60006020828403121561073057600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461075b57600080fd5b919050565b60008060008060006080868803121561077857600080fd5b61078186610737565b945061078f60208701610737565b935060408601359250606086013567ffffffffffffffff8111156107b257600080fd5b8601601f810188136107c357600080fd5b803567ffffffffffffffff8111156107da57600080fd5b8860208284010111156107ec57600080fd5b959894975092955050506020019190565b60006020828403121561080f57600080fd5b61081882610737565b9392505050565b6000806040838503121561083257600080fd5b50508035926020909101359150565b60008060006060848603121561085657600080fd5b61085f84610737565b925061086d60208501610737565b915061087b60408501610737565b90509250925092565b6000806040838503121561089757600080fd5b823591506108a760208401610737565b90509250929050565b6000602082840312156108c257600080fd5b8151801515811461081857600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600086516060608084015280518060e085015260005b81811015610953576020818401810151610100878401015201610935565b5060008482016101000152602089015173ffffffffffffffffffffffffffffffffffffffff811660a0860152601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168401915050604088015160c084015273ffffffffffffffffffffffffffffffffffffffff871660208401528560408401526101008382030160608401526109f2610100820185876108d2565b9897505050505050505056fea2646970667358221220fbd69f8a6a30bdc247946500ad2bb4f7e9f585a260ef649595b89d427fb12f2064736f6c634300081a003360c060405234801561001057600080fd5b506040516119e83803806119e883398101604081905261002f916101db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600761006f898261032d565b50600861007c888261032d565b506009805460ff191660ff881617905560808590528360028111156100a3576100a36103eb565b60a08160028111156100b7576100b76103eb565b905250600292909255600080546001600160a01b039283166001600160a01b03199182161790915560018054929093169116179055506104019350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011e57600080fd5b81516001600160401b03811115610137576101376100f7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610165576101656100f7565b60405281815283820160200185101561017d57600080fd5b60005b8281101561019c57602081860181015183830182015201610180565b506000918101602001919091529392505050565b8051600381106101bf57600080fd5b919050565b80516001600160a01b03811681146101bf57600080fd5b600080600080600080600080610100898b0312156101f857600080fd5b88516001600160401b0381111561020e57600080fd5b61021a8b828c0161010d565b60208b015190995090506001600160401b0381111561023857600080fd5b6102448b828c0161010d565b975050604089015160ff8116811461025b57600080fd5b60608a0151909650945061027160808a016101b0565b60a08a0151909450925061028760c08a016101c4565b915061029560e08a016101c4565b90509295985092959890939650565b600181811c908216806102b857607f821691505b6020821081036102d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561032857806000526020600020601f840160051c810160208510156103055750805b601f840160051c820191505b818110156103255760008155600101610311565b50505b505050565b81516001600160401b03811115610346576103466100f7565b61035a8161035484546102a4565b846102de565b6020601f82116001811461038e57600083156103765750848201515b600019600385901b1c1916600184901b178455610325565b600084815260208120601f198516915b828110156103be578785015182556020948501946001909201910161039e565b50848210156103dc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805160a0516115b461043460003960006102f30152600081816102c4015281816109430152610a4901526115b46000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806385e1f4d0116100e3578063d9eeebed1161008c578063eddeb12311610066578063eddeb123146103f7578063f2441b321461040a578063f687d12a1461042a57600080fd5b8063d9eeebed1461035d578063dd62ed3e14610391578063e2f535b8146103d757600080fd5b8063a9059cbb116100bd578063a9059cbb14610322578063c701262614610335578063c835d7cc1461034857600080fd5b806385e1f4d0146102bf57806395d89b41146102e6578063a3413d03146102ee57600080fd5b8063313ce5671161014557806347e7ef241161011f57806347e7ef241461026d5780634d8943bb1461028057806370a082311461028957600080fd5b8063313ce567146102055780633ce4a5bc1461021a57806342966c681461025a57600080fd5b8063095ea7b311610176578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101f257600080fd5b806306fdde0314610192578063091d2788146101b0575b600080fd5b61019a61043d565b6040516101a79190611193565b60405180910390f35b6101b960025481565b6040519081526020016101a7565b6101da6101d53660046111d2565b6104cf565b60405190151581526020016101a7565b6006546101b9565b6101da6102003660046111fe565b6104e6565b60095460405160ff90911681526020016101a7565b61023573735b14bb79463307aacbed86daf3322b1e6226ab81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101da61026836600461123f565b61057d565b6101da61027b3660046111d2565b610591565b6101b960035481565b6101b9610297366004611258565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61019a6106e5565b6103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a79190611275565b6101da6103303660046111d2565b6106f4565b6101da6103433660046112e5565b610701565b61035b610356366004611258565b610850565b005b610365610917565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6101b961039f3660046113dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b6001546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61040536600461123f565b610b35565b6000546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61043836600461123f565b610bb7565b60606007805461044c90611416565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611416565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc338484610c39565b5060015b92915050565b60006104f3848484610d42565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083203384529091529020548281101561055e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610572853361056d8685611498565b610c39565b506001949350505050565b60006105893383610efd565b506001919050565b60003373735b14bb79463307aacbed86daf3322b1e6226ab148015906105cf575060005473ffffffffffffffffffffffffffffffffffffffff163314155b80156105f3575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561062a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610634838361103f565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8416907f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab390603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526106d49186906114ab565b60405180910390a250600192915050565b60606008805461044c90611416565b60006104dc338484610d42565b600080600061070e610917565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab602482015260448101829052919350915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906064016020604051808303816000875af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906114cd565b6107fa576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108043385610efd565b60035460405133917f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161083d918991899187916114ef565b60405180910390a2506001949350505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461089d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae906020015b60405180910390a150565b600080546040517f0be155470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201528291829173ffffffffffffffffffffffffffffffffffffffff90911690630be1554790602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce919061151e565b905073ffffffffffffffffffffffffffffffffffffffff8116610a1d576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517fd7fd7afb0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff9091169063d7fd7afb90602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061153b565b905080600003610b0c576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610b1f9190611554565b610b29919061156b565b92959294509192505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610b82576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f9060200161090c565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610c04576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a9060200161090c565b73ffffffffffffffffffffffffffffffffffffffff8316610c86576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cd3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d8f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ddc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205481811015610e3c576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e468282611498565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600460205260408082209390935590851681529081208054849290610e8990849061156b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eef91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610f4a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481811015610faa576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb48282611498565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081209190915560068054849290610fef908490611498565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d35565b73ffffffffffffffffffffffffffffffffffffffff821661108c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806006600082825461109e919061156b565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906110d890849061156b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000815180845260005b8181101561115557602081850181015186830182015201611139565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111a6602083018461112f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b60008060006060848603121561121357600080fd5b833561121e816111ad565b9250602084013561122e816111ad565b929592945050506040919091013590565b60006020828403121561125157600080fd5b5035919050565b60006020828403121561126a57600080fd5b81356111a6816111ad565b60208101600383106112b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156112f857600080fd5b823567ffffffffffffffff81111561130f57600080fd5b8301601f8101851361132057600080fd5b803567ffffffffffffffff81111561133a5761133a6112b6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113a6576113a66112b6565b6040528181528282016020018710156113be57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600080604083850312156113f057600080fd5b82356113fb816111ad565b9150602083013561140b816111ad565b809150509250929050565b600181811c9082168061142a57607f821691505b602082108103611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104e0576104e0611469565b6040815260006114be604083018561112f565b90508260208301529392505050565b6000602082840312156114df57600080fd5b815180151581146111a657600080fd5b608081526000611502608083018761112f565b6020830195909552506040810192909252606090910152919050565b60006020828403121561153057600080fd5b81516111a6816111ad565b60006020828403121561154d57600080fd5b5051919050565b80820281158282048414176104e0576104e0611469565b808201808211156104e0576104e061146956fea26469706673582212207bc62dfdede7c005315010b4244c5d1661fb65fbf23259603e26342f3a5148c464736f6c634300081a0033a2646970667358221220dbf12c2832ab74df8ec1292715e3c69624daafc9af9fa95864fbcca6c9f90d3e64736f6c634300081a0033", +} + +// GatewayEVMZEVMTestABI is the input ABI used to generate the binding from. +// Deprecated: Use GatewayEVMZEVMTestMetaData.ABI instead. +var GatewayEVMZEVMTestABI = GatewayEVMZEVMTestMetaData.ABI + +// GatewayEVMZEVMTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use GatewayEVMZEVMTestMetaData.Bin instead. +var GatewayEVMZEVMTestBin = GatewayEVMZEVMTestMetaData.Bin + +// DeployGatewayEVMZEVMTest deploys a new Ethereum contract, binding an instance of GatewayEVMZEVMTest to it. +func DeployGatewayEVMZEVMTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GatewayEVMZEVMTest, error) { + parsed, err := GatewayEVMZEVMTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(GatewayEVMZEVMTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &GatewayEVMZEVMTest{GatewayEVMZEVMTestCaller: GatewayEVMZEVMTestCaller{contract: contract}, GatewayEVMZEVMTestTransactor: GatewayEVMZEVMTestTransactor{contract: contract}, GatewayEVMZEVMTestFilterer: GatewayEVMZEVMTestFilterer{contract: contract}}, nil +} + +// GatewayEVMZEVMTest is an auto generated Go binding around an Ethereum contract. +type GatewayEVMZEVMTest struct { + GatewayEVMZEVMTestCaller // Read-only binding to the contract + GatewayEVMZEVMTestTransactor // Write-only binding to the contract + GatewayEVMZEVMTestFilterer // Log filterer for contract events +} + +// GatewayEVMZEVMTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type GatewayEVMZEVMTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMZEVMTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type GatewayEVMZEVMTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMZEVMTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type GatewayEVMZEVMTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayEVMZEVMTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type GatewayEVMZEVMTestSession struct { + Contract *GatewayEVMZEVMTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMZEVMTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type GatewayEVMZEVMTestCallerSession struct { + Contract *GatewayEVMZEVMTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// GatewayEVMZEVMTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type GatewayEVMZEVMTestTransactorSession struct { + Contract *GatewayEVMZEVMTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayEVMZEVMTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type GatewayEVMZEVMTestRaw struct { + Contract *GatewayEVMZEVMTest // Generic contract binding to access the raw methods on +} + +// GatewayEVMZEVMTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type GatewayEVMZEVMTestCallerRaw struct { + Contract *GatewayEVMZEVMTestCaller // Generic read-only contract binding to access the raw methods on +} + +// GatewayEVMZEVMTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type GatewayEVMZEVMTestTransactorRaw struct { + Contract *GatewayEVMZEVMTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewGatewayEVMZEVMTest creates a new instance of GatewayEVMZEVMTest, bound to a specific deployed contract. +func NewGatewayEVMZEVMTest(address common.Address, backend bind.ContractBackend) (*GatewayEVMZEVMTest, error) { + contract, err := bindGatewayEVMZEVMTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTest{GatewayEVMZEVMTestCaller: GatewayEVMZEVMTestCaller{contract: contract}, GatewayEVMZEVMTestTransactor: GatewayEVMZEVMTestTransactor{contract: contract}, GatewayEVMZEVMTestFilterer: GatewayEVMZEVMTestFilterer{contract: contract}}, nil +} + +// NewGatewayEVMZEVMTestCaller creates a new read-only instance of GatewayEVMZEVMTest, bound to a specific deployed contract. +func NewGatewayEVMZEVMTestCaller(address common.Address, caller bind.ContractCaller) (*GatewayEVMZEVMTestCaller, error) { + contract, err := bindGatewayEVMZEVMTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestCaller{contract: contract}, nil +} + +// NewGatewayEVMZEVMTestTransactor creates a new write-only instance of GatewayEVMZEVMTest, bound to a specific deployed contract. +func NewGatewayEVMZEVMTestTransactor(address common.Address, transactor bind.ContractTransactor) (*GatewayEVMZEVMTestTransactor, error) { + contract, err := bindGatewayEVMZEVMTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestTransactor{contract: contract}, nil +} + +// NewGatewayEVMZEVMTestFilterer creates a new log filterer instance of GatewayEVMZEVMTest, bound to a specific deployed contract. +func NewGatewayEVMZEVMTestFilterer(address common.Address, filterer bind.ContractFilterer) (*GatewayEVMZEVMTestFilterer, error) { + contract, err := bindGatewayEVMZEVMTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestFilterer{contract: contract}, nil +} + +// bindGatewayEVMZEVMTest binds a generic wrapper to an already deployed contract. +func bindGatewayEVMZEVMTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := GatewayEVMZEVMTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMZEVMTest.Contract.GatewayEVMZEVMTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.GatewayEVMZEVMTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.GatewayEVMZEVMTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayEVMZEVMTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.contract.Transact(opts, method, params...) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) ISTEST(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "IS_TEST") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) ISTEST() (bool, error) { + return _GatewayEVMZEVMTest.Contract.ISTEST(&_GatewayEVMZEVMTest.CallOpts) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) ISTEST() (bool, error) { + return _GatewayEVMZEVMTest.Contract.ISTEST(&_GatewayEVMZEVMTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) ExcludeArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "excludeArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) ExcludeArtifacts() ([]string, error) { + return _GatewayEVMZEVMTest.Contract.ExcludeArtifacts(&_GatewayEVMZEVMTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) ExcludeArtifacts() ([]string, error) { + return _GatewayEVMZEVMTest.Contract.ExcludeArtifacts(&_GatewayEVMZEVMTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) ExcludeContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "excludeContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayEVMZEVMTest.Contract.ExcludeContracts(&_GatewayEVMZEVMTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayEVMZEVMTest.Contract.ExcludeContracts(&_GatewayEVMZEVMTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) ExcludeSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "excludeSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMZEVMTest.Contract.ExcludeSelectors(&_GatewayEVMZEVMTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMZEVMTest.Contract.ExcludeSelectors(&_GatewayEVMZEVMTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) ExcludeSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "excludeSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayEVMZEVMTest.Contract.ExcludeSenders(&_GatewayEVMZEVMTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayEVMZEVMTest.Contract.ExcludeSenders(&_GatewayEVMZEVMTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) Failed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "failed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) Failed() (bool, error) { + return _GatewayEVMZEVMTest.Contract.Failed(&_GatewayEVMZEVMTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) Failed() (bool, error) { + return _GatewayEVMZEVMTest.Contract.Failed(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) TargetArtifactSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzArtifactSelector, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "targetArtifactSelectors") + + if err != nil { + return *new([]StdInvariantFuzzArtifactSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzArtifactSelector)).(*[]StdInvariantFuzzArtifactSelector) + + return out0, err + +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayEVMZEVMTest.Contract.TargetArtifactSelectors(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayEVMZEVMTest.Contract.TargetArtifactSelectors(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) TargetArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "targetArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) TargetArtifacts() ([]string, error) { + return _GatewayEVMZEVMTest.Contract.TargetArtifacts(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) TargetArtifacts() ([]string, error) { + return _GatewayEVMZEVMTest.Contract.TargetArtifacts(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) TargetContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "targetContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) TargetContracts() ([]common.Address, error) { + return _GatewayEVMZEVMTest.Contract.TargetContracts(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) TargetContracts() ([]common.Address, error) { + return _GatewayEVMZEVMTest.Contract.TargetContracts(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) TargetInterfaces(opts *bind.CallOpts) ([]StdInvariantFuzzInterface, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "targetInterfaces") + + if err != nil { + return *new([]StdInvariantFuzzInterface), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzInterface)).(*[]StdInvariantFuzzInterface) + + return out0, err + +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayEVMZEVMTest.Contract.TargetInterfaces(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayEVMZEVMTest.Contract.TargetInterfaces(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) TargetSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "targetSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMZEVMTest.Contract.TargetSelectors(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayEVMZEVMTest.Contract.TargetSelectors(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCaller) TargetSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayEVMZEVMTest.contract.Call(opts, &out, "targetSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) TargetSenders() ([]common.Address, error) { + return _GatewayEVMZEVMTest.Contract.TargetSenders(&_GatewayEVMZEVMTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestCallerSession) TargetSenders() ([]common.Address, error) { + return _GatewayEVMZEVMTest.Contract.TargetSenders(&_GatewayEVMZEVMTest.CallOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactor) SetUp(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMZEVMTest.contract.Transact(opts, "setUp") +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) SetUp() (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.SetUp(&_GatewayEVMZEVMTest.TransactOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactorSession) SetUp() (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.SetUp(&_GatewayEVMZEVMTest.TransactOpts) +} + +// TestCallReceiverEVMFromSenderZEVM is a paid mutator transaction binding the contract method 0xd7a525fc. +// +// Solidity: function testCallReceiverEVMFromSenderZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactor) TestCallReceiverEVMFromSenderZEVM(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMZEVMTest.contract.Transact(opts, "testCallReceiverEVMFromSenderZEVM") +} + +// TestCallReceiverEVMFromSenderZEVM is a paid mutator transaction binding the contract method 0xd7a525fc. +// +// Solidity: function testCallReceiverEVMFromSenderZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) TestCallReceiverEVMFromSenderZEVM() (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.TestCallReceiverEVMFromSenderZEVM(&_GatewayEVMZEVMTest.TransactOpts) +} + +// TestCallReceiverEVMFromSenderZEVM is a paid mutator transaction binding the contract method 0xd7a525fc. +// +// Solidity: function testCallReceiverEVMFromSenderZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactorSession) TestCallReceiverEVMFromSenderZEVM() (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.TestCallReceiverEVMFromSenderZEVM(&_GatewayEVMZEVMTest.TransactOpts) +} + +// TestCallReceiverEVMFromZEVM is a paid mutator transaction binding the contract method 0x9683c695. +// +// Solidity: function testCallReceiverEVMFromZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactor) TestCallReceiverEVMFromZEVM(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMZEVMTest.contract.Transact(opts, "testCallReceiverEVMFromZEVM") +} + +// TestCallReceiverEVMFromZEVM is a paid mutator transaction binding the contract method 0x9683c695. +// +// Solidity: function testCallReceiverEVMFromZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) TestCallReceiverEVMFromZEVM() (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.TestCallReceiverEVMFromZEVM(&_GatewayEVMZEVMTest.TransactOpts) +} + +// TestCallReceiverEVMFromZEVM is a paid mutator transaction binding the contract method 0x9683c695. +// +// Solidity: function testCallReceiverEVMFromZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactorSession) TestCallReceiverEVMFromZEVM() (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.TestCallReceiverEVMFromZEVM(&_GatewayEVMZEVMTest.TransactOpts) +} + +// TestWithdrawAndCallReceiverEVMFromSenderZEVM is a paid mutator transaction binding the contract method 0x52474413. +// +// Solidity: function testWithdrawAndCallReceiverEVMFromSenderZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactor) TestWithdrawAndCallReceiverEVMFromSenderZEVM(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMZEVMTest.contract.Transact(opts, "testWithdrawAndCallReceiverEVMFromSenderZEVM") +} + +// TestWithdrawAndCallReceiverEVMFromSenderZEVM is a paid mutator transaction binding the contract method 0x52474413. +// +// Solidity: function testWithdrawAndCallReceiverEVMFromSenderZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) TestWithdrawAndCallReceiverEVMFromSenderZEVM() (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.TestWithdrawAndCallReceiverEVMFromSenderZEVM(&_GatewayEVMZEVMTest.TransactOpts) +} + +// TestWithdrawAndCallReceiverEVMFromSenderZEVM is a paid mutator transaction binding the contract method 0x52474413. +// +// Solidity: function testWithdrawAndCallReceiverEVMFromSenderZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactorSession) TestWithdrawAndCallReceiverEVMFromSenderZEVM() (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.TestWithdrawAndCallReceiverEVMFromSenderZEVM(&_GatewayEVMZEVMTest.TransactOpts) +} + +// TestWithdrawAndCallReceiverEVMFromZEVM is a paid mutator transaction binding the contract method 0x6ff15ccc. +// +// Solidity: function testWithdrawAndCallReceiverEVMFromZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactor) TestWithdrawAndCallReceiverEVMFromZEVM(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMZEVMTest.contract.Transact(opts, "testWithdrawAndCallReceiverEVMFromZEVM") +} + +// TestWithdrawAndCallReceiverEVMFromZEVM is a paid mutator transaction binding the contract method 0x6ff15ccc. +// +// Solidity: function testWithdrawAndCallReceiverEVMFromZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestSession) TestWithdrawAndCallReceiverEVMFromZEVM() (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.TestWithdrawAndCallReceiverEVMFromZEVM(&_GatewayEVMZEVMTest.TransactOpts) +} + +// TestWithdrawAndCallReceiverEVMFromZEVM is a paid mutator transaction binding the contract method 0x6ff15ccc. +// +// Solidity: function testWithdrawAndCallReceiverEVMFromZEVM() returns() +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestTransactorSession) TestWithdrawAndCallReceiverEVMFromZEVM() (*types.Transaction, error) { + return _GatewayEVMZEVMTest.Contract.TestWithdrawAndCallReceiverEVMFromZEVM(&_GatewayEVMZEVMTest.TransactOpts) +} + +// GatewayEVMZEVMTestCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestCallIterator struct { + Event *GatewayEVMZEVMTestCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestCall represents a Call event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestCall struct { + Sender common.Address + Receiver common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMZEVMTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestCallIterator{contract: _GatewayEVMZEVMTest.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestCall, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestCall) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseCall(log types.Log) (*GatewayEVMZEVMTestCall, error) { + event := new(GatewayEVMZEVMTestCall) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestCall0Iterator is returned from FilterCall0 and is used to iterate over the raw logs and unpacked data for Call0 events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestCall0Iterator struct { + Event *GatewayEVMZEVMTestCall0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestCall0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestCall0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestCall0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestCall0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestCall0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestCall0 represents a Call0 event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestCall0 struct { + Sender common.Address + Receiver []byte + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall0 is a free log retrieval operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterCall0(opts *bind.FilterOpts, sender []common.Address) (*GatewayEVMZEVMTestCall0Iterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "Call0", senderRule) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestCall0Iterator{contract: _GatewayEVMZEVMTest.contract, event: "Call0", logs: logs, sub: sub}, nil +} + +// WatchCall0 is a free log subscription operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchCall0(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestCall0, sender []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "Call0", senderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestCall0) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Call0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall0 is a log parse operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseCall0(log types.Log) (*GatewayEVMZEVMTestCall0, error) { + event := new(GatewayEVMZEVMTestCall0) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Call0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestDepositIterator struct { + Event *GatewayEVMZEVMTestDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestDeposit represents a Deposit event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestDeposit struct { + Sender common.Address + Receiver common.Address + Amount *big.Int + Asset common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterDeposit(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*GatewayEVMZEVMTestDepositIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestDepositIterator{contract: _GatewayEVMZEVMTest.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestDeposit, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestDeposit) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseDeposit(log types.Log) (*GatewayEVMZEVMTestDeposit, error) { + event := new(GatewayEVMZEVMTestDeposit) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestExecutedIterator is returned from FilterExecuted and is used to iterate over the raw logs and unpacked data for Executed events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestExecutedIterator struct { + Event *GatewayEVMZEVMTestExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestExecuted represents a Executed event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestExecuted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMZEVMTestExecutedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestExecutedIterator{contract: _GatewayEVMZEVMTest.contract, event: "Executed", logs: logs, sub: sub}, nil +} + +// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchExecuted(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestExecuted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestExecuted) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Executed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseExecuted(log types.Log) (*GatewayEVMZEVMTestExecuted, error) { + event := new(GatewayEVMZEVMTestExecuted) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Executed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestExecutedWithERC20Iterator is returned from FilterExecutedWithERC20 and is used to iterate over the raw logs and unpacked data for ExecutedWithERC20 events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestExecutedWithERC20Iterator struct { + Event *GatewayEVMZEVMTestExecutedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestExecutedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestExecutedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestExecutedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestExecutedWithERC20 represents a ExecutedWithERC20 event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestExecutedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterExecutedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMZEVMTestExecutedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestExecutedWithERC20Iterator{contract: _GatewayEVMZEVMTest.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchExecutedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestExecutedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestExecutedWithERC20) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseExecutedWithERC20(log types.Log) (*GatewayEVMZEVMTestExecutedWithERC20, error) { + event := new(GatewayEVMZEVMTestExecutedWithERC20) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestReceivedERC20Iterator is returned from FilterReceivedERC20 and is used to iterate over the raw logs and unpacked data for ReceivedERC20 events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReceivedERC20Iterator struct { + Event *GatewayEVMZEVMTestReceivedERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestReceivedERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestReceivedERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestReceivedERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestReceivedERC20 represents a ReceivedERC20 event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReceivedERC20 struct { + Sender common.Address + Amount *big.Int + Token common.Address + Destination common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedERC20 is a free log retrieval operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterReceivedERC20(opts *bind.FilterOpts) (*GatewayEVMZEVMTestReceivedERC20Iterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestReceivedERC20Iterator{contract: _GatewayEVMZEVMTest.contract, event: "ReceivedERC20", logs: logs, sub: sub}, nil +} + +// WatchReceivedERC20 is a free log subscription operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchReceivedERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestReceivedERC20) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestReceivedERC20) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedERC20 is a log parse operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseReceivedERC20(log types.Log) (*GatewayEVMZEVMTestReceivedERC20, error) { + event := new(GatewayEVMZEVMTestReceivedERC20) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestReceivedNoParamsIterator is returned from FilterReceivedNoParams and is used to iterate over the raw logs and unpacked data for ReceivedNoParams events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReceivedNoParamsIterator struct { + Event *GatewayEVMZEVMTestReceivedNoParams // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestReceivedNoParamsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestReceivedNoParamsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestReceivedNoParamsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestReceivedNoParams represents a ReceivedNoParams event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReceivedNoParams struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNoParams is a free log retrieval operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterReceivedNoParams(opts *bind.FilterOpts) (*GatewayEVMZEVMTestReceivedNoParamsIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestReceivedNoParamsIterator{contract: _GatewayEVMZEVMTest.contract, event: "ReceivedNoParams", logs: logs, sub: sub}, nil +} + +// WatchReceivedNoParams is a free log subscription operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchReceivedNoParams(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestReceivedNoParams) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestReceivedNoParams) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNoParams is a log parse operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseReceivedNoParams(log types.Log) (*GatewayEVMZEVMTestReceivedNoParams, error) { + event := new(GatewayEVMZEVMTestReceivedNoParams) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestReceivedNonPayableIterator is returned from FilterReceivedNonPayable and is used to iterate over the raw logs and unpacked data for ReceivedNonPayable events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReceivedNonPayableIterator struct { + Event *GatewayEVMZEVMTestReceivedNonPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestReceivedNonPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestReceivedNonPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestReceivedNonPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestReceivedNonPayable represents a ReceivedNonPayable event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReceivedNonPayable struct { + Sender common.Address + Strs []string + Nums []*big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNonPayable is a free log retrieval operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterReceivedNonPayable(opts *bind.FilterOpts) (*GatewayEVMZEVMTestReceivedNonPayableIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestReceivedNonPayableIterator{contract: _GatewayEVMZEVMTest.contract, event: "ReceivedNonPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedNonPayable is a free log subscription operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchReceivedNonPayable(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestReceivedNonPayable) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestReceivedNonPayable) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNonPayable is a log parse operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseReceivedNonPayable(log types.Log) (*GatewayEVMZEVMTestReceivedNonPayable, error) { + event := new(GatewayEVMZEVMTestReceivedNonPayable) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestReceivedPayableIterator is returned from FilterReceivedPayable and is used to iterate over the raw logs and unpacked data for ReceivedPayable events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReceivedPayableIterator struct { + Event *GatewayEVMZEVMTestReceivedPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestReceivedPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestReceivedPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestReceivedPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestReceivedPayable represents a ReceivedPayable event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReceivedPayable struct { + Sender common.Address + Value *big.Int + Str string + Num *big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedPayable is a free log retrieval operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterReceivedPayable(opts *bind.FilterOpts) (*GatewayEVMZEVMTestReceivedPayableIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestReceivedPayableIterator{contract: _GatewayEVMZEVMTest.contract, event: "ReceivedPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedPayable is a free log subscription operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchReceivedPayable(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestReceivedPayable) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestReceivedPayable) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedPayable is a log parse operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseReceivedPayable(log types.Log) (*GatewayEVMZEVMTestReceivedPayable, error) { + event := new(GatewayEVMZEVMTestReceivedPayable) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestReceivedRevertIterator is returned from FilterReceivedRevert and is used to iterate over the raw logs and unpacked data for ReceivedRevert events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReceivedRevertIterator struct { + Event *GatewayEVMZEVMTestReceivedRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestReceivedRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestReceivedRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestReceivedRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestReceivedRevert represents a ReceivedRevert event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReceivedRevert struct { + Sender common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedRevert is a free log retrieval operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterReceivedRevert(opts *bind.FilterOpts) (*GatewayEVMZEVMTestReceivedRevertIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestReceivedRevertIterator{contract: _GatewayEVMZEVMTest.contract, event: "ReceivedRevert", logs: logs, sub: sub}, nil +} + +// WatchReceivedRevert is a free log subscription operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchReceivedRevert(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestReceivedRevert) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestReceivedRevert) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedRevert is a log parse operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseReceivedRevert(log types.Log) (*GatewayEVMZEVMTestReceivedRevert, error) { + event := new(GatewayEVMZEVMTestReceivedRevert) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestRevertedIterator is returned from FilterReverted and is used to iterate over the raw logs and unpacked data for Reverted events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestRevertedIterator struct { + Event *GatewayEVMZEVMTestReverted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestRevertedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestRevertedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestRevertedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestReverted represents a Reverted event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestReverted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMZEVMTestRevertedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestRevertedIterator{contract: _GatewayEVMZEVMTest.contract, event: "Reverted", logs: logs, sub: sub}, nil +} + +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchReverted(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestReverted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestReverted) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseReverted(log types.Log) (*GatewayEVMZEVMTestReverted, error) { + event := new(GatewayEVMZEVMTestReverted) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestRevertedWithERC20Iterator is returned from FilterRevertedWithERC20 and is used to iterate over the raw logs and unpacked data for RevertedWithERC20 events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestRevertedWithERC20Iterator struct { + Event *GatewayEVMZEVMTestRevertedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestRevertedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestRevertedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestRevertedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestRevertedWithERC20 represents a RevertedWithERC20 event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestRevertedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterRevertedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*GatewayEVMZEVMTestRevertedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestRevertedWithERC20Iterator{contract: _GatewayEVMZEVMTest.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchRevertedWithERC20(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestRevertedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestRevertedWithERC20) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseRevertedWithERC20(log types.Log) (*GatewayEVMZEVMTestRevertedWithERC20, error) { + event := new(GatewayEVMZEVMTestRevertedWithERC20) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestWithdrawalIterator is returned from FilterWithdrawal and is used to iterate over the raw logs and unpacked data for Withdrawal events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestWithdrawalIterator struct { + Event *GatewayEVMZEVMTestWithdrawal // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestWithdrawalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestWithdrawalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestWithdrawalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestWithdrawal represents a Withdrawal event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestWithdrawal struct { + From common.Address + Zrc20 common.Address + To []byte + Value *big.Int + Gasfee *big.Int + ProtocolFlatFee *big.Int + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawal is a free log retrieval operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterWithdrawal(opts *bind.FilterOpts, from []common.Address) (*GatewayEVMZEVMTestWithdrawalIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestWithdrawalIterator{contract: _GatewayEVMZEVMTest.contract, event: "Withdrawal", logs: logs, sub: sub}, nil +} + +// WatchWithdrawal is a free log subscription operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestWithdrawal, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestWithdrawal) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawal is a log parse operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseWithdrawal(log types.Log) (*GatewayEVMZEVMTestWithdrawal, error) { + event := new(GatewayEVMZEVMTestWithdrawal) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogIterator is returned from FilterLog and is used to iterate over the raw logs and unpacked data for Log events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogIterator struct { + Event *GatewayEVMZEVMTestLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLog represents a Log event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLog struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLog is a free log retrieval operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLog(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogIterator{contract: _GatewayEVMZEVMTest.contract, event: "log", logs: logs, sub: sub}, nil +} + +// WatchLog is a free log subscription operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLog(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLog) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLog) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLog is a log parse operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLog(log types.Log) (*GatewayEVMZEVMTestLog, error) { + event := new(GatewayEVMZEVMTestLog) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogAddressIterator is returned from FilterLogAddress and is used to iterate over the raw logs and unpacked data for LogAddress events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogAddressIterator struct { + Event *GatewayEVMZEVMTestLogAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogAddress represents a LogAddress event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogAddress struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAddress is a free log retrieval operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogAddress(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogAddressIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_address") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogAddressIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_address", logs: logs, sub: sub}, nil +} + +// WatchLogAddress is a free log subscription operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogAddress(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogAddress) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogAddress is a log parse operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogAddress(log types.Log) (*GatewayEVMZEVMTestLogAddress, error) { + event := new(GatewayEVMZEVMTestLogAddress) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogArrayIterator is returned from FilterLogArray and is used to iterate over the raw logs and unpacked data for LogArray events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogArrayIterator struct { + Event *GatewayEVMZEVMTestLogArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogArray represents a LogArray event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogArray struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray is a free log retrieval operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogArray(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogArrayIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_array") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogArrayIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_array", logs: logs, sub: sub}, nil +} + +// WatchLogArray is a free log subscription operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogArray(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogArray) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogArray) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray is a log parse operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogArray(log types.Log) (*GatewayEVMZEVMTestLogArray, error) { + event := new(GatewayEVMZEVMTestLogArray) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogArray0Iterator is returned from FilterLogArray0 and is used to iterate over the raw logs and unpacked data for LogArray0 events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogArray0Iterator struct { + Event *GatewayEVMZEVMTestLogArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogArray0 represents a LogArray0 event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogArray0 struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray0 is a free log retrieval operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogArray0(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogArray0Iterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogArray0Iterator{contract: _GatewayEVMZEVMTest.contract, event: "log_array0", logs: logs, sub: sub}, nil +} + +// WatchLogArray0 is a free log subscription operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogArray0(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogArray0) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray0 is a log parse operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogArray0(log types.Log) (*GatewayEVMZEVMTestLogArray0, error) { + event := new(GatewayEVMZEVMTestLogArray0) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogArray1Iterator is returned from FilterLogArray1 and is used to iterate over the raw logs and unpacked data for LogArray1 events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogArray1Iterator struct { + Event *GatewayEVMZEVMTestLogArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogArray1 represents a LogArray1 event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogArray1 struct { + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray1 is a free log retrieval operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogArray1(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogArray1Iterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogArray1Iterator{contract: _GatewayEVMZEVMTest.contract, event: "log_array1", logs: logs, sub: sub}, nil +} + +// WatchLogArray1 is a free log subscription operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogArray1(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogArray1) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray1 is a log parse operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogArray1(log types.Log) (*GatewayEVMZEVMTestLogArray1, error) { + event := new(GatewayEVMZEVMTestLogArray1) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogBytesIterator is returned from FilterLogBytes and is used to iterate over the raw logs and unpacked data for LogBytes events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogBytesIterator struct { + Event *GatewayEVMZEVMTestLogBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogBytes represents a LogBytes event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogBytes struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes is a free log retrieval operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogBytes(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogBytesIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogBytesIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogBytes is a free log subscription operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogBytes(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogBytes) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes is a log parse operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogBytes(log types.Log) (*GatewayEVMZEVMTestLogBytes, error) { + event := new(GatewayEVMZEVMTestLogBytes) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogBytes32Iterator is returned from FilterLogBytes32 and is used to iterate over the raw logs and unpacked data for LogBytes32 events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogBytes32Iterator struct { + Event *GatewayEVMZEVMTestLogBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogBytes32 represents a LogBytes32 event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogBytes32 struct { + Arg0 [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes32 is a free log retrieval operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogBytes32(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogBytes32Iterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogBytes32Iterator{contract: _GatewayEVMZEVMTest.contract, event: "log_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogBytes32 is a free log subscription operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogBytes32(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogBytes32) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes32 is a log parse operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogBytes32(log types.Log) (*GatewayEVMZEVMTestLogBytes32, error) { + event := new(GatewayEVMZEVMTestLogBytes32) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogIntIterator is returned from FilterLogInt and is used to iterate over the raw logs and unpacked data for LogInt events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogIntIterator struct { + Event *GatewayEVMZEVMTestLogInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogInt represents a LogInt event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogInt struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogInt is a free log retrieval operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogInt(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogIntIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_int") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogIntIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_int", logs: logs, sub: sub}, nil +} + +// WatchLogInt is a free log subscription operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogInt) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogInt is a log parse operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogInt(log types.Log) (*GatewayEVMZEVMTestLogInt, error) { + event := new(GatewayEVMZEVMTestLogInt) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedAddressIterator is returned from FilterLogNamedAddress and is used to iterate over the raw logs and unpacked data for LogNamedAddress events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedAddressIterator struct { + Event *GatewayEVMZEVMTestLogNamedAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedAddress represents a LogNamedAddress event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedAddress struct { + Key string + Val common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedAddress is a free log retrieval operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedAddress(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedAddressIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedAddressIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_address", logs: logs, sub: sub}, nil +} + +// WatchLogNamedAddress is a free log subscription operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedAddress(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedAddress) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedAddress is a log parse operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedAddress(log types.Log) (*GatewayEVMZEVMTestLogNamedAddress, error) { + event := new(GatewayEVMZEVMTestLogNamedAddress) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedArrayIterator is returned from FilterLogNamedArray and is used to iterate over the raw logs and unpacked data for LogNamedArray events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedArrayIterator struct { + Event *GatewayEVMZEVMTestLogNamedArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedArray represents a LogNamedArray event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedArray struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray is a free log retrieval operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedArray(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedArrayIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedArrayIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_array", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray is a free log subscription operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedArray(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedArray) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedArray) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray is a log parse operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedArray(log types.Log) (*GatewayEVMZEVMTestLogNamedArray, error) { + event := new(GatewayEVMZEVMTestLogNamedArray) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedArray0Iterator is returned from FilterLogNamedArray0 and is used to iterate over the raw logs and unpacked data for LogNamedArray0 events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedArray0Iterator struct { + Event *GatewayEVMZEVMTestLogNamedArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedArray0 represents a LogNamedArray0 event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedArray0 struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray0 is a free log retrieval operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedArray0(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedArray0Iterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedArray0Iterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_array0", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray0 is a free log subscription operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedArray0(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedArray0) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray0 is a log parse operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedArray0(log types.Log) (*GatewayEVMZEVMTestLogNamedArray0, error) { + event := new(GatewayEVMZEVMTestLogNamedArray0) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedArray1Iterator is returned from FilterLogNamedArray1 and is used to iterate over the raw logs and unpacked data for LogNamedArray1 events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedArray1Iterator struct { + Event *GatewayEVMZEVMTestLogNamedArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedArray1 represents a LogNamedArray1 event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedArray1 struct { + Key string + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray1 is a free log retrieval operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedArray1(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedArray1Iterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedArray1Iterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_array1", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray1 is a free log subscription operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedArray1(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedArray1) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray1 is a log parse operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedArray1(log types.Log) (*GatewayEVMZEVMTestLogNamedArray1, error) { + event := new(GatewayEVMZEVMTestLogNamedArray1) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedBytesIterator is returned from FilterLogNamedBytes and is used to iterate over the raw logs and unpacked data for LogNamedBytes events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedBytesIterator struct { + Event *GatewayEVMZEVMTestLogNamedBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedBytes represents a LogNamedBytes event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedBytes struct { + Key string + Val []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes is a free log retrieval operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedBytes(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedBytesIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedBytesIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes is a free log subscription operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedBytes(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedBytes) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes is a log parse operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedBytes(log types.Log) (*GatewayEVMZEVMTestLogNamedBytes, error) { + event := new(GatewayEVMZEVMTestLogNamedBytes) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedBytes32Iterator is returned from FilterLogNamedBytes32 and is used to iterate over the raw logs and unpacked data for LogNamedBytes32 events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedBytes32Iterator struct { + Event *GatewayEVMZEVMTestLogNamedBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedBytes32 represents a LogNamedBytes32 event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedBytes32 struct { + Key string + Val [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes32 is a free log retrieval operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedBytes32(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedBytes32Iterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedBytes32Iterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes32 is a free log subscription operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedBytes32(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedBytes32) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes32 is a log parse operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedBytes32(log types.Log) (*GatewayEVMZEVMTestLogNamedBytes32, error) { + event := new(GatewayEVMZEVMTestLogNamedBytes32) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedDecimalIntIterator is returned from FilterLogNamedDecimalInt and is used to iterate over the raw logs and unpacked data for LogNamedDecimalInt events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedDecimalIntIterator struct { + Event *GatewayEVMZEVMTestLogNamedDecimalInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedDecimalIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedDecimalIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedDecimalIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedDecimalInt represents a LogNamedDecimalInt event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedDecimalInt struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalInt is a free log retrieval operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedDecimalInt(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedDecimalIntIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedDecimalIntIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_decimal_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalInt is a free log subscription operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedDecimalInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedDecimalInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedDecimalInt) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalInt is a log parse operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedDecimalInt(log types.Log) (*GatewayEVMZEVMTestLogNamedDecimalInt, error) { + event := new(GatewayEVMZEVMTestLogNamedDecimalInt) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedDecimalUintIterator is returned from FilterLogNamedDecimalUint and is used to iterate over the raw logs and unpacked data for LogNamedDecimalUint events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedDecimalUintIterator struct { + Event *GatewayEVMZEVMTestLogNamedDecimalUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedDecimalUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedDecimalUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedDecimalUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedDecimalUint represents a LogNamedDecimalUint event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedDecimalUint struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalUint is a free log retrieval operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedDecimalUint(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedDecimalUintIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedDecimalUintIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_decimal_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalUint is a free log subscription operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedDecimalUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedDecimalUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedDecimalUint) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalUint is a log parse operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedDecimalUint(log types.Log) (*GatewayEVMZEVMTestLogNamedDecimalUint, error) { + event := new(GatewayEVMZEVMTestLogNamedDecimalUint) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedIntIterator is returned from FilterLogNamedInt and is used to iterate over the raw logs and unpacked data for LogNamedInt events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedIntIterator struct { + Event *GatewayEVMZEVMTestLogNamedInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedInt represents a LogNamedInt event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedInt struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedInt is a free log retrieval operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedInt(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedIntIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedIntIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedInt is a free log subscription operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedInt(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedInt) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedInt) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedInt is a log parse operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedInt(log types.Log) (*GatewayEVMZEVMTestLogNamedInt, error) { + event := new(GatewayEVMZEVMTestLogNamedInt) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedStringIterator is returned from FilterLogNamedString and is used to iterate over the raw logs and unpacked data for LogNamedString events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedStringIterator struct { + Event *GatewayEVMZEVMTestLogNamedString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedString represents a LogNamedString event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedString struct { + Key string + Val string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedString is a free log retrieval operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedString(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedStringIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedStringIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_string", logs: logs, sub: sub}, nil +} + +// WatchLogNamedString is a free log subscription operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedString(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedString) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedString) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedString is a log parse operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedString(log types.Log) (*GatewayEVMZEVMTestLogNamedString, error) { + event := new(GatewayEVMZEVMTestLogNamedString) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogNamedUintIterator is returned from FilterLogNamedUint and is used to iterate over the raw logs and unpacked data for LogNamedUint events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedUintIterator struct { + Event *GatewayEVMZEVMTestLogNamedUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogNamedUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogNamedUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogNamedUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogNamedUint represents a LogNamedUint event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogNamedUint struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedUint is a free log retrieval operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogNamedUint(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogNamedUintIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogNamedUintIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_named_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedUint is a free log subscription operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogNamedUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogNamedUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogNamedUint) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedUint is a log parse operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogNamedUint(log types.Log) (*GatewayEVMZEVMTestLogNamedUint, error) { + event := new(GatewayEVMZEVMTestLogNamedUint) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogStringIterator is returned from FilterLogString and is used to iterate over the raw logs and unpacked data for LogString events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogStringIterator struct { + Event *GatewayEVMZEVMTestLogString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogString represents a LogString event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogString struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogString is a free log retrieval operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogString(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogStringIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_string") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogStringIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_string", logs: logs, sub: sub}, nil +} + +// WatchLogString is a free log subscription operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogString(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogString) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogString) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogString is a log parse operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogString(log types.Log) (*GatewayEVMZEVMTestLogString, error) { + event := new(GatewayEVMZEVMTestLogString) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogUintIterator is returned from FilterLogUint and is used to iterate over the raw logs and unpacked data for LogUint events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogUintIterator struct { + Event *GatewayEVMZEVMTestLogUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogUint represents a LogUint event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogUint struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogUint is a free log retrieval operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogUint(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogUintIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogUintIterator{contract: _GatewayEVMZEVMTest.contract, event: "log_uint", logs: logs, sub: sub}, nil +} + +// WatchLogUint is a free log subscription operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogUint(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogUint) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogUint) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogUint is a log parse operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogUint(log types.Log) (*GatewayEVMZEVMTestLogUint, error) { + event := new(GatewayEVMZEVMTestLogUint) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMZEVMTestLogsIterator is returned from FilterLogs and is used to iterate over the raw logs and unpacked data for Logs events raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogsIterator struct { + Event *GatewayEVMZEVMTestLogs // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMZEVMTestLogsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMZEVMTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMZEVMTestLogsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMZEVMTestLogsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMZEVMTestLogs represents a Logs event raised by the GatewayEVMZEVMTest contract. +type GatewayEVMZEVMTestLogs struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogs is a free log retrieval operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterLogs(opts *bind.FilterOpts) (*GatewayEVMZEVMTestLogsIterator, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "logs") + if err != nil { + return nil, err + } + return &GatewayEVMZEVMTestLogsIterator{contract: _GatewayEVMZEVMTest.contract, event: "logs", logs: logs, sub: sub}, nil +} + +// WatchLogs is a free log subscription operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchLogs(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestLogs) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "logs") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMZEVMTestLogs) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "logs", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogs is a log parse operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) ParseLogs(log types.Log) (*GatewayEVMZEVMTestLogs, error) { + event := new(GatewayEVMZEVMTestLogs) + if err := _GatewayEVMZEVMTest.contract.UnpackLog(event, "logs", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/gatewayzevm.sol/gatewayzevm.go b/v2/pkg/gatewayzevm.sol/gatewayzevm.go new file mode 100644 index 00000000..18a63fc8 --- /dev/null +++ b/v2/pkg/gatewayzevm.sol/gatewayzevm.go @@ -0,0 +1,1435 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package gatewayzevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// RevertContext is an auto generated low-level Go binding around an user-defined struct. +type RevertContext struct { + Origin []byte + Sender common.Address + ChainID *big.Int +} + +// ZContext is an auto generated low-level Go binding around an user-defined struct. +type ZContext struct { + Origin []byte + Sender common.Address + ChainID *big.Int +} + +// GatewayZEVMMetaData contains all meta data concerning the GatewayZEVM contract. +var GatewayZEVMMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"FUNGIBLE_MODULE_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"UPGRADE_INTERFACE_VERSION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"call\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositAndCall\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structzContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositAndCall\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structzContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositAndRevert\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structrevertContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"execute\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structzContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"executeRevert\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structrevertContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_zetaToken\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proxiableUUID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgradeToAndCall\",\"inputs\":[{\"name\":\"newImplementation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndCall\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndCall\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"zetaToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"zrc20\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"gasfee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"protocolFlatFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ERC1967InvalidImplementation\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967NonPayable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedZetaSent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GasFeeTransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientZRC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTarget\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyWZETAOrFungible\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UUPSUnauthorizedCallContext\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UUPSUnsupportedProxiableUUID\",\"inputs\":[{\"name\":\"slot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"WithdrawalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZRC20BurnFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZRC20TransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516125536100fd600039600081816117c7015281816117f001526119a001526125536000f3fe6080604052600436106101635760003560e01c80635af65967116100c0578063bcf7f32b11610074578063c4d66de811610059578063c4d66de814610458578063f2fde38b14610478578063f45346dc1461049857600080fd5b8063bcf7f32b14610418578063c39aca371461043857600080fd5b80637993c1e0116100a55780637993c1e0146103655780638da5cb5b14610385578063ad3cb1cc146103c257600080fd5b80635af6596714610330578063715018a61461035057600080fd5b80632e1a7d4d116101175780633ce4a5bc116100fc5780633ce4a5bc146102d25780634f1ef286146102fa57806352d1902d1461030d57600080fd5b80632e1a7d4d14610292578063309f5004146102b257600080fd5b806321501a951161014857806321501a951461021557806321e093b114610235578063267e75a01461027257600080fd5b80630ac7c44c146101d5578063135390f9146101f557600080fd5b366101d0576000546001600160a01b0316331480159061019757503373735b14bb79463307aacbed86daf3322b1e6226ab14155b156101ce576040517f229930b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b3480156101e157600080fd5b506101ce6101f0366004611f02565b6104b8565b34801561020157600080fd5b506101ce610210366004611f85565b610533565b34801561022157600080fd5b506101ce610230366004611ff8565b61061d565b34801561024157600080fd5b50600054610255906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027e57600080fd5b506101ce61028d366004612084565b610768565b34801561029e57600080fd5b506101ce6102ad3660046120b7565b610813565b3480156102be57600080fd5b506101ce6102cd3660046120d0565b6108ee565b3480156102de57600080fd5b5061025573735b14bb79463307aacbed86daf3322b1e6226ab81565b6101ce61030836600461216e565b6109c2565b34801561031957600080fd5b506103226109e1565b604051908152602001610269565b34801561033c57600080fd5b506101ce61034b3660046120d0565b610a10565b34801561035c57600080fd5b506101ce610ba1565b34801561037157600080fd5b506101ce6103803660046121be565b610bb5565b34801561039157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610255565b3480156103ce57600080fd5b5061040b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516102699190612249565b34801561042457600080fd5b506101ce6104333660046120d0565b610caa565b34801561044457600080fd5b506101ce6104533660046120d0565b610d44565b34801561046457600080fd5b506101ce61047336600461225c565b610ed5565b34801561048457600080fd5b506101ce61049336600461225c565b6110d8565b3480156104a457600080fd5b506101ce6104b3366004612279565b611131565b6104c061127a565b336001600160a01b03167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f8484846040516104fd939291906122db565b60405180910390a261052e60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050565b61053b61127a565b60006105478383611321565b9050336001600160a01b03167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771683868685876001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da919061230b565b6040516105eb959493929190612324565b60405180910390a25061052e60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461066a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab148061069d57506001600160a01b03831630145b156106d4576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106de84846115ee565b6000546040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b038086169263de43156e9261072f928a921690899088908890600401612415565b600060405180830381600087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b505050505050505050565b61077061127a565b61078e8373735b14bb79463307aacbed86daf3322b1e6226ab6115ee565b6000546040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015233917f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716916001600160a01b039091169060340160408051601f19818403018152908290526104fd9291889060009081908a908a9061245c565b61081b61127a565b6108398173735b14bb79463307aacbed86daf3322b1e6226ab6115ee565b6000546040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015233917f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716916001600160a01b039091169060340160408051601f19818403018152908290526108ba929186906000908190612324565b60405180910390a26108eb60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461093b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f69582bee0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906369582bee906109889089908990899088908890600401612415565b600060405180830381600087803b1580156109a257600080fd5b505af11580156109b6573d6000803e3d6000fd5b50505050505050505050565b6109ca6117bc565b6109d38261188c565b6109dd8282611894565b5050565b60006109eb611995565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610a5d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab1480610a9057506001600160a01b03831630145b15610ac7576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015610b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5391906124b1565b506040517f69582bee0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906369582bee906109889089908990899088908890600401612415565b610ba96119f7565b610bb36000611a6b565b565b610bbd61127a565b6000610bc98585611321565b9050336001600160a01b03167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771685888885896001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5c919061230b565b8989604051610c71979695949392919061245c565b60405180910390a250610ca360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610cf7576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063de43156e906109889089908990899088908890600401612415565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610d91576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab1480610dc457506001600160a01b03831630145b15610dfb576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015610e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8791906124b1565b506040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063de43156e906109889089908990899088908890600401612415565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610f205750825b905060008267ffffffffffffffff166001148015610f3d5750303b155b905081158015610f4b575080155b15610f82576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610fe35784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038616611023576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61102c33611af4565b611034611b05565b61103c611b0d565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03881617905583156110d05784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b6110e06119f7565b6001600160a01b038116611128576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6108eb81611a6b565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461117e576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811673735b14bb79463307aacbed86daf3322b1e6226ab14806111b157506001600160a01b03811630145b156111e8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152602482018490528416906347e7ef24906044016020604051808303816000875af1158015611250573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127491906124b1565b50505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016112f5576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6000806000836001600160a01b031663d9eeebed6040518163ffffffff1660e01b81526004016040805180830381865afa158015611363573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138791906124d3565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab60248201526044810182905291935091506001600160a01b038316906323b872dd906064016020604051808303816000875af115801561140c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143091906124b1565b611466576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526001600160a01b038516906323b872dd906064016020604051808303816000875af11580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f691906124b1565b61152c576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038516906342966c68906024016020604051808303816000875af115801561158c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b091906124b1565b6115e6576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b949350505050565b6000546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561165e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168291906124b1565b6116b8576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561171757600080fd5b505af115801561172b573d6000803e3d6000fd5b505050506000816001600160a01b03168360405160006040518083038185875af1925050503d806000811461177c576040519150601f19603f3d011682016040523d82523d6000602084013e611781565b606091505b505090508061052e576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061185557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118497f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15610bb3576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108eb6119f7565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156118ee575060408051601f3d908101601f191682019092526118eb9181019061230b565b60015b61192f576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b038316600482015260240161111f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461198b576040517faa1d49a40000000000000000000000000000000000000000000000000000000081526004810182905260240161111f565b61052e8383611b1d565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bb3576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33611a297f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610bb3576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161111f565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b611afc611b73565b6108eb81611bda565b610bb3611b73565b611b15611b73565b610bb3611be2565b611b2682611bea565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b6b5761052e8282611c92565b6109dd611d08565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610bb3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110e0611b73565b6112fb611b73565b806001600160a01b03163b600003611c39576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260240161111f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611caf9190612501565b600060405180830381855af49150503d8060008114611cea576040519150601f19603f3d011682016040523d82523d6000602084013e611cef565b606091505b5091509150611cff858383611d40565b95945050505050565b3415610bb3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606082611d5557611d5082611db8565b611db1565b8151158015611d6c57506001600160a01b0384163b155b15611dae576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260240161111f565b50805b9392505050565b805115611dc85780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112611e3a57600080fd5b813567ffffffffffffffff811115611e5457611e54611dfa565b604051601f19603f601f19601f8501160116810181811067ffffffffffffffff82111715611e8457611e84611dfa565b604052818152838201602001851015611e9c57600080fd5b816020850160208301376000918101602001919091529392505050565b60008083601f840112611ecb57600080fd5b50813567ffffffffffffffff811115611ee357600080fd5b602083019150836020828501011115611efb57600080fd5b9250929050565b600080600060408486031215611f1757600080fd5b833567ffffffffffffffff811115611f2e57600080fd5b611f3a86828701611e29565b935050602084013567ffffffffffffffff811115611f5757600080fd5b611f6386828701611eb9565b9497909650939450505050565b6001600160a01b03811681146108eb57600080fd5b600080600060608486031215611f9a57600080fd5b833567ffffffffffffffff811115611fb157600080fd5b611fbd86828701611e29565b935050602084013591506040840135611fd581611f70565b809150509250925092565b600060608284031215611ff257600080fd5b50919050565b60008060008060006080868803121561201057600080fd5b853567ffffffffffffffff81111561202757600080fd5b61203388828901611fe0565b95505060208601359350604086013561204b81611f70565b9250606086013567ffffffffffffffff81111561206757600080fd5b61207388828901611eb9565b969995985093965092949392505050565b60008060006040848603121561209957600080fd5b83359250602084013567ffffffffffffffff811115611f5757600080fd5b6000602082840312156120c957600080fd5b5035919050565b60008060008060008060a087890312156120e957600080fd5b863567ffffffffffffffff81111561210057600080fd5b61210c89828a01611fe0565b965050602087013561211d81611f70565b945060408701359350606087013561213481611f70565b9250608087013567ffffffffffffffff81111561215057600080fd5b61215c89828a01611eb9565b979a9699509497509295939492505050565b6000806040838503121561218157600080fd5b823561218c81611f70565b9150602083013567ffffffffffffffff8111156121a857600080fd5b6121b485828601611e29565b9150509250929050565b6000806000806000608086880312156121d657600080fd5b853567ffffffffffffffff8111156121ed57600080fd5b61203388828901611e29565b60005b838110156122145781810151838201526020016121fc565b50506000910152565b600081518084526122358160208601602086016121f9565b601f01601f19169290920160200192915050565b602081526000611db1602083018461221d565b60006020828403121561226e57600080fd5b8135611db181611f70565b60008060006060848603121561228e57600080fd5b833561229981611f70565b9250602084013591506040840135611fd581611f70565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6040815260006122ee604083018661221d565b82810360208401526123018185876122b0565b9695505050505050565b60006020828403121561231d57600080fd5b5051919050565b6001600160a01b038616815260c06020820152600061234660c083018761221d565b6040830195909552506060810192909252608082015280820360a0909101526000815260200192915050565b600081357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18336030181126123a657600080fd5b820160208101903567ffffffffffffffff8111156123c357600080fd5b8036038213156123d257600080fd5b606085526123e46060860182846122b0565b91505060208301356123f581611f70565b6001600160a01b0316602085015260409283013592909301919091525090565b6080815260006124286080830188612372565b6001600160a01b038716602084015285604084015282810360608401526124508185876122b0565b98975050505050505050565b6001600160a01b038816815260c06020820152600061247e60c083018961221d565b87604084015286606084015285608084015282810360a08401526124a38185876122b0565b9a9950505050505050505050565b6000602082840312156124c357600080fd5b81518015158114611db157600080fd5b600080604083850312156124e657600080fd5b82516124f181611f70565b6020939093015192949293505050565b600082516125138184602087016121f9565b919091019291505056fea2646970667358221220d8d50a67f6aea88515e2af6733e3b64f97273a2f0b00d518adc713b4a35c370164736f6c634300081a0033", +} + +// GatewayZEVMABI is the input ABI used to generate the binding from. +// Deprecated: Use GatewayZEVMMetaData.ABI instead. +var GatewayZEVMABI = GatewayZEVMMetaData.ABI + +// GatewayZEVMBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use GatewayZEVMMetaData.Bin instead. +var GatewayZEVMBin = GatewayZEVMMetaData.Bin + +// DeployGatewayZEVM deploys a new Ethereum contract, binding an instance of GatewayZEVM to it. +func DeployGatewayZEVM(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GatewayZEVM, error) { + parsed, err := GatewayZEVMMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(GatewayZEVMBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &GatewayZEVM{GatewayZEVMCaller: GatewayZEVMCaller{contract: contract}, GatewayZEVMTransactor: GatewayZEVMTransactor{contract: contract}, GatewayZEVMFilterer: GatewayZEVMFilterer{contract: contract}}, nil +} + +// GatewayZEVM is an auto generated Go binding around an Ethereum contract. +type GatewayZEVM struct { + GatewayZEVMCaller // Read-only binding to the contract + GatewayZEVMTransactor // Write-only binding to the contract + GatewayZEVMFilterer // Log filterer for contract events +} + +// GatewayZEVMCaller is an auto generated read-only Go binding around an Ethereum contract. +type GatewayZEVMCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayZEVMTransactor is an auto generated write-only Go binding around an Ethereum contract. +type GatewayZEVMTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayZEVMFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type GatewayZEVMFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayZEVMSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type GatewayZEVMSession struct { + Contract *GatewayZEVM // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayZEVMCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type GatewayZEVMCallerSession struct { + Contract *GatewayZEVMCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// GatewayZEVMTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type GatewayZEVMTransactorSession struct { + Contract *GatewayZEVMTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayZEVMRaw is an auto generated low-level Go binding around an Ethereum contract. +type GatewayZEVMRaw struct { + Contract *GatewayZEVM // Generic contract binding to access the raw methods on +} + +// GatewayZEVMCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type GatewayZEVMCallerRaw struct { + Contract *GatewayZEVMCaller // Generic read-only contract binding to access the raw methods on +} + +// GatewayZEVMTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type GatewayZEVMTransactorRaw struct { + Contract *GatewayZEVMTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewGatewayZEVM creates a new instance of GatewayZEVM, bound to a specific deployed contract. +func NewGatewayZEVM(address common.Address, backend bind.ContractBackend) (*GatewayZEVM, error) { + contract, err := bindGatewayZEVM(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &GatewayZEVM{GatewayZEVMCaller: GatewayZEVMCaller{contract: contract}, GatewayZEVMTransactor: GatewayZEVMTransactor{contract: contract}, GatewayZEVMFilterer: GatewayZEVMFilterer{contract: contract}}, nil +} + +// NewGatewayZEVMCaller creates a new read-only instance of GatewayZEVM, bound to a specific deployed contract. +func NewGatewayZEVMCaller(address common.Address, caller bind.ContractCaller) (*GatewayZEVMCaller, error) { + contract, err := bindGatewayZEVM(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &GatewayZEVMCaller{contract: contract}, nil +} + +// NewGatewayZEVMTransactor creates a new write-only instance of GatewayZEVM, bound to a specific deployed contract. +func NewGatewayZEVMTransactor(address common.Address, transactor bind.ContractTransactor) (*GatewayZEVMTransactor, error) { + contract, err := bindGatewayZEVM(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &GatewayZEVMTransactor{contract: contract}, nil +} + +// NewGatewayZEVMFilterer creates a new log filterer instance of GatewayZEVM, bound to a specific deployed contract. +func NewGatewayZEVMFilterer(address common.Address, filterer bind.ContractFilterer) (*GatewayZEVMFilterer, error) { + contract, err := bindGatewayZEVM(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &GatewayZEVMFilterer{contract: contract}, nil +} + +// bindGatewayZEVM binds a generic wrapper to an already deployed contract. +func bindGatewayZEVM(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := GatewayZEVMMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayZEVM *GatewayZEVMRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayZEVM.Contract.GatewayZEVMCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayZEVM *GatewayZEVMRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVM.Contract.GatewayZEVMTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayZEVM *GatewayZEVMRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayZEVM.Contract.GatewayZEVMTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayZEVM *GatewayZEVMCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayZEVM.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayZEVM *GatewayZEVMTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVM.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayZEVM *GatewayZEVMTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayZEVM.Contract.contract.Transact(opts, method, params...) +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_GatewayZEVM *GatewayZEVMCaller) FUNGIBLEMODULEADDRESS(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayZEVM.contract.Call(opts, &out, "FUNGIBLE_MODULE_ADDRESS") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_GatewayZEVM *GatewayZEVMSession) FUNGIBLEMODULEADDRESS() (common.Address, error) { + return _GatewayZEVM.Contract.FUNGIBLEMODULEADDRESS(&_GatewayZEVM.CallOpts) +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_GatewayZEVM *GatewayZEVMCallerSession) FUNGIBLEMODULEADDRESS() (common.Address, error) { + return _GatewayZEVM.Contract.FUNGIBLEMODULEADDRESS(&_GatewayZEVM.CallOpts) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayZEVM *GatewayZEVMCaller) UPGRADEINTERFACEVERSION(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _GatewayZEVM.contract.Call(opts, &out, "UPGRADE_INTERFACE_VERSION") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayZEVM *GatewayZEVMSession) UPGRADEINTERFACEVERSION() (string, error) { + return _GatewayZEVM.Contract.UPGRADEINTERFACEVERSION(&_GatewayZEVM.CallOpts) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_GatewayZEVM *GatewayZEVMCallerSession) UPGRADEINTERFACEVERSION() (string, error) { + return _GatewayZEVM.Contract.UPGRADEINTERFACEVERSION(&_GatewayZEVM.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayZEVM *GatewayZEVMCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayZEVM.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayZEVM *GatewayZEVMSession) Owner() (common.Address, error) { + return _GatewayZEVM.Contract.Owner(&_GatewayZEVM.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_GatewayZEVM *GatewayZEVMCallerSession) Owner() (common.Address, error) { + return _GatewayZEVM.Contract.Owner(&_GatewayZEVM.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayZEVM.contract.Call(opts, &out, "proxiableUUID") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMSession) ProxiableUUID() ([32]byte, error) { + return _GatewayZEVM.Contract.ProxiableUUID(&_GatewayZEVM.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMCallerSession) ProxiableUUID() ([32]byte, error) { + return _GatewayZEVM.Contract.ProxiableUUID(&_GatewayZEVM.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayZEVM *GatewayZEVMCaller) ZetaToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _GatewayZEVM.contract.Call(opts, &out, "zetaToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayZEVM *GatewayZEVMSession) ZetaToken() (common.Address, error) { + return _GatewayZEVM.Contract.ZetaToken(&_GatewayZEVM.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_GatewayZEVM *GatewayZEVMCallerSession) ZetaToken() (common.Address, error) { + return _GatewayZEVM.Contract.ZetaToken(&_GatewayZEVM.CallOpts) +} + +// Call is a paid mutator transaction binding the contract method 0x0ac7c44c. +// +// Solidity: function call(bytes receiver, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Call(opts *bind.TransactOpts, receiver []byte, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "call", receiver, message) +} + +// Call is a paid mutator transaction binding the contract method 0x0ac7c44c. +// +// Solidity: function call(bytes receiver, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMSession) Call(receiver []byte, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Call(&_GatewayZEVM.TransactOpts, receiver, message) +} + +// Call is a paid mutator transaction binding the contract method 0x0ac7c44c. +// +// Solidity: function call(bytes receiver, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Call(receiver []byte, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Call(&_GatewayZEVM.TransactOpts, receiver, message) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address zrc20, uint256 amount, address target) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Deposit(opts *bind.TransactOpts, zrc20 common.Address, amount *big.Int, target common.Address) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "deposit", zrc20, amount, target) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address zrc20, uint256 amount, address target) returns() +func (_GatewayZEVM *GatewayZEVMSession) Deposit(zrc20 common.Address, amount *big.Int, target common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Deposit(&_GatewayZEVM.TransactOpts, zrc20, amount, target) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address zrc20, uint256 amount, address target) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Deposit(zrc20 common.Address, amount *big.Int, target common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Deposit(&_GatewayZEVM.TransactOpts, zrc20, amount, target) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x21501a95. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) DepositAndCall(opts *bind.TransactOpts, context ZContext, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "depositAndCall", context, amount, target, message) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x21501a95. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMSession) DepositAndCall(context ZContext, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.DepositAndCall(&_GatewayZEVM.TransactOpts, context, amount, target, message) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0x21501a95. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) DepositAndCall(context ZContext, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.DepositAndCall(&_GatewayZEVM.TransactOpts, context, amount, target, message) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0xc39aca37. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) DepositAndCall0(opts *bind.TransactOpts, context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "depositAndCall0", context, zrc20, amount, target, message) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0xc39aca37. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMSession) DepositAndCall0(context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.DepositAndCall0(&_GatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// DepositAndCall0 is a paid mutator transaction binding the contract method 0xc39aca37. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) DepositAndCall0(context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.DepositAndCall0(&_GatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// DepositAndRevert is a paid mutator transaction binding the contract method 0x5af65967. +// +// Solidity: function depositAndRevert((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) DepositAndRevert(opts *bind.TransactOpts, context RevertContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "depositAndRevert", context, zrc20, amount, target, message) +} + +// DepositAndRevert is a paid mutator transaction binding the contract method 0x5af65967. +// +// Solidity: function depositAndRevert((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMSession) DepositAndRevert(context RevertContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.DepositAndRevert(&_GatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// DepositAndRevert is a paid mutator transaction binding the contract method 0x5af65967. +// +// Solidity: function depositAndRevert((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) DepositAndRevert(context RevertContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.DepositAndRevert(&_GatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// Execute is a paid mutator transaction binding the contract method 0xbcf7f32b. +// +// Solidity: function execute((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Execute(opts *bind.TransactOpts, context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "execute", context, zrc20, amount, target, message) +} + +// Execute is a paid mutator transaction binding the contract method 0xbcf7f32b. +// +// Solidity: function execute((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMSession) Execute(context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Execute(&_GatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// Execute is a paid mutator transaction binding the contract method 0xbcf7f32b. +// +// Solidity: function execute((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Execute(context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Execute(&_GatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x309f5004. +// +// Solidity: function executeRevert((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) ExecuteRevert(opts *bind.TransactOpts, context RevertContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "executeRevert", context, zrc20, amount, target, message) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x309f5004. +// +// Solidity: function executeRevert((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMSession) ExecuteRevert(context RevertContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.ExecuteRevert(&_GatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// ExecuteRevert is a paid mutator transaction binding the contract method 0x309f5004. +// +// Solidity: function executeRevert((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) ExecuteRevert(context RevertContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.ExecuteRevert(&_GatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address _zetaToken) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Initialize(opts *bind.TransactOpts, _zetaToken common.Address) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "initialize", _zetaToken) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address _zetaToken) returns() +func (_GatewayZEVM *GatewayZEVMSession) Initialize(_zetaToken common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Initialize(&_GatewayZEVM.TransactOpts, _zetaToken) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address _zetaToken) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Initialize(_zetaToken common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Initialize(&_GatewayZEVM.TransactOpts, _zetaToken) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayZEVM *GatewayZEVMTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayZEVM *GatewayZEVMSession) RenounceOwnership() (*types.Transaction, error) { + return _GatewayZEVM.Contract.RenounceOwnership(&_GatewayZEVM.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _GatewayZEVM.Contract.RenounceOwnership(&_GatewayZEVM.TransactOpts) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayZEVM *GatewayZEVMSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.TransferOwnership(&_GatewayZEVM.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.TransferOwnership(&_GatewayZEVM.TransactOpts, newOwner) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayZEVM *GatewayZEVMTransactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "upgradeToAndCall", newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayZEVM *GatewayZEVMSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.UpgradeToAndCall(&_GatewayZEVM.TransactOpts, newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.UpgradeToAndCall(&_GatewayZEVM.TransactOpts, newImplementation, data) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x135390f9. +// +// Solidity: function withdraw(bytes receiver, uint256 amount, address zrc20) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Withdraw(opts *bind.TransactOpts, receiver []byte, amount *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "withdraw", receiver, amount, zrc20) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x135390f9. +// +// Solidity: function withdraw(bytes receiver, uint256 amount, address zrc20) returns() +func (_GatewayZEVM *GatewayZEVMSession) Withdraw(receiver []byte, amount *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Withdraw(&_GatewayZEVM.TransactOpts, receiver, amount, zrc20) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x135390f9. +// +// Solidity: function withdraw(bytes receiver, uint256 amount, address zrc20) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Withdraw(receiver []byte, amount *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Withdraw(&_GatewayZEVM.TransactOpts, receiver, amount, zrc20) +} + +// Withdraw0 is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 amount) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Withdraw0(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "withdraw0", amount) +} + +// Withdraw0 is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 amount) returns() +func (_GatewayZEVM *GatewayZEVMSession) Withdraw0(amount *big.Int) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Withdraw0(&_GatewayZEVM.TransactOpts, amount) +} + +// Withdraw0 is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 amount) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Withdraw0(amount *big.Int) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Withdraw0(&_GatewayZEVM.TransactOpts, amount) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x267e75a0. +// +// Solidity: function withdrawAndCall(uint256 amount, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) WithdrawAndCall(opts *bind.TransactOpts, amount *big.Int, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "withdrawAndCall", amount, message) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x267e75a0. +// +// Solidity: function withdrawAndCall(uint256 amount, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMSession) WithdrawAndCall(amount *big.Int, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.WithdrawAndCall(&_GatewayZEVM.TransactOpts, amount, message) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x267e75a0. +// +// Solidity: function withdrawAndCall(uint256 amount, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) WithdrawAndCall(amount *big.Int, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.WithdrawAndCall(&_GatewayZEVM.TransactOpts, amount, message) +} + +// WithdrawAndCall0 is a paid mutator transaction binding the contract method 0x7993c1e0. +// +// Solidity: function withdrawAndCall(bytes receiver, uint256 amount, address zrc20, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) WithdrawAndCall0(opts *bind.TransactOpts, receiver []byte, amount *big.Int, zrc20 common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "withdrawAndCall0", receiver, amount, zrc20, message) +} + +// WithdrawAndCall0 is a paid mutator transaction binding the contract method 0x7993c1e0. +// +// Solidity: function withdrawAndCall(bytes receiver, uint256 amount, address zrc20, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMSession) WithdrawAndCall0(receiver []byte, amount *big.Int, zrc20 common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.WithdrawAndCall0(&_GatewayZEVM.TransactOpts, receiver, amount, zrc20, message) +} + +// WithdrawAndCall0 is a paid mutator transaction binding the contract method 0x7993c1e0. +// +// Solidity: function withdrawAndCall(bytes receiver, uint256 amount, address zrc20, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) WithdrawAndCall0(receiver []byte, amount *big.Int, zrc20 common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.WithdrawAndCall0(&_GatewayZEVM.TransactOpts, receiver, amount, zrc20, message) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVM.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_GatewayZEVM *GatewayZEVMSession) Receive() (*types.Transaction, error) { + return _GatewayZEVM.Contract.Receive(&_GatewayZEVM.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Receive() (*types.Transaction, error) { + return _GatewayZEVM.Contract.Receive(&_GatewayZEVM.TransactOpts) +} + +// GatewayZEVMCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the GatewayZEVM contract. +type GatewayZEVMCallIterator struct { + Event *GatewayZEVMCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMCall represents a Call event raised by the GatewayZEVM contract. +type GatewayZEVMCall struct { + Sender common.Address + Receiver []byte + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address) (*GatewayZEVMCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "Call", senderRule) + if err != nil { + return nil, err + } + return &GatewayZEVMCallIterator{contract: _GatewayZEVM.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayZEVMCall, sender []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "Call", senderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMCall) + if err := _GatewayZEVM.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayZEVM *GatewayZEVMFilterer) ParseCall(log types.Log) (*GatewayZEVMCall, error) { + event := new(GatewayZEVMCall) + if err := _GatewayZEVM.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the GatewayZEVM contract. +type GatewayZEVMInitializedIterator struct { + Event *GatewayZEVMInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInitialized represents a Initialized event raised by the GatewayZEVM contract. +type GatewayZEVMInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterInitialized(opts *bind.FilterOpts) (*GatewayZEVMInitializedIterator, error) { + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &GatewayZEVMInitializedIterator{contract: _GatewayZEVM.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInitialized) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInitialized) + if err := _GatewayZEVM.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_GatewayZEVM *GatewayZEVMFilterer) ParseInitialized(log types.Log) (*GatewayZEVMInitialized, error) { + event := new(GatewayZEVMInitialized) + if err := _GatewayZEVM.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the GatewayZEVM contract. +type GatewayZEVMOwnershipTransferredIterator struct { + Event *GatewayZEVMOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOwnershipTransferred represents a OwnershipTransferred event raised by the GatewayZEVM contract. +type GatewayZEVMOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*GatewayZEVMOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &GatewayZEVMOwnershipTransferredIterator{contract: _GatewayZEVM.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOwnershipTransferred) + if err := _GatewayZEVM.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_GatewayZEVM *GatewayZEVMFilterer) ParseOwnershipTransferred(log types.Log) (*GatewayZEVMOwnershipTransferred, error) { + event := new(GatewayZEVMOwnershipTransferred) + if err := _GatewayZEVM.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the GatewayZEVM contract. +type GatewayZEVMUpgradedIterator struct { + Event *GatewayZEVMUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMUpgraded represents a Upgraded event raised by the GatewayZEVM contract. +type GatewayZEVMUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*GatewayZEVMUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &GatewayZEVMUpgradedIterator{contract: _GatewayZEVM.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *GatewayZEVMUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMUpgraded) + if err := _GatewayZEVM.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GatewayZEVM *GatewayZEVMFilterer) ParseUpgraded(log types.Log) (*GatewayZEVMUpgraded, error) { + event := new(GatewayZEVMUpgraded) + if err := _GatewayZEVM.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMWithdrawalIterator is returned from FilterWithdrawal and is used to iterate over the raw logs and unpacked data for Withdrawal events raised by the GatewayZEVM contract. +type GatewayZEVMWithdrawalIterator struct { + Event *GatewayZEVMWithdrawal // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMWithdrawalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMWithdrawalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMWithdrawalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMWithdrawal represents a Withdrawal event raised by the GatewayZEVM contract. +type GatewayZEVMWithdrawal struct { + From common.Address + Zrc20 common.Address + To []byte + Value *big.Int + Gasfee *big.Int + ProtocolFlatFee *big.Int + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawal is a free log retrieval operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterWithdrawal(opts *bind.FilterOpts, from []common.Address) (*GatewayZEVMWithdrawalIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return &GatewayZEVMWithdrawalIterator{contract: _GatewayZEVM.contract, event: "Withdrawal", logs: logs, sub: sub}, nil +} + +// WatchWithdrawal is a free log subscription operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *GatewayZEVMWithdrawal, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMWithdrawal) + if err := _GatewayZEVM.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawal is a log parse operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVM *GatewayZEVMFilterer) ParseWithdrawal(log types.Log) (*GatewayZEVMWithdrawal, error) { + event := new(GatewayZEVMWithdrawal) + if err := _GatewayZEVM.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/gatewayzevm.t.sol/gatewayzevminboundtest.go b/v2/pkg/gatewayzevm.t.sol/gatewayzevminboundtest.go new file mode 100644 index 00000000..860cd68a --- /dev/null +++ b/v2/pkg/gatewayzevm.t.sol/gatewayzevminboundtest.go @@ -0,0 +1,4060 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package gatewayzevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdInvariantFuzzArtifactSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzArtifactSelector struct { + Artifact string + Selectors [][4]byte +} + +// StdInvariantFuzzInterface is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzInterface struct { + Addr common.Address + Artifacts []string +} + +// StdInvariantFuzzSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzSelector struct { + Addr common.Address + Selectors [][4]byte +} + +// GatewayZEVMInboundTestMetaData contains all meta data concerning the GatewayZEVMInboundTest contract. +var GatewayZEVMInboundTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"IS_TEST\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"failed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setUp\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzArtifactSelector[]\",\"components\":[{\"name\":\"artifact\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetInterfaces\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzInterface[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"artifacts\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"testCall\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawZETA\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawZETAFailsIfNoAllowance\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawZETAWithMessage\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawZETAWithMessageFailsIfNoAllowance\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawZRC20\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawZRC20FailsIfNoAllowance\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawZRC20WithMessage\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawZRC20WithMessageFailsIfNoAllowance\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"zrc20\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"gasfee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"protocolFlatFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_address\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes32\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_int\",\"inputs\":[{\"name\":\"\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_address\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes32\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_string\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_string\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_uint\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"logs\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedZetaSent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GasFeeTransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientZRC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTarget\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyWZETAOrFungible\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZRC20BurnFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZRC20TransferFailed\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061cbfd8061003c6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806385226c81116100d8578063ba414fa61161008c578063ea37902f11610066578063ea37902f1461027b578063fa7626d414610283578063fbc611c81461029057600080fd5b8063ba414fa614610253578063dde7e9671461026b578063e20c9f711461027357600080fd5b8063b0464fdc116100bd578063b0464fdc1461023b578063b5508aa914610243578063b7f058361461024b57600080fd5b806385226c8114610211578063916a17c61461022657600080fd5b80632ade38801161013a5780635006fd80116101145780635006fd80146101ec5780635d72228f146101f457806366d9a9a0146101fc57600080fd5b80632ade3880146101c75780633e5e3c23146101dc5780633f7286f4146101e457600080fd5b806318a4cfdc1161016b57806318a4cfdc146101995780631e63d2b9146101a15780631ed7831c146101a957600080fd5b80630a9254e4146101875780631238212c14610191575b600080fd5b61018f610298565b005b61018f610cfa565b61018f6110c3565b61018f611508565b6101b16118e4565b6040516101be91906178d1565b60405180910390f35b6101cf611946565b6040516101be919061796d565b6101b1611a88565b6101b1611ae8565b61018f611b48565b61018f611fda565b610204612329565b6040516101be9190617ad3565b6102196124ab565b6040516101be9190617b71565b61022e61257b565b6040516101be9190617be8565b61022e612676565b610219612771565b61018f612841565b61025b612a76565b60405190151581526020016101be565b61018f612b4a565b6101b1612f68565b61018f612fc8565b601f5461025b9060ff1681565b61018f61336f565b602580547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602680549091166112341790556040516102de906177e4565b604051809103906000f0801580156102fa573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169182179055604080518082018252600f81527f476174657761795a45564d2e736f6c00000000000000000000000000000000006020820152905160248101929092526103d39160440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de8000000000000000000000000000000000000000000000000000000001790526136d3565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b039384168102919091179182905560208054919092049092167fffffffffffffffffffffffff000000000000000000000000000000000000000090921682178155604080517f3ce4a5bc0000000000000000000000000000000000000000000000000000000081529051633ce4a5bc926004808401939192918290030181865afa158015610495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b99190617c7f565b602780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040516104fd906177f1565b604051809103906000f080158015610519573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161781556027546040517f06447d5600000000000000000000000000000000000000000000000000000000815292166004830152737109709ecfa91a80626ff3989d68f67f5b1dd12d916306447d569101600060405180830381600087803b1580156105b557600080fd5b505af11580156105c9573d6000803e3d6000fd5b5050505060008060006040516105de906177fe565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801561061a573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081179091556020546040516012936001938493600093919216906106709061780b565b61067f96959493929190617ca8565b604051809103906000f08015801561069b573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081179091556023546040517fee2815ba0000000000000000000000000000000000000000000000000000000081526001600482015260248101929092529091169063ee2815ba90604401600060405180830381600087803b15801561073257600080fd5b505af1158015610746573d6000803e3d6000fd5b50506023546040517fa7cb050700000000000000000000000000000000000000000000000000000000815260016004820181905260248201526001600160a01b03909116925063a7cb05079150604401600060405180830381600087803b1580156107b057600080fd5b505af11580156107c4573d6000803e3d6000fd5b50506027546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152633b9aca006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b15801561084457600080fd5b505af1158015610858573d6000803e3d6000fd5b50505050602260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0600a6040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600a60248201529116935063095ea7b3925060440190506020604051808303816000875af1158015610935573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109599190617d9d565b506021546025546040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a060248201529116906347e7ef24906044016020604051808303816000875af11580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190617d9d565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a4d57600080fd5b505af1158015610a61573d6000803e3d6000fd5b50506025546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b158015610ad757600080fd5b505af1158015610aeb573d6000803e3d6000fd5b50506021546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a060248201529116925063095ea7b391506044016020604051808303816000875af1158015610b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b839190617d9d565b50602260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0600a6040518263ffffffff1660e01b81526004016000604051808303818588803b158015610bd557600080fd5b505af1158015610be9573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600a60248201529116935063095ea7b3925060440190506020604051808303816000875af1158015610c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c819190617d9d565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ce057600080fd5b505af1158015610cf4573d6000803e3d6000fd5b50505050565b6021546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015610d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6f9190617dbf565b6025546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015610de457600080fd5b505af1158015610df8573d6000803e3d6000fd5b50506021546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600060248201529116925063095ea7b391506044016020604051808303816000875af1158015610e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8e9190617d9d565b506026546040516001600160a01b03909116602482015260009060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae7600000000000000000000000000000000000000000000000000000000017905280517ff48448140000000000000000000000000000000000000000000000000000000081529051919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f48448149160048082019260009290919082900301818387803b158015610f6a57600080fd5b505af1158015610f7e573d6000803e3d6000fd5b50506020805460265460405160609190911b6bffffffffffffffffffffffff1916928101929092526001600160a01b03169250637993c1e0915060340160408051601f19818403018152908290526021547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1683526110129288916001600160a01b0316908790600401617dd8565b600060405180830381600087803b15801561102c57600080fd5b505af1158015611040573d6000803e3d6000fd5b50506021546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015611093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b79190617dbf565b9050610cf483826136f2565b6022546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015611114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111389190617dbf565b6022546020546040516370a0823160e01b81526001600160a01b0391821660048201529293506000929116906370a0823190602401602060405180830381865afa15801561118a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ae9190617dbf565b6027546026546040516001600160a01b03918216602482015292935016319060009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae760000000000000000000000000000000000000000000000000000000001790525490517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505060255460225460275460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b0392831694507f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716935091169060340160408051601f198184030181529082905261135092918a9060009081908990617e12565b60405180910390a26020546040517f267e75a00000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063267e75a0906113a39088908590600401617e65565b600060405180830381600087803b1580156113bd57600080fd5b505af11580156113d1573d6000803e3d6000fd5b50506022546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015611424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114489190617dbf565b905061145e611458600187617ead565b826136f2565b6022546020546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d39190617dbf565b90506114df85826136f2565b6114ff6114ed856001617ec0565b6027546001600160a01b0316316136f2565b50505050505050565b6021546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015611559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157d9190617dbf565b6026546040516001600160a01b03909116602482015290915060009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae760000000000000000000000000000000000000000000000000000000001790525490517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561168357600080fd5b505af1158015611697573d6000803e3d6000fd5b505060255460215460265460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b0392831694507f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc577169350911690603401604051602081830303815290604052866000602160009054906101000a90046001600160a01b03166001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561175a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177e9190617dbf565b8760405161179196959493929190617e12565b60405180910390a2602080546026546040516001600160a01b0392831693637993c1e0936117d99316910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152908290526021547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1683526118309288916001600160a01b0316908790600401617dd8565b600060405180830381600087803b15801561184a57600080fd5b505af115801561185e573d6000803e3d6000fd5b50506021546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156118b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d59190617dbf565b9050610cf46114588585617ead565b6060601680548060200260200160405190810160405280929190818152602001828054801561193c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161191e575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015611a7f57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015611a685783829060005260206000200180546119db90617ed3565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0790617ed3565b8015611a545780601f10611a2957610100808354040283529160200191611a54565b820191906000526020600020905b815481529060010190602001808311611a3757829003601f168201915b5050505050815260200190600101906119bc565b50505050815250508152602001906001019061196a565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561193c576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161191e575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561193c576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161191e575050505050905090565b6022546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015611b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbd9190617dbf565b6022546020546040516370a0823160e01b81526001600160a01b0391821660048201529293506000929116906370a0823190602401602060405180830381865afa158015611c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c339190617dbf565b6027546026546040516001600160a01b03918216602482015292935016319060009060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae7600000000000000000000000000000000000000000000000000000000017905260255490517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611d2457600080fd5b505af1158015611d38573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600060248201529116925063095ea7b391506044016020604051808303816000875af1158015611daa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dce9190617d9d565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663f48448146040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611e2d57600080fd5b505af1158015611e41573d6000803e3d6000fd5b50506020546040517f267e75a00000000000000000000000000000000000000000000000000000000081526001600160a01b03909116925063267e75a09150611e909088908590600401617e65565b600060405180830381600087803b158015611eaa57600080fd5b505af1158015611ebe573d6000803e3d6000fd5b50506022546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f359190617dbf565b9050611f4185826136f2565b6022546020546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015611f92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb69190617dbf565b9050611fc285826136f2565b6027546114ff9085906001600160a01b0316316136f2565b6021546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa15801561202b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204f9190617dbf565b6025546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156120c457600080fd5b505af11580156120d8573d6000803e3d6000fd5b50506021546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600060248201529116925063095ea7b391506044016020604051808303816000875af115801561214a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216e9190617d9d565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663f48448146040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156121cd57600080fd5b505af11580156121e1573d6000803e3d6000fd5b50506020805460265460405160609190911b6bffffffffffffffffffffffff1916928101929092526001600160a01b0316925063135390f9915060340160408051601f19818403018152908290526021547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1683526122739287916001600160a01b031690600401617f20565b600060405180830381600087803b15801561228d57600080fd5b505af11580156122a1573d6000803e3d6000fd5b50506021546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156122f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123189190617dbf565b905061232482826136f2565b505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015611a7f578382906000526020600020906002020160405180604001604052908160008201805461238090617ed3565b80601f01602080910402602001604051908101604052809291908181526020018280546123ac90617ed3565b80156123f95780601f106123ce576101008083540402835291602001916123f9565b820191906000526020600020905b8154815290600101906020018083116123dc57829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561249357602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116124405790505b5050505050815250508152602001906001019061234d565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015611a7f5783829060005260206000200180546124ee90617ed3565b80601f016020809104026020016040519081016040528092919081815260200182805461251a90617ed3565b80156125675780601f1061253c57610100808354040283529160200191612567565b820191906000526020600020905b81548152906001019060200180831161254a57829003601f168201915b5050505050815260200190600101906124cf565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015611a7f5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561265e57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161260b5790505b5050505050815250508152602001906001019061259f565b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015611a7f5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561275957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116127065790505b5050505050815250508152602001906001019061269a565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015611a7f5783829060005260206000200180546127b490617ed3565b80601f01602080910402602001604051908101604052809291908181526020018280546127e090617ed3565b801561282d5780601f106128025761010080835404028352916020019161282d565b820191906000526020600020905b81548152906001019060200180831161281057829003601f168201915b505050505081526020019060010190612795565b6026546040516001600160a01b03909116602482015260009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae760000000000000000000000000000000000000000000000000000000001790525490517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561294457600080fd5b505af1158015612958573d6000803e3d6000fd5b505060255460265460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b0390911692507f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f915060340160408051601f19818403018152908290526129cc918590617f52565b60405180910390a2602080546026546040516001600160a01b0392831693630ac7c44c93612a149316910160609190911b6bffffffffffffffffffffffff1916815260140190565b604051602081830303815290604052836040518363ffffffff1660e01b8152600401612a41929190617f52565b600060405180830381600087803b158015612a5b57600080fd5b505af1158015612a6f573d6000803e3d6000fd5b5050505050565b60085460009060ff1615612a8e575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015612b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b439190617dbf565b1415905090565b6022546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015612b9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbf9190617dbf565b6022546020546040516370a0823160e01b81526001600160a01b0391821660048201529293506000929116906370a0823190602401602060405180830381865afa158015612c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c359190617dbf565b6027546025546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152929350163190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612cb057600080fd5b505af1158015612cc4573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600060248201529116925063095ea7b391506044016020604051808303816000875af1158015612d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5a9190617d9d565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663f48448146040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612db957600080fd5b505af1158015612dcd573d6000803e3d6000fd5b50506020546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018890526001600160a01b039091169250632e1a7d4d9150602401600060405180830381600087803b158015612e3057600080fd5b505af1158015612e44573d6000803e3d6000fd5b50506022546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015612e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebb9190617dbf565b9050612ec784826136f2565b6022546020546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015612f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f3c9190617dbf565b9050612f4884826136f2565b602754612f609084906001600160a01b0316316136f2565b505050505050565b6060601580548060200260200160405190810160405280929190818152602001828054801561193c576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161191e575050505050905090565b6022546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015613019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061303d9190617dbf565b6022546020546040516370a0823160e01b81526001600160a01b0391821660048201529293506000929116906370a0823190602401602060405180830381865afa15801561308f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b39190617dbf565b6027546020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039182166084820152929350163190737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561314a57600080fd5b505af115801561315e573d6000803e3d6000fd5b505060255460225460275460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b0392831694507f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716935091169060340160408051601f19818403018152908290526131de929189906000908190617f77565b60405180910390a26020546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561324557600080fd5b505af1158015613259573d6000803e3d6000fd5b50506022546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156132ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d09190617dbf565b90506132e0611458600186617ead565b6022546020546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015613331573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133559190617dbf565b905061336184826136f2565b612f606114ed846001617ec0565b6021546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa1580156133c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133e49190617dbf565b6020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561347557600080fd5b505af1158015613489573d6000803e3d6000fd5b505060255460215460265460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b0392831694507f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc577169350911690603401604051602081830303815290604052856000602160009054906101000a90046001600160a01b03166001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561354c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135709190617dbf565b604051613581959493929190617f77565b60405180910390a2602080546026546040516001600160a01b039283169363135390f9936135c99316910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152908290526021547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16835261361f926001916001600160a01b031690600401617f20565b600060405180830381600087803b15801561363957600080fd5b505af115801561364d573d6000803e3d6000fd5b50506021546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156136a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c49190617dbf565b90506123246114588484617ead565b60006136dd617818565b6136e8848483613771565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b15801561375d57600080fd5b505afa158015612f60573d6000803e3d6000fd5b60008061377e85846137ec565b90506137e16040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f787900000081525082866040516020016137cc929190617fc5565b604051602081830303815290604052856137f8565b9150505b9392505050565b60006137e58383613826565b60c0810151516000901561381c5761381584848460c00151613841565b90506137e5565b61381584846139e7565b60006138328383613ad2565b6137e5838360200151846137f8565b60008061384c613ae2565b9050600061385a8683613bb5565b90506000613871826060015183602001518561405b565b905060006138818383898961426d565b9050600061388e826150ea565b602081015181519192509060030b15613901578982604001516040516020016138b8929190617fe7565b60408051601f19818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526138f891600401618068565b60405180910390fd5b60006139446040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a2000000000000000000000008152508360016152b9565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d90613997908490600401618068565b602060405180830381865afa1580156139b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139d89190617c7f565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590613a3c908790600401618068565b600060405180830381865afa158015613a59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613a819190810190618163565b90506000613aaf8285604051602001613a9b929190618198565b6040516020818303038152906040526154b9565b90506001600160a01b0381166136e85784846040516020016138b89291906181c7565b613ade828260006154cc565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c90613b69908490600401618272565b600060405180830381865afa158015613b86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613bae91908101906182b9565b9250505090565b613be76040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d9050613c326040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b613c3b856155cf565b60208201526000613c4b866159b4565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015613c8d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613cb591908101906182b9565b86838560200151604051602001613ccf9493929190618302565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190613d27908590600401618068565b600060405180830381865afa158015613d44573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613d6c91908101906182b9565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f690613db4908490600401618406565b602060405180830381865afa158015613dd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df59190617d9d565b613e0a57816040516020016138b89190618458565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890613e4f9084906004016184ea565b600060405180830381865afa158015613e6c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e9491908101906182b9565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f690613edb90849060040161853c565b602060405180830381865afa158015613ef8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1c9190617d9d565b15613fb1576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890613f6690849060040161853c565b600060405180830381865afa158015613f83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613fab91908101906182b9565b60408501525b846001600160a01b03166349c4fac8828660000151604051602001613fd6919061858e565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401614002929190617f52565b600060405180830381865afa15801561401f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261404791908101906182b9565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816140775790505090506040518060400160405280600481526020017f6772657000000000000000000000000000000000000000000000000000000000815250816000815181106140d7576140d76185fa565b60200260200101819052506040518060400160405280600381526020017f2d726c00000000000000000000000000000000000000000000000000000000008152508160018151811061412b5761412b6185fa565b6020026020010181905250846040516020016141479190618629565b60405160208183030381529060405281600281518110614169576141696185fa565b6020026020010181905250826040516020016141859190618695565b604051602081830303815290604052816003815181106141a7576141a76185fa565b602002602001018190525060006141bd826150ea565b602080820151604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000818501908152825180840184526000808252908601528251808401909352905182529281019290925291925061424e9060408051808201825260008082526020918201528151808301909252845182528085019082015290615c37565b61426357856040516020016138b891906186d6565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d90156142bd565b511590565b61443157826020015115614379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a4016138f8565b8260c0015115614431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a4016138f8565b6040805160ff8082526120008201909252600091816020015b606081526020019060019003908161444a57905050905060006040518060400160405280600381526020017f6e707800000000000000000000000000000000000000000000000000000000008152508282806144a590618767565b935060ff16815181106144ba576144ba6185fa565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e370000000000000000000000000000000000000081525060405160200161450b9190618786565b60405160208183030381529060405282828061452690618767565b935060ff168151811061453b5761453b6185fa565b60200260200101819052506040518060400160405280600681526020017f6465706c6f79000000000000000000000000000000000000000000000000000081525082828061458890618767565b935060ff168151811061459d5761459d6185fa565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d650000000000000000000000000000000000008152508282806145ea90618767565b935060ff16815181106145ff576145ff6185fa565b6020026020010181905250876020015182828061461b90618767565b935060ff1681518110614630576146306185fa565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163745061746800000000000000000000000000000000000081525082828061467d90618767565b935060ff1681518110614692576146926185fa565b6020908102919091010152875182826146aa81618767565b935060ff16815181106146bf576146bf6185fa565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e4964000000000000000000000000000000000000000000000081525082828061470c90618767565b935060ff1681518110614721576147216185fa565b602002602001018190525061473546615c98565b828261474081618767565b935060ff1681518110614755576147556185fa565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c6500000000000000000000000000000000008152508282806147a290618767565b935060ff16815181106147b7576147b76185fa565b6020026020010181905250868282806147cf90618767565b935060ff16815181106147e4576147e46185fa565b602090810291909101015285511561490b5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f646500000000000000000000006020820152828261483581618767565b935060ff168151811061484a5761484a6185fa565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d9061489a908990600401618068565b600060405180830381865afa1580156148b7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526148df91908101906182b9565b82826148ea81618767565b935060ff16815181106148ff576148ff6185fa565b60200260200101819052505b8460200151156149db5760408051808201909152601281527f2d2d766572696679536f75726365436f646500000000000000000000000000006020820152828261495481618767565b935060ff1681518110614969576149696185fa565b60200260200101819052506040518060400160405280600581526020017f66616c73650000000000000000000000000000000000000000000000000000008152508282806149b690618767565b935060ff16815181106149cb576149cb6185fa565b6020026020010181905250614ba2565b614a136142b88660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b614aa65760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614a5681618767565b935060ff1681518110614a6b57614a6b6185fa565b60200260200101819052508460a00151604051602001614a8b9190618629565b6040516020818303038152906040528282806149b690618767565b8460c00151158015614ae9575060408089015181518083018352600080825260209182015282518084019093528151835290810190820152614ae790511590565b155b15614ba25760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614b2d81618767565b935060ff1681518110614b4257614b426185fa565b6020026020010181905250614b5688615d38565b604051602001614b669190618629565b604051602081830303815290604052828280614b8190618767565b935060ff1681518110614b9657614b966185fa565b60200260200101819052505b60408086015181518083018352600080825260209182015282518084019093528151835290810190820152614bd690511590565b614c6b5760408051808201909152600b81527f2d2d72656c61796572496400000000000000000000000000000000000000000060208201528282614c1981618767565b935060ff1681518110614c2e57614c2e6185fa565b60200260200101819052508460400151828280614c4a90618767565b935060ff1681518110614c5f57614c5f6185fa565b60200260200101819052505b606085015115614d8c5760408051808201909152600681527f2d2d73616c74000000000000000000000000000000000000000000000000000060208201528282614cb481618767565b935060ff1681518110614cc957614cc96185fa565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015614d38573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614d6091908101906182b9565b8282614d6b81618767565b935060ff1681518110614d8057614d806185fa565b60200260200101819052505b60e08501515115614e335760408051808201909152600a81527f2d2d6761734c696d69740000000000000000000000000000000000000000000060208201528282614dd681618767565b935060ff1681518110614deb57614deb6185fa565b6020026020010181905250614e078560e0015160000151615c98565b8282614e1281618767565b935060ff1681518110614e2757614e276185fa565b60200260200101819052505b60e08501516020015115614edd5760408051808201909152600a81527f2d2d67617350726963650000000000000000000000000000000000000000000060208201528282614e8081618767565b935060ff1681518110614e9557614e956185fa565b6020026020010181905250614eb18560e0015160200151615c98565b8282614ebc81618767565b935060ff1681518110614ed157614ed16185fa565b60200260200101819052505b60e08501516040015115614f875760408051808201909152600e81527f2d2d6d617846656550657247617300000000000000000000000000000000000060208201528282614f2a81618767565b935060ff1681518110614f3f57614f3f6185fa565b6020026020010181905250614f5b8560e0015160400151615c98565b8282614f6681618767565b935060ff1681518110614f7b57614f7b6185fa565b60200260200101819052505b60e085015160600151156150315760408051808201909152601681527f2d2d6d61785072696f726974794665655065724761730000000000000000000060208201528282614fd481618767565b935060ff1681518110614fe957614fe96185fa565b60200260200101819052506150058560e0015160600151615c98565b828261501081618767565b935060ff1681518110615025576150256185fa565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561504f5761504f61807b565b60405190808252806020026020018201604052801561508257816020015b606081526020019060019003908161506d5790505b50905060005b8260ff168160ff1610156150db57838160ff16815181106150ab576150ab6185fa565b6020026020010151828260ff16815181106150c8576150c86185fa565b6020908102919091010152600101615088565b5093505050505b949350505050565b6151116040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c91615197918691016187f1565b600060405180830381865afa1580156151b4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526151dc91908101906182b9565b905060006151ea8683616827565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b815260040161521a9190617b71565b6000604051808303816000875af1158015615239573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526152619190810190618838565b805190915060030b1580159061527a5750602081015151155b80156152895750604081015151155b1561426357816000815181106152a1576152a16185fa565b60200260200101516040516020016138b891906188ee565b606060006152ee8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925286518252808701908201529091506153259082905b9061697c565b156154825760006153a28261539c846153966153688a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b906169a3565b90616a05565b604080518082018252600181527f0a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061540690829061697c565b1561547057604080518082018252600181527f0a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261546d905b8290616a8a565b90505b61547981616ab0565b925050506137e5565b821561549b5784846040516020016138b8929190618ada565b50506040805160208101909152600081526137e5565b509392505050565b6000808251602084016000f09392505050565b8160a00151156154db57505050565b60006154e8848484616b19565b905060006154f5826150ea565b602081015181519192509060030b1580156155915750604080518082018252600781527f5355434345535300000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526155919060408051808201825260008082526020918201528151808301909252845182528085019082015261531f565b1561559e57505050505050565b604082015151156155be5781604001516040516020016138b89190618b81565b806040516020016138b89190618bdf565b606060006156048360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615669905b8290615c37565b156156d857604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526137e5906156d39083906170b4565b616ab0565b604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261573a905b829061713e565b60010361580757604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526157a090615466565b50604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526137e5906156d3905b8390616a8a565b604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261586690615662565b1561599d57604080518082018252600181527f2f000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201819052845180860190955292518452830152906158ce9083906171d8565b9050600081600183516158e19190617ead565b815181106158f1576158f16185fa565b602002602001015190506159946156d36159676040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528551825280860190820152906170b4565b95945050505050565b826040516020016138b89190618c4a565b50919050565b606060006159e98360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615a4b90615662565b15615a59576137e581616ab0565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615ab890615733565b600103615b2257604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526137e5906156d390615800565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615b8190615662565b1561599d57604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290615be99083906171d8565b9050600181511115615c25578060028251615c049190617ead565b81518110615c1457615c146185fa565b602002602001015192505050919050565b50826040516020016138b89190618c4a565b805182516000911115615c4c575060006136ec565b81518351602085015160009291615c6291617ec0565b615c6c9190617ead565b905082602001518103615c835760019150506136ec565b82516020840151819020912014905092915050565b60606000615ca58361727d565b600101905060008167ffffffffffffffff811115615cc557615cc561807b565b6040519080825280601f01601f191660200182016040528015615cef576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084615cf957509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091615dc4905b829061735f565b15615e0457505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e7365000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615e6390615dbd565b15615ea357505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d4954000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615f0290615dbd565b15615f4257505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c79000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615fa190615dbd565b806160065750604080518082018252601081527f47504c2d322e302d6f722d6c61746572000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261600690615dbd565b1561604657505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526160a590615dbd565b8061610a5750604080518082018252601081527f47504c2d332e302d6f722d6c61746572000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261610a90615dbd565b1561614a57505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526161a990615dbd565b8061620e5750604080518082018252601181527f4c47504c2d322e312d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261620e90615dbd565b1561624e57505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526162ad90615dbd565b806163125750604080518082018252601181527f4c47504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261631290615dbd565b1561635257505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c617573650000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526163b190615dbd565b156163f157505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261645090615dbd565b1561649057505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e3000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526164ef90615dbd565b1561652f57505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261658e90615dbd565b156165ce57505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261662d90615dbd565b1561666d57505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526166cc90615dbd565b806167315750604080518082018252601181527f4147504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261673190615dbd565b1561677157505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e31000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526167d090615dbd565b1561681057505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b604080840151845191516138b89290602001618d28565b60608060005b84518110156168b25781858281518110616849576168496185fa565b6020026020010151604051602001616862929190618198565b6040516020818303038152906040529150600185516168819190617ead565b81146168aa57816040516020016168989190618e91565b60405160208183030381529060405291505b60010161682d565b5060408051600380825260808201909252600091816020015b60608152602001906001900390816168cb57905050905083816000815181106168f6576168f66185fa565b60200260200101819052506040518060400160405280600281526020017f2d630000000000000000000000000000000000000000000000000000000000008152508160018151811061694a5761694a6185fa565b60200260200101819052508181600281518110616969576169696185fa565b6020908102919091010152949350505050565b602080830151835183519284015160009361699a9291849190617373565b14159392505050565b604080518082019091526000808252602082015260006169d58460000151856020015185600001518660200151617484565b90508360200151816169e79190617ead565b845185906169f6908390617ead565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015616a2a5750816136ec565b6020808301519084015160019114616a515750815160208481015190840151829020919020145b8015616a8257825184518590616a68908390617ead565b9052508251602085018051616a7e908390617ec0565b9052505b509192915050565b6040805180820190915260008082526020820152616aa98383836175a4565b5092915050565b60606000826000015167ffffffffffffffff811115616ad157616ad161807b565b6040519080825280601f01601f191660200182016040528015616afb576020820181803683370190505b5090506000602082019050616aa9818560200151866000015161764f565b60606000616b25613ae2565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081616b4257905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280616b9d90618767565b935060ff1681518110616bb257616bb26185fa565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e3300000000000000000000000000000000000000000000000000815250604051602001616c039190618ed2565b604051602081830303815290604052828280616c1e90618767565b935060ff1681518110616c3357616c336185fa565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280616c8090618767565b935060ff1681518110616c9557616c956185fa565b602002602001018190525082604051602001616cb19190618695565b604051602081830303815290604052828280616ccc90618767565b935060ff1681518110616ce157616ce16185fa565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280616d2e90618767565b935060ff1681518110616d4357616d436185fa565b6020026020010181905250616d5887846176c9565b8282616d6381618767565b935060ff1681518110616d7857616d786185fa565b602090810291909101015285515115616e245760408051808201909152600b81527f2d2d7265666572656e636500000000000000000000000000000000000000000060208201528282616dca81618767565b935060ff1681518110616ddf57616ddf6185fa565b6020026020010181905250616df88660000151846176c9565b8282616e0381618767565b935060ff1681518110616e1857616e186185fa565b60200260200101819052505b856080015115616e925760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282616e6d81618767565b935060ff1681518110616e8257616e826185fa565b6020026020010181905250616ef8565b8415616ef85760408051808201909152601281527f2d2d726571756972655265666572656e6365000000000000000000000000000060208201528282616ed781618767565b935060ff1681518110616eec57616eec6185fa565b60200260200101819052505b60408601515115616f945760408051808201909152600d81527f2d2d756e73616665416c6c6f770000000000000000000000000000000000000060208201528282616f4281618767565b935060ff1681518110616f5757616f576185fa565b60200260200101819052508560400151828280616f7390618767565b935060ff1681518110616f8857616f886185fa565b60200260200101819052505b856060015115616ffe5760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d657300000000000000000000000060208201528282616fdd81618767565b935060ff1681518110616ff257616ff26185fa565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561701c5761701c61807b565b60405190808252806020026020018201604052801561704f57816020015b606081526020019060019003908161703a5790505b50905060005b8260ff168160ff1610156170a857838160ff1681518110617078576170786185fa565b6020026020010151828260ff1681518110617095576170956185fa565b6020908102919091010152600101617055565b50979650505050505050565b60408051808201909152600080825260208201528151835110156170d95750816136ec565b815183516020850151600092916170ef91617ec0565b6170f99190617ead565b6020840151909150600190821461711a575082516020840151819020908220145b801561713557835185518690617131908390617ead565b9052505b50929392505050565b60008082600001516171628560000151866020015186600001518760200151617484565b61716c9190617ec0565b90505b835160208501516171809190617ec0565b8111616aa9578161719081618f17565b92505082600001516171c78560200151836171ab9190617ead565b86516171b79190617ead565b8386600001518760200151617484565b6171d19190617ec0565b905061716f565b606060006171e6848461713e565b6171f1906001617ec0565b67ffffffffffffffff8111156172095761720961807b565b60405190808252806020026020018201604052801561723c57816020015b60608152602001906001900390816172275790505b50905060005b81518110156154b1576172586156d38686616a8a565b82828151811061726a5761726a6185fa565b6020908102919091010152600101617242565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106172c6577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106172f2576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061731057662386f26fc10000830492506010015b6305f5e1008310617328576305f5e100830492506008015b612710831061733c57612710830492506004015b6064831061734e576064830492506002015b600a83106136ec5760010192915050565b600061736b8383617709565b159392505050565b60008085841161747a576020841161742657600084156173be57600161739a866020617ead565b6173a5906008618f31565b6173b090600261902f565b6173ba9190617ead565b1990505b83518116856173cd8989617ec0565b6173d79190617ead565b805190935082165b818114617411578784116173f957879450505050506150e2565b836174038161903b565b9450508284511690506173df565b61741b8785617ec0565b9450505050506150e2565b8383206174338588617ead565b61743d9087617ec0565b91505b858210617478578482208082036174655761745b8684617ec0565b93505050506150e2565b617470600184617ead565b925050617440565b505b5092949350505050565b6000838186851161758f576020851161753e57600085156174d05760016174ac876020617ead565b6174b7906008618f31565b6174c290600261902f565b6174cc9190617ead565b1990505b845181166000876174e18b8b617ec0565b6174eb9190617ead565b855190915083165b828114617530578186106175185761750b8b8b617ec0565b96505050505050506150e2565b8561752281618f17565b9650508386511690506174f3565b8596505050505050506150e2565b508383206000905b6175508689617ead565b821161758d5785832080820361756c57839450505050506150e2565b617577600185617ec0565b935050818061758590618f17565b925050617546565b505b6175998787617ec0565b979650505050505050565b604080518082019091526000808252602082015260006175d68560000151866020015186600001518760200151617484565b6020808701805191860191909152519091506175f29082617ead565b8352845160208601516176059190617ec0565b81036176145760008552617646565b835183516176229190617ec0565b85518690617631908390617ead565b90525083516176409082617ec0565b60208601525b50909392505050565b602081106176875781518352617666602084617ec0565b9250617673602083617ec0565b9150617680602082617ead565b905061764f565b60001981156176b657600161769d836020617ead565b6176a99061010061902f565b6176b39190617ead565b90505b9151835183169219169190911790915250565b606060006176d78484613bb5565b80516020808301516040519394506176f193909101619052565b60405160208183030381529060405291505092915050565b815181516000919081111561771c575081515b6020808501519084015160005b838110156177d557825182518082146177a557600019602087101561778457600184617756896020617ead565b6177609190617ec0565b61776b906008618f31565b61777690600261902f565b6177809190617ead565b1990505b81811683821681810391146177a25797506136ec9650505050505050565b50505b6177b0602086617ec0565b94506177bd602085617ec0565b935050506020816177ce9190617ec0565b9050617729565b508451865161426391906190aa565b610b67806190cb83390190565b61053f80619c3283390190565b61106f8061a17183390190565b6119e88061b1e083390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161785b617860565b905290565b6040518061010001604052806000151581526020016000151581526020016060815260200160008019168152602001606081526020016060815260200160001515815260200161785b6040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b818110156179125783516001600160a01b03168352602093840193909201916001016178eb565b509095945050505050565b60005b83811015617938578181015183820152602001617920565b50506000910152565b6000815180845261795981602086016020860161791d565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617a69577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015617a4f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352617a39848651617941565b60209586019590945092909201916001016179ff565b509197505050602094850194929092019150600101617995565b50929695505050505050565b600081518084526020840193506020830160005b82811015617ac95781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101617a89565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617a69577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752617b3f6040880182617941565b9050602082015191508681036020880152617b5a8183617a75565b965050506020938401939190910190600101617afb565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617a69577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452617bd3858351617941565b94506020938401939190910190600101617b99565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617a69577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b0381511686526020810151905060406020870152617c696040870182617a75565b9550506020938401939190910190600101617c10565b600060208284031215617c9157600080fd5b81516001600160a01b03811681146137e557600080fd5b610100815260056101008201527f544f4b454e000000000000000000000000000000000000000000000000000000610120820152610140602082015260036101408201527f544b4e000000000000000000000000000000000000000000000000000000000061016082015260006101808201905060ff8816604083015286606083015260038610617d62577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8560808301528460a0830152617d8360c08301856001600160a01b03169052565b6001600160a01b03831660e0830152979650505050505050565b600060208284031215617daf57600080fd5b815180151581146137e557600080fd5b600060208284031215617dd157600080fd5b5051919050565b608081526000617deb6080830187617941565b8560208401526001600160a01b038516604084015282810360608401526175998185617941565b6001600160a01b038716815260c060208201526000617e3460c0830188617941565b86604084015285606084015284608084015282810360a0840152617e588185617941565b9998505050505050505050565b8281526040602082015260006150e26040830184617941565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156136ec576136ec617e7e565b808201808211156136ec576136ec617e7e565b600181811c90821680617ee757607f821691505b6020821081036159ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b606081526000617f336060830186617941565b90508360208301526001600160a01b0383166040830152949350505050565b604081526000617f656040830185617941565b82810360208401526137e18185617941565b6001600160a01b038616815260c060208201526000617f9960c0830187617941565b6040830195909552506060810192909252608082015280820360a0909101526000815260200192915050565b6001600160a01b03831681526040602082015260006150e26040830184617941565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161801f81601a85016020880161791d565b7f3a20000000000000000000000000000000000000000000000000000000000000601a91840191820152835161805c81601c84016020880161791d565b01601c01949350505050565b6020815260006137e56020830184617941565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156180cd576180cd61807b565b60405290565b60008067ffffffffffffffff8411156180ee576180ee61807b565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff8211171561811d5761811d61807b565b60405283815290508082840185101561813557600080fd5b6154b184602083018561791d565b600082601f83011261815457600080fd5b6137e5838351602085016180d3565b60006020828403121561817557600080fd5b815167ffffffffffffffff81111561818c57600080fd5b6136e884828501618143565b600083516181aa81846020880161791d565b8351908301906181be81836020880161791d565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e7472616374200000000000008152600083516181ff81601a85016020880161791d565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a91840191820152835161823c81603384016020880161791d565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f555400000000000000000000000000000000000000000060608201526080602082015260006137e56080830184617941565b6000602082840312156182cb57600080fd5b815167ffffffffffffffff8111156182e257600080fd5b8201601f810184136182f357600080fd5b6136e8848251602084016180d3565b60008551618314818460208a0161791d565b7f2f00000000000000000000000000000000000000000000000000000000000000908301908152855161834e816001840160208a0161791d565b7f2f0000000000000000000000000000000000000000000000000000000000000060019290910191820152845161838c81600284016020890161791d565b6001818301019150507f2f00000000000000000000000000000000000000000000000000000000000000600182015283516183ce81600284016020880161791d565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b6040815260006184196040830184617941565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161849081601f85016020870161791d565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b6040815260006184fd6040830184617941565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b60408152600061854f6040830184617941565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b270000000000000000000000008152600082516185c681601485016020870161791d565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f220000000000000000000000000000000000000000000000000000000000000081526000825161866181600185016020870161791d565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b600082516186a781846020870161791d565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e74726163742000000000000000000000000000000000000000000060408201526000825161875a81604b85016020870161791d565b91909101604b0192915050565b600060ff821660ff810361877d5761877d617e7e565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c694000000000000000000000000000000000000000000000006020820152600082516187e481602985016020870161791d565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f504154480000000000000000000060608201526080602082015260006137e56080830184617941565b60006020828403121561884a57600080fd5b815167ffffffffffffffff81111561886157600080fd5b82016060818503121561887357600080fd5b61887b6180aa565b81518060030b811461888c57600080fd5b8152602082015167ffffffffffffffff8111156188a857600080fd5b6188b486828501618143565b602083015250604082015167ffffffffffffffff8111156188d457600080fd5b6188e086828501618143565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f220000000000000000000000000000000000000000000000000000000000000060208201526000825161894c81602185016020870161791d565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f2700000000000000000000000000000000000000000000000000000000000000602082015260008351618b3881602185016020880161791d565b7f2720696e206f75747075743a20000000000000000000000000000000000000006021918401918201528351618b7581602e84016020880161791d565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a2000000000000000000000000000000000000000000000006020820152600082516187e481602985016020870161791d565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a000000000000000000000000000000000000000000000000000000000000602082015260008251618c3d81602285016020870161791d565b9190910160220192915050565b7f436f6e7472616374206e616d6520000000000000000000000000000000000000815260008251618c8281600e85016020870161791d565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b7f53504458206c6963656e7365206964656e746966696572200000000000000000815260008351618d6081601885016020880161791d565b7f20696e20000000000000000000000000000000000000000000000000000000006018918401918201528351618d9d81601c84016020880161791d565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b60008251618ea381846020870161791d565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f72654000000000815260008251618f0a81601c85016020870161791d565b91909101601c0192915050565b60006000198203618f2a57618f2a617e7e565b5060010190565b80820281158282048414176136ec576136ec617e7e565b6001815b6001841115618f8357808504811115618f6757618f67617e7e565b6001841615618f7557908102905b60019390931c928002618f4c565b935093915050565b600082618f9a575060016136ec565b81618fa7575060006136ec565b8160018114618fbd5760028114618fc757618fe3565b60019150506136ec565b60ff841115618fd857618fd8617e7e565b50506001821b6136ec565b5060208310610133831016604e8410600b8410161715619006575081810a6136ec565b6190136000198484618f48565b806000190482111561902757619027617e7e565b029392505050565b60006137e58383618f8b565b60008161904a5761904a617e7e565b506000190190565b6000835161906481846020880161791d565b7f3a00000000000000000000000000000000000000000000000000000000000000908301908152835161909e81600184016020880161791d565b01600101949350505050565b8181036000831280158383131683831282161715616aa957616aa9617e7e56fe60c0604052600d60809081526c2bb930b83832b21022ba3432b960991b60a05260009061002c9082610114565b506040805180820190915260048152630ae8aa8960e31b60208201526001906100559082610114565b506002805460ff1916601217905534801561006f57600080fd5b506101d2565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009f57607f821691505b6020821081036100bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561010f57806000526020600020601f840160051c810160208510156100ec5750805b601f840160051c820191505b8181101561010c57600081556001016100f8565b50505b505050565b81516001600160401b0381111561012d5761012d610075565b6101418161013b845461008b565b846100c5565b6020601f821160018114610175576000831561015d5750848201515b600019600385901b1c1916600184901b17845561010c565b600084815260208120601f198516915b828110156101a55787850151825560209485019460019092019101610185565b50848210156101c35786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610986806101e16000396000f3fe6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146101fa578063d0e30db01461021a578063dd62ed3e1461022257600080fd5b8063313ce5671461018c57806370a08231146101b857806395d89b41146101e557600080fd5b806318160ddd116100a557806318160ddd1461012f57806323b872dd1461014c5780632e1a7d4d1461016c57600080fd5b806306fdde03146100d4578063095ea7b3146100ff57600080fd5b366100cf576100cd61025a565b005b600080fd5b3480156100e057600080fd5b506100e96102b5565b6040516100f69190610745565b60405180910390f35b34801561010b57600080fd5b5061011f61011a3660046107da565b610343565b60405190151581526020016100f6565b34801561013b57600080fd5b50475b6040519081526020016100f6565b34801561015857600080fd5b5061011f610167366004610804565b6103bd565b34801561017857600080fd5b506100cd610187366004610841565b610647565b34801561019857600080fd5b506002546101a69060ff1681565b60405160ff90911681526020016100f6565b3480156101c457600080fd5b5061013e6101d336600461085a565b60036020526000908152604090205481565b3480156101f157600080fd5b506100e9610724565b34801561020657600080fd5b5061011f6102153660046107da565b610731565b6100cd61025a565b34801561022e57600080fd5b5061013e61023d366004610875565b600460209081526000928352604080842090915290825290205481565b33600090815260036020526040812080543492906102799084906108d7565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102c2906108ea565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee906108ea565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103ab9086815260200190565b60405180910390a35060015b92915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081205482111561042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600060248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841633148015906104a1575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105605773ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033845290915290205482111561051a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091528120805484929061055a90849061093d565b90915550505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061059590849061093d565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080548492906105cf9084906108d7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161063591815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561069a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b33600090815260036020526040812080548392906106b990849061093d565b9091555050604051339082156108fc029083906000818181858888f193505050501580156106eb573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b600180546102c2906108ea565b600061073e3384846103bd565b9392505050565b602081526000825180602084015260005b818110156107735760208186018101516040868401015201610756565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107d557600080fd5b919050565b600080604083850312156107ed57600080fd5b6107f6836107b1565b946020939093013593505050565b60008060006060848603121561081957600080fd5b610822846107b1565b9250610830602085016107b1565b929592945050506040919091013590565b60006020828403121561085357600080fd5b5035919050565b60006020828403121561086c57600080fd5b61073e826107b1565b6000806040838503121561088857600080fd5b610891836107b1565b915061089f602084016107b1565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156103b7576103b76108a8565b600181811c908216806108fe57607f821691505b602082108103610937577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b818103818111156103b7576103b76108a856fea264697066735822122008d7fc4e09519c5dd9f356b03596f6829a151d0bc7682533f9ceab4e459f5ee264736f6c634300081a00336080604052348015600f57600080fd5b506105208061001f6000396000f3fe60806040526004361061002a5760003560e01c806369582bee14610033578063de43156e1461005357005b3661003157005b005b34801561003f57600080fd5b5061003161004e3660046101ba565b610073565b34801561005f57600080fd5b5061003161006e3660046101ba565b6100ee565b6060811561008a5761008782840184610273565b90505b7ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999486100b58780610369565b6100c560408a0160208b016103ce565b896040013533866040516100de969594939291906103f0565b60405180910390a1505050505050565b606081156101055761010282840184610273565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e6100b58780610369565b60006060828403121561014257600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461016c57600080fd5b919050565b60008083601f84011261018357600080fd5b50813567ffffffffffffffff81111561019b57600080fd5b6020830191508360208285010111156101b357600080fd5b9250929050565b6000806000806000608086880312156101d257600080fd5b853567ffffffffffffffff8111156101e957600080fd5b6101f588828901610130565b95505061020460208701610148565b935060408601359250606086013567ffffffffffffffff81111561022757600080fd5b61023388828901610171565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561028557600080fd5b813567ffffffffffffffff81111561029c57600080fd5b8201601f810184136102ad57600080fd5b803567ffffffffffffffff8111156102c7576102c7610244565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561033357610333610244565b60405281815282820160200186101561034b57600080fd5b81602084016020830137600091810160200191909152949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261039e57600080fd5b83018035915067ffffffffffffffff8211156103b957600080fd5b6020019150368190038213156101b357600080fd5b6000602082840312156103e057600080fd5b6103e982610148565b9392505050565b60a081528560a0820152858760c0830137600060c0878301015260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f880116820173ffffffffffffffffffffffffffffffffffffffff8716602084015285604084015273ffffffffffffffffffffffffffffffffffffffff8516606084015260c083820301608084015283518060c083015260005b818110156104a557602081870181015184830160e0015201610488565b50600060e0838301810191909152601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101019897505050505050505056fea2646970667358221220f4d1ccb9c8450e782e1c77412473fd37637a5c83a2a3272307d8c8bc8e8c7a3364736f6c634300081a003360c060405234801561001057600080fd5b5060405161106f38038061106f83398101604081905261002f916100db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0385811691909117909155828116608052811660a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac590600090a150505061011e565b80516001600160a01b03811681146100d657600080fd5b919050565b6000806000606084860312156100f057600080fd5b6100f9846100bf565b9250610107602085016100bf565b9150610115604085016100bf565b90509250925092565b60805160a051610f2561014a60003960006101e50152600081816102b9015261045b0152610f256000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806397770dff11610097578063c63585cc11610066578063c63585cc14610273578063d7fd7afb14610286578063d936a012146102b4578063ee2815ba146102db57600080fd5b806397770dff1461021a578063a7cb05071461022d578063c39aca3714610240578063c62178ac1461025357600080fd5b8063513a9c05116100d3578063513a9c051461018a578063569541b9146101c0578063842da36d146101e057806391dd645f1461020757600080fd5b80630be15547146100fa5780631f0e251b1461015a5780633ce4a5bc1461016f575b600080fd5b610130610108366004610bd1565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61016d610168366004610c13565b6102ee565b005b61013073735b14bb79463307aacbed86daf3322b1e6226ab81565b610130610198366004610bd1565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6003546101309073ffffffffffffffffffffffffffffffffffffffff1681565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d610215366004610c35565b610402565b61016d610228366004610c13565b610526565b61016d61023b366004610c61565b610633565b61016d61024e366004610c83565b6106ce565b6004546101309073ffffffffffffffffffffffffffffffffffffffff1681565b610130610281366004610d53565b6108cd565b6102a6610294366004610bd1565b60006020819052908152604090205481565b604051908152602001610151565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d6102e9366004610c35565b610a02565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461033b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610388576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c906020015b60405180910390a150565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461044f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354600090610497907f00000000000000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff16846108cd565b60008481526002602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251878152918201529192507f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e910160405180910390a1505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610573576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166105c0576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e906020016103f7565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610680576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152602081815260409182902083905581518481529081018390527f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d91015b60405180910390a15050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461071b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831673735b14bb79463307aacbed86daf3322b1e6226ab1480610768575073ffffffffffffffffffffffffffffffffffffffff831630145b1561079f576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef2400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015610814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108389190610d96565b506040517fde43156e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063de43156e906108939089908990899088908890600401610e01565b600060405180830381600087803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b50505050505050505050565b60008060006108dc8585610ad3565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084811b8216602084015283901b16603482015291935091508690604801604051602081830303815290604052805190602001206040516020016109c29291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610a4f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91016106c2565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b3b576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610b75578284610b78565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610bca576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b600060208284031215610be357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c0e57600080fd5b919050565b600060208284031215610c2557600080fd5b610c2e82610bea565b9392505050565b60008060408385031215610c4857600080fd5b82359150610c5860208401610bea565b90509250929050565b60008060408385031215610c7457600080fd5b50508035926020909101359150565b60008060008060008060a08789031215610c9c57600080fd5b863567ffffffffffffffff811115610cb357600080fd5b87016060818a031215610cc557600080fd5b9550610cd360208801610bea565b945060408701359350610ce860608801610bea565b9250608087013567ffffffffffffffff811115610d0457600080fd5b8701601f81018913610d1557600080fd5b803567ffffffffffffffff811115610d2c57600080fd5b896020828401011115610d3e57600080fd5b60208201935080925050509295509295509295565b600080600060608486031215610d6857600080fd5b610d7184610bea565b9250610d7f60208501610bea565b9150610d8d60408501610bea565b90509250925092565b600060208284031215610da857600080fd5b81518015158114610c2e57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600086357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1883603018112610e3957600080fd5b870160208101903567ffffffffffffffff811115610e5657600080fd5b803603821315610e6557600080fd5b60606080850152610e7a60e085018284610db8565b91505073ffffffffffffffffffffffffffffffffffffffff610e9e60208a01610bea565b1660a0840152604088013560c084015273ffffffffffffffffffffffffffffffffffffffff871660208401528560408401528281036060840152610ee3818587610db8565b9897505050505050505056fea264697066735822122017543d2c8189b581ace78b1ea401266087d4800c1923634417b929e7efd8a9b764736f6c634300081a003360c060405234801561001057600080fd5b506040516119e83803806119e883398101604081905261002f916101db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600761006f898261032d565b50600861007c888261032d565b506009805460ff191660ff881617905560808590528360028111156100a3576100a36103eb565b60a08160028111156100b7576100b76103eb565b905250600292909255600080546001600160a01b039283166001600160a01b03199182161790915560018054929093169116179055506104019350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011e57600080fd5b81516001600160401b03811115610137576101376100f7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610165576101656100f7565b60405281815283820160200185101561017d57600080fd5b60005b8281101561019c57602081860181015183830182015201610180565b506000918101602001919091529392505050565b8051600381106101bf57600080fd5b919050565b80516001600160a01b03811681146101bf57600080fd5b600080600080600080600080610100898b0312156101f857600080fd5b88516001600160401b0381111561020e57600080fd5b61021a8b828c0161010d565b60208b015190995090506001600160401b0381111561023857600080fd5b6102448b828c0161010d565b975050604089015160ff8116811461025b57600080fd5b60608a0151909650945061027160808a016101b0565b60a08a0151909450925061028760c08a016101c4565b915061029560e08a016101c4565b90509295985092959890939650565b600181811c908216806102b857607f821691505b6020821081036102d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561032857806000526020600020601f840160051c810160208510156103055750805b601f840160051c820191505b818110156103255760008155600101610311565b50505b505050565b81516001600160401b03811115610346576103466100f7565b61035a8161035484546102a4565b846102de565b6020601f82116001811461038e57600083156103765750848201515b600019600385901b1c1916600184901b178455610325565b600084815260208120601f198516915b828110156103be578785015182556020948501946001909201910161039e565b50848210156103dc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805160a0516115b461043460003960006102f30152600081816102c4015281816109430152610a4901526115b46000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806385e1f4d0116100e3578063d9eeebed1161008c578063eddeb12311610066578063eddeb123146103f7578063f2441b321461040a578063f687d12a1461042a57600080fd5b8063d9eeebed1461035d578063dd62ed3e14610391578063e2f535b8146103d757600080fd5b8063a9059cbb116100bd578063a9059cbb14610322578063c701262614610335578063c835d7cc1461034857600080fd5b806385e1f4d0146102bf57806395d89b41146102e6578063a3413d03146102ee57600080fd5b8063313ce5671161014557806347e7ef241161011f57806347e7ef241461026d5780634d8943bb1461028057806370a082311461028957600080fd5b8063313ce567146102055780633ce4a5bc1461021a57806342966c681461025a57600080fd5b8063095ea7b311610176578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101f257600080fd5b806306fdde0314610192578063091d2788146101b0575b600080fd5b61019a61043d565b6040516101a79190611193565b60405180910390f35b6101b960025481565b6040519081526020016101a7565b6101da6101d53660046111d2565b6104cf565b60405190151581526020016101a7565b6006546101b9565b6101da6102003660046111fe565b6104e6565b60095460405160ff90911681526020016101a7565b61023573735b14bb79463307aacbed86daf3322b1e6226ab81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101da61026836600461123f565b61057d565b6101da61027b3660046111d2565b610591565b6101b960035481565b6101b9610297366004611258565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61019a6106e5565b6103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a79190611275565b6101da6103303660046111d2565b6106f4565b6101da6103433660046112e5565b610701565b61035b610356366004611258565b610850565b005b610365610917565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6101b961039f3660046113dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b6001546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61040536600461123f565b610b35565b6000546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61043836600461123f565b610bb7565b60606007805461044c90611416565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611416565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc338484610c39565b5060015b92915050565b60006104f3848484610d42565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083203384529091529020548281101561055e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610572853361056d8685611498565b610c39565b506001949350505050565b60006105893383610efd565b506001919050565b60003373735b14bb79463307aacbed86daf3322b1e6226ab148015906105cf575060005473ffffffffffffffffffffffffffffffffffffffff163314155b80156105f3575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561062a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610634838361103f565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8416907f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab390603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526106d49186906114ab565b60405180910390a250600192915050565b60606008805461044c90611416565b60006104dc338484610d42565b600080600061070e610917565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab602482015260448101829052919350915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906064016020604051808303816000875af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906114cd565b6107fa576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108043385610efd565b60035460405133917f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161083d918991899187916114ef565b60405180910390a2506001949350505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461089d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae906020015b60405180910390a150565b600080546040517f0be155470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201528291829173ffffffffffffffffffffffffffffffffffffffff90911690630be1554790602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce919061151e565b905073ffffffffffffffffffffffffffffffffffffffff8116610a1d576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517fd7fd7afb0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff9091169063d7fd7afb90602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061153b565b905080600003610b0c576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610b1f9190611554565b610b29919061156b565b92959294509192505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610b82576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f9060200161090c565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610c04576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a9060200161090c565b73ffffffffffffffffffffffffffffffffffffffff8316610c86576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cd3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d8f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ddc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205481811015610e3c576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e468282611498565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600460205260408082209390935590851681529081208054849290610e8990849061156b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eef91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610f4a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481811015610faa576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb48282611498565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081209190915560068054849290610fef908490611498565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d35565b73ffffffffffffffffffffffffffffffffffffffff821661108c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806006600082825461109e919061156b565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906110d890849061156b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000815180845260005b8181101561115557602081850181015186830182015201611139565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111a6602083018461112f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b60008060006060848603121561121357600080fd5b833561121e816111ad565b9250602084013561122e816111ad565b929592945050506040919091013590565b60006020828403121561125157600080fd5b5035919050565b60006020828403121561126a57600080fd5b81356111a6816111ad565b60208101600383106112b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156112f857600080fd5b823567ffffffffffffffff81111561130f57600080fd5b8301601f8101851361132057600080fd5b803567ffffffffffffffff81111561133a5761133a6112b6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113a6576113a66112b6565b6040528181528282016020018710156113be57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600080604083850312156113f057600080fd5b82356113fb816111ad565b9150602083013561140b816111ad565b809150509250929050565b600181811c9082168061142a57607f821691505b602082108103611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104e0576104e0611469565b6040815260006114be604083018561112f565b90508260208301529392505050565b6000602082840312156114df57600080fd5b815180151581146111a657600080fd5b608081526000611502608083018761112f565b6020830195909552506040810192909252606090910152919050565b60006020828403121561153057600080fd5b81516111a6816111ad565b60006020828403121561154d57600080fd5b5051919050565b80820281158282048414176104e0576104e0611469565b808201808211156104e0576104e061146956fea26469706673582212207bc62dfdede7c005315010b4244c5d1661fb65fbf23259603e26342f3a5148c464736f6c634300081a0033a26469706673582212201be2823b07dd7c102eb08dd27f77c5908207f97a4d01ac542bd7e9bcece1192464736f6c634300081a0033", +} + +// GatewayZEVMInboundTestABI is the input ABI used to generate the binding from. +// Deprecated: Use GatewayZEVMInboundTestMetaData.ABI instead. +var GatewayZEVMInboundTestABI = GatewayZEVMInboundTestMetaData.ABI + +// GatewayZEVMInboundTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use GatewayZEVMInboundTestMetaData.Bin instead. +var GatewayZEVMInboundTestBin = GatewayZEVMInboundTestMetaData.Bin + +// DeployGatewayZEVMInboundTest deploys a new Ethereum contract, binding an instance of GatewayZEVMInboundTest to it. +func DeployGatewayZEVMInboundTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GatewayZEVMInboundTest, error) { + parsed, err := GatewayZEVMInboundTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(GatewayZEVMInboundTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &GatewayZEVMInboundTest{GatewayZEVMInboundTestCaller: GatewayZEVMInboundTestCaller{contract: contract}, GatewayZEVMInboundTestTransactor: GatewayZEVMInboundTestTransactor{contract: contract}, GatewayZEVMInboundTestFilterer: GatewayZEVMInboundTestFilterer{contract: contract}}, nil +} + +// GatewayZEVMInboundTest is an auto generated Go binding around an Ethereum contract. +type GatewayZEVMInboundTest struct { + GatewayZEVMInboundTestCaller // Read-only binding to the contract + GatewayZEVMInboundTestTransactor // Write-only binding to the contract + GatewayZEVMInboundTestFilterer // Log filterer for contract events +} + +// GatewayZEVMInboundTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type GatewayZEVMInboundTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayZEVMInboundTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type GatewayZEVMInboundTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayZEVMInboundTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type GatewayZEVMInboundTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayZEVMInboundTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type GatewayZEVMInboundTestSession struct { + Contract *GatewayZEVMInboundTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayZEVMInboundTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type GatewayZEVMInboundTestCallerSession struct { + Contract *GatewayZEVMInboundTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// GatewayZEVMInboundTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type GatewayZEVMInboundTestTransactorSession struct { + Contract *GatewayZEVMInboundTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayZEVMInboundTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type GatewayZEVMInboundTestRaw struct { + Contract *GatewayZEVMInboundTest // Generic contract binding to access the raw methods on +} + +// GatewayZEVMInboundTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type GatewayZEVMInboundTestCallerRaw struct { + Contract *GatewayZEVMInboundTestCaller // Generic read-only contract binding to access the raw methods on +} + +// GatewayZEVMInboundTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type GatewayZEVMInboundTestTransactorRaw struct { + Contract *GatewayZEVMInboundTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewGatewayZEVMInboundTest creates a new instance of GatewayZEVMInboundTest, bound to a specific deployed contract. +func NewGatewayZEVMInboundTest(address common.Address, backend bind.ContractBackend) (*GatewayZEVMInboundTest, error) { + contract, err := bindGatewayZEVMInboundTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTest{GatewayZEVMInboundTestCaller: GatewayZEVMInboundTestCaller{contract: contract}, GatewayZEVMInboundTestTransactor: GatewayZEVMInboundTestTransactor{contract: contract}, GatewayZEVMInboundTestFilterer: GatewayZEVMInboundTestFilterer{contract: contract}}, nil +} + +// NewGatewayZEVMInboundTestCaller creates a new read-only instance of GatewayZEVMInboundTest, bound to a specific deployed contract. +func NewGatewayZEVMInboundTestCaller(address common.Address, caller bind.ContractCaller) (*GatewayZEVMInboundTestCaller, error) { + contract, err := bindGatewayZEVMInboundTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestCaller{contract: contract}, nil +} + +// NewGatewayZEVMInboundTestTransactor creates a new write-only instance of GatewayZEVMInboundTest, bound to a specific deployed contract. +func NewGatewayZEVMInboundTestTransactor(address common.Address, transactor bind.ContractTransactor) (*GatewayZEVMInboundTestTransactor, error) { + contract, err := bindGatewayZEVMInboundTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestTransactor{contract: contract}, nil +} + +// NewGatewayZEVMInboundTestFilterer creates a new log filterer instance of GatewayZEVMInboundTest, bound to a specific deployed contract. +func NewGatewayZEVMInboundTestFilterer(address common.Address, filterer bind.ContractFilterer) (*GatewayZEVMInboundTestFilterer, error) { + contract, err := bindGatewayZEVMInboundTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestFilterer{contract: contract}, nil +} + +// bindGatewayZEVMInboundTest binds a generic wrapper to an already deployed contract. +func bindGatewayZEVMInboundTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := GatewayZEVMInboundTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayZEVMInboundTest.Contract.GatewayZEVMInboundTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.GatewayZEVMInboundTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.GatewayZEVMInboundTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayZEVMInboundTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.contract.Transact(opts, method, params...) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) ISTEST(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "IS_TEST") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) ISTEST() (bool, error) { + return _GatewayZEVMInboundTest.Contract.ISTEST(&_GatewayZEVMInboundTest.CallOpts) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) ISTEST() (bool, error) { + return _GatewayZEVMInboundTest.Contract.ISTEST(&_GatewayZEVMInboundTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) ExcludeArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "excludeArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) ExcludeArtifacts() ([]string, error) { + return _GatewayZEVMInboundTest.Contract.ExcludeArtifacts(&_GatewayZEVMInboundTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) ExcludeArtifacts() ([]string, error) { + return _GatewayZEVMInboundTest.Contract.ExcludeArtifacts(&_GatewayZEVMInboundTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) ExcludeContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "excludeContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayZEVMInboundTest.Contract.ExcludeContracts(&_GatewayZEVMInboundTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayZEVMInboundTest.Contract.ExcludeContracts(&_GatewayZEVMInboundTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) ExcludeSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "excludeSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayZEVMInboundTest.Contract.ExcludeSelectors(&_GatewayZEVMInboundTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayZEVMInboundTest.Contract.ExcludeSelectors(&_GatewayZEVMInboundTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) ExcludeSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "excludeSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayZEVMInboundTest.Contract.ExcludeSenders(&_GatewayZEVMInboundTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayZEVMInboundTest.Contract.ExcludeSenders(&_GatewayZEVMInboundTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) Failed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "failed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) Failed() (bool, error) { + return _GatewayZEVMInboundTest.Contract.Failed(&_GatewayZEVMInboundTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) Failed() (bool, error) { + return _GatewayZEVMInboundTest.Contract.Failed(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) TargetArtifactSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzArtifactSelector, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "targetArtifactSelectors") + + if err != nil { + return *new([]StdInvariantFuzzArtifactSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzArtifactSelector)).(*[]StdInvariantFuzzArtifactSelector) + + return out0, err + +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayZEVMInboundTest.Contract.TargetArtifactSelectors(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayZEVMInboundTest.Contract.TargetArtifactSelectors(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) TargetArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "targetArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TargetArtifacts() ([]string, error) { + return _GatewayZEVMInboundTest.Contract.TargetArtifacts(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) TargetArtifacts() ([]string, error) { + return _GatewayZEVMInboundTest.Contract.TargetArtifacts(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) TargetContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "targetContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TargetContracts() ([]common.Address, error) { + return _GatewayZEVMInboundTest.Contract.TargetContracts(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) TargetContracts() ([]common.Address, error) { + return _GatewayZEVMInboundTest.Contract.TargetContracts(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) TargetInterfaces(opts *bind.CallOpts) ([]StdInvariantFuzzInterface, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "targetInterfaces") + + if err != nil { + return *new([]StdInvariantFuzzInterface), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzInterface)).(*[]StdInvariantFuzzInterface) + + return out0, err + +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayZEVMInboundTest.Contract.TargetInterfaces(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayZEVMInboundTest.Contract.TargetInterfaces(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) TargetSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "targetSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayZEVMInboundTest.Contract.TargetSelectors(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayZEVMInboundTest.Contract.TargetSelectors(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCaller) TargetSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayZEVMInboundTest.contract.Call(opts, &out, "targetSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TargetSenders() ([]common.Address, error) { + return _GatewayZEVMInboundTest.Contract.TargetSenders(&_GatewayZEVMInboundTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestCallerSession) TargetSenders() ([]common.Address, error) { + return _GatewayZEVMInboundTest.Contract.TargetSenders(&_GatewayZEVMInboundTest.CallOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactor) SetUp(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.contract.Transact(opts, "setUp") +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) SetUp() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.SetUp(&_GatewayZEVMInboundTest.TransactOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorSession) SetUp() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.SetUp(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestCall is a paid mutator transaction binding the contract method 0xb7f05836. +// +// Solidity: function testCall() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactor) TestCall(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.contract.Transact(opts, "testCall") +} + +// TestCall is a paid mutator transaction binding the contract method 0xb7f05836. +// +// Solidity: function testCall() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TestCall() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestCall(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestCall is a paid mutator transaction binding the contract method 0xb7f05836. +// +// Solidity: function testCall() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorSession) TestCall() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestCall(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZETA is a paid mutator transaction binding the contract method 0xea37902f. +// +// Solidity: function testWithdrawZETA() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactor) TestWithdrawZETA(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.contract.Transact(opts, "testWithdrawZETA") +} + +// TestWithdrawZETA is a paid mutator transaction binding the contract method 0xea37902f. +// +// Solidity: function testWithdrawZETA() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TestWithdrawZETA() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZETA(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZETA is a paid mutator transaction binding the contract method 0xea37902f. +// +// Solidity: function testWithdrawZETA() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorSession) TestWithdrawZETA() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZETA(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZETAFailsIfNoAllowance is a paid mutator transaction binding the contract method 0xdde7e967. +// +// Solidity: function testWithdrawZETAFailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactor) TestWithdrawZETAFailsIfNoAllowance(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.contract.Transact(opts, "testWithdrawZETAFailsIfNoAllowance") +} + +// TestWithdrawZETAFailsIfNoAllowance is a paid mutator transaction binding the contract method 0xdde7e967. +// +// Solidity: function testWithdrawZETAFailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TestWithdrawZETAFailsIfNoAllowance() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZETAFailsIfNoAllowance(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZETAFailsIfNoAllowance is a paid mutator transaction binding the contract method 0xdde7e967. +// +// Solidity: function testWithdrawZETAFailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorSession) TestWithdrawZETAFailsIfNoAllowance() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZETAFailsIfNoAllowance(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZETAWithMessage is a paid mutator transaction binding the contract method 0x18a4cfdc. +// +// Solidity: function testWithdrawZETAWithMessage() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactor) TestWithdrawZETAWithMessage(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.contract.Transact(opts, "testWithdrawZETAWithMessage") +} + +// TestWithdrawZETAWithMessage is a paid mutator transaction binding the contract method 0x18a4cfdc. +// +// Solidity: function testWithdrawZETAWithMessage() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TestWithdrawZETAWithMessage() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZETAWithMessage(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZETAWithMessage is a paid mutator transaction binding the contract method 0x18a4cfdc. +// +// Solidity: function testWithdrawZETAWithMessage() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorSession) TestWithdrawZETAWithMessage() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZETAWithMessage(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZETAWithMessageFailsIfNoAllowance is a paid mutator transaction binding the contract method 0x5006fd80. +// +// Solidity: function testWithdrawZETAWithMessageFailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactor) TestWithdrawZETAWithMessageFailsIfNoAllowance(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.contract.Transact(opts, "testWithdrawZETAWithMessageFailsIfNoAllowance") +} + +// TestWithdrawZETAWithMessageFailsIfNoAllowance is a paid mutator transaction binding the contract method 0x5006fd80. +// +// Solidity: function testWithdrawZETAWithMessageFailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TestWithdrawZETAWithMessageFailsIfNoAllowance() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZETAWithMessageFailsIfNoAllowance(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZETAWithMessageFailsIfNoAllowance is a paid mutator transaction binding the contract method 0x5006fd80. +// +// Solidity: function testWithdrawZETAWithMessageFailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorSession) TestWithdrawZETAWithMessageFailsIfNoAllowance() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZETAWithMessageFailsIfNoAllowance(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZRC20 is a paid mutator transaction binding the contract method 0xfbc611c8. +// +// Solidity: function testWithdrawZRC20() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactor) TestWithdrawZRC20(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.contract.Transact(opts, "testWithdrawZRC20") +} + +// TestWithdrawZRC20 is a paid mutator transaction binding the contract method 0xfbc611c8. +// +// Solidity: function testWithdrawZRC20() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TestWithdrawZRC20() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZRC20(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZRC20 is a paid mutator transaction binding the contract method 0xfbc611c8. +// +// Solidity: function testWithdrawZRC20() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorSession) TestWithdrawZRC20() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZRC20(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZRC20FailsIfNoAllowance is a paid mutator transaction binding the contract method 0x5d72228f. +// +// Solidity: function testWithdrawZRC20FailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactor) TestWithdrawZRC20FailsIfNoAllowance(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.contract.Transact(opts, "testWithdrawZRC20FailsIfNoAllowance") +} + +// TestWithdrawZRC20FailsIfNoAllowance is a paid mutator transaction binding the contract method 0x5d72228f. +// +// Solidity: function testWithdrawZRC20FailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TestWithdrawZRC20FailsIfNoAllowance() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZRC20FailsIfNoAllowance(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZRC20FailsIfNoAllowance is a paid mutator transaction binding the contract method 0x5d72228f. +// +// Solidity: function testWithdrawZRC20FailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorSession) TestWithdrawZRC20FailsIfNoAllowance() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZRC20FailsIfNoAllowance(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZRC20WithMessage is a paid mutator transaction binding the contract method 0x1e63d2b9. +// +// Solidity: function testWithdrawZRC20WithMessage() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactor) TestWithdrawZRC20WithMessage(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.contract.Transact(opts, "testWithdrawZRC20WithMessage") +} + +// TestWithdrawZRC20WithMessage is a paid mutator transaction binding the contract method 0x1e63d2b9. +// +// Solidity: function testWithdrawZRC20WithMessage() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TestWithdrawZRC20WithMessage() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZRC20WithMessage(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZRC20WithMessage is a paid mutator transaction binding the contract method 0x1e63d2b9. +// +// Solidity: function testWithdrawZRC20WithMessage() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorSession) TestWithdrawZRC20WithMessage() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZRC20WithMessage(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZRC20WithMessageFailsIfNoAllowance is a paid mutator transaction binding the contract method 0x1238212c. +// +// Solidity: function testWithdrawZRC20WithMessageFailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactor) TestWithdrawZRC20WithMessageFailsIfNoAllowance(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMInboundTest.contract.Transact(opts, "testWithdrawZRC20WithMessageFailsIfNoAllowance") +} + +// TestWithdrawZRC20WithMessageFailsIfNoAllowance is a paid mutator transaction binding the contract method 0x1238212c. +// +// Solidity: function testWithdrawZRC20WithMessageFailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestSession) TestWithdrawZRC20WithMessageFailsIfNoAllowance() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZRC20WithMessageFailsIfNoAllowance(&_GatewayZEVMInboundTest.TransactOpts) +} + +// TestWithdrawZRC20WithMessageFailsIfNoAllowance is a paid mutator transaction binding the contract method 0x1238212c. +// +// Solidity: function testWithdrawZRC20WithMessageFailsIfNoAllowance() returns() +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestTransactorSession) TestWithdrawZRC20WithMessageFailsIfNoAllowance() (*types.Transaction, error) { + return _GatewayZEVMInboundTest.Contract.TestWithdrawZRC20WithMessageFailsIfNoAllowance(&_GatewayZEVMInboundTest.TransactOpts) +} + +// GatewayZEVMInboundTestCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestCallIterator struct { + Event *GatewayZEVMInboundTestCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestCall represents a Call event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestCall struct { + Sender common.Address + Receiver []byte + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address) (*GatewayZEVMInboundTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "Call", senderRule) + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestCallIterator{contract: _GatewayZEVMInboundTest.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestCall, sender []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "Call", senderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestCall) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseCall(log types.Log) (*GatewayZEVMInboundTestCall, error) { + event := new(GatewayZEVMInboundTestCall) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestWithdrawalIterator is returned from FilterWithdrawal and is used to iterate over the raw logs and unpacked data for Withdrawal events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestWithdrawalIterator struct { + Event *GatewayZEVMInboundTestWithdrawal // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestWithdrawalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestWithdrawalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestWithdrawalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestWithdrawal represents a Withdrawal event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestWithdrawal struct { + From common.Address + Zrc20 common.Address + To []byte + Value *big.Int + Gasfee *big.Int + ProtocolFlatFee *big.Int + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawal is a free log retrieval operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterWithdrawal(opts *bind.FilterOpts, from []common.Address) (*GatewayZEVMInboundTestWithdrawalIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestWithdrawalIterator{contract: _GatewayZEVMInboundTest.contract, event: "Withdrawal", logs: logs, sub: sub}, nil +} + +// WatchWithdrawal is a free log subscription operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestWithdrawal, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestWithdrawal) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawal is a log parse operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseWithdrawal(log types.Log) (*GatewayZEVMInboundTestWithdrawal, error) { + event := new(GatewayZEVMInboundTestWithdrawal) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogIterator is returned from FilterLog and is used to iterate over the raw logs and unpacked data for Log events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogIterator struct { + Event *GatewayZEVMInboundTestLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLog represents a Log event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLog struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLog is a free log retrieval operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLog(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogIterator{contract: _GatewayZEVMInboundTest.contract, event: "log", logs: logs, sub: sub}, nil +} + +// WatchLog is a free log subscription operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLog(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLog) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLog) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLog is a log parse operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLog(log types.Log) (*GatewayZEVMInboundTestLog, error) { + event := new(GatewayZEVMInboundTestLog) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogAddressIterator is returned from FilterLogAddress and is used to iterate over the raw logs and unpacked data for LogAddress events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogAddressIterator struct { + Event *GatewayZEVMInboundTestLogAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogAddress represents a LogAddress event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogAddress struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAddress is a free log retrieval operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogAddress(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogAddressIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_address") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogAddressIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_address", logs: logs, sub: sub}, nil +} + +// WatchLogAddress is a free log subscription operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogAddress(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogAddress) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogAddress is a log parse operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogAddress(log types.Log) (*GatewayZEVMInboundTestLogAddress, error) { + event := new(GatewayZEVMInboundTestLogAddress) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogArrayIterator is returned from FilterLogArray and is used to iterate over the raw logs and unpacked data for LogArray events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogArrayIterator struct { + Event *GatewayZEVMInboundTestLogArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogArray represents a LogArray event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogArray struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray is a free log retrieval operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogArray(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogArrayIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_array") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogArrayIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_array", logs: logs, sub: sub}, nil +} + +// WatchLogArray is a free log subscription operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogArray(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogArray) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogArray) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray is a log parse operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogArray(log types.Log) (*GatewayZEVMInboundTestLogArray, error) { + event := new(GatewayZEVMInboundTestLogArray) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogArray0Iterator is returned from FilterLogArray0 and is used to iterate over the raw logs and unpacked data for LogArray0 events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogArray0Iterator struct { + Event *GatewayZEVMInboundTestLogArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogArray0 represents a LogArray0 event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogArray0 struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray0 is a free log retrieval operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogArray0(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogArray0Iterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogArray0Iterator{contract: _GatewayZEVMInboundTest.contract, event: "log_array0", logs: logs, sub: sub}, nil +} + +// WatchLogArray0 is a free log subscription operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogArray0(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogArray0) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray0 is a log parse operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogArray0(log types.Log) (*GatewayZEVMInboundTestLogArray0, error) { + event := new(GatewayZEVMInboundTestLogArray0) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogArray1Iterator is returned from FilterLogArray1 and is used to iterate over the raw logs and unpacked data for LogArray1 events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogArray1Iterator struct { + Event *GatewayZEVMInboundTestLogArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogArray1 represents a LogArray1 event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogArray1 struct { + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray1 is a free log retrieval operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogArray1(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogArray1Iterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogArray1Iterator{contract: _GatewayZEVMInboundTest.contract, event: "log_array1", logs: logs, sub: sub}, nil +} + +// WatchLogArray1 is a free log subscription operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogArray1(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogArray1) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray1 is a log parse operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogArray1(log types.Log) (*GatewayZEVMInboundTestLogArray1, error) { + event := new(GatewayZEVMInboundTestLogArray1) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogBytesIterator is returned from FilterLogBytes and is used to iterate over the raw logs and unpacked data for LogBytes events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogBytesIterator struct { + Event *GatewayZEVMInboundTestLogBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogBytes represents a LogBytes event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogBytes struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes is a free log retrieval operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogBytes(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogBytesIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogBytesIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogBytes is a free log subscription operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogBytes(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogBytes) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes is a log parse operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogBytes(log types.Log) (*GatewayZEVMInboundTestLogBytes, error) { + event := new(GatewayZEVMInboundTestLogBytes) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogBytes32Iterator is returned from FilterLogBytes32 and is used to iterate over the raw logs and unpacked data for LogBytes32 events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogBytes32Iterator struct { + Event *GatewayZEVMInboundTestLogBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogBytes32 represents a LogBytes32 event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogBytes32 struct { + Arg0 [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes32 is a free log retrieval operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogBytes32(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogBytes32Iterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogBytes32Iterator{contract: _GatewayZEVMInboundTest.contract, event: "log_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogBytes32 is a free log subscription operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogBytes32(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogBytes32) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes32 is a log parse operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogBytes32(log types.Log) (*GatewayZEVMInboundTestLogBytes32, error) { + event := new(GatewayZEVMInboundTestLogBytes32) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogIntIterator is returned from FilterLogInt and is used to iterate over the raw logs and unpacked data for LogInt events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogIntIterator struct { + Event *GatewayZEVMInboundTestLogInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogInt represents a LogInt event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogInt struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogInt is a free log retrieval operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogInt(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogIntIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_int") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogIntIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_int", logs: logs, sub: sub}, nil +} + +// WatchLogInt is a free log subscription operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogInt(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogInt) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogInt) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogInt is a log parse operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogInt(log types.Log) (*GatewayZEVMInboundTestLogInt, error) { + event := new(GatewayZEVMInboundTestLogInt) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedAddressIterator is returned from FilterLogNamedAddress and is used to iterate over the raw logs and unpacked data for LogNamedAddress events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedAddressIterator struct { + Event *GatewayZEVMInboundTestLogNamedAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedAddress represents a LogNamedAddress event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedAddress struct { + Key string + Val common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedAddress is a free log retrieval operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedAddress(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedAddressIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedAddressIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_address", logs: logs, sub: sub}, nil +} + +// WatchLogNamedAddress is a free log subscription operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedAddress(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedAddress) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedAddress is a log parse operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedAddress(log types.Log) (*GatewayZEVMInboundTestLogNamedAddress, error) { + event := new(GatewayZEVMInboundTestLogNamedAddress) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedArrayIterator is returned from FilterLogNamedArray and is used to iterate over the raw logs and unpacked data for LogNamedArray events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedArrayIterator struct { + Event *GatewayZEVMInboundTestLogNamedArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedArray represents a LogNamedArray event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedArray struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray is a free log retrieval operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedArray(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedArrayIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedArrayIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_array", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray is a free log subscription operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedArray(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedArray) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedArray) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray is a log parse operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedArray(log types.Log) (*GatewayZEVMInboundTestLogNamedArray, error) { + event := new(GatewayZEVMInboundTestLogNamedArray) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedArray0Iterator is returned from FilterLogNamedArray0 and is used to iterate over the raw logs and unpacked data for LogNamedArray0 events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedArray0Iterator struct { + Event *GatewayZEVMInboundTestLogNamedArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedArray0 represents a LogNamedArray0 event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedArray0 struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray0 is a free log retrieval operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedArray0(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedArray0Iterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedArray0Iterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_array0", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray0 is a free log subscription operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedArray0(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedArray0) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray0 is a log parse operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedArray0(log types.Log) (*GatewayZEVMInboundTestLogNamedArray0, error) { + event := new(GatewayZEVMInboundTestLogNamedArray0) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedArray1Iterator is returned from FilterLogNamedArray1 and is used to iterate over the raw logs and unpacked data for LogNamedArray1 events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedArray1Iterator struct { + Event *GatewayZEVMInboundTestLogNamedArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedArray1 represents a LogNamedArray1 event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedArray1 struct { + Key string + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray1 is a free log retrieval operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedArray1(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedArray1Iterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedArray1Iterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_array1", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray1 is a free log subscription operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedArray1(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedArray1) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray1 is a log parse operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedArray1(log types.Log) (*GatewayZEVMInboundTestLogNamedArray1, error) { + event := new(GatewayZEVMInboundTestLogNamedArray1) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedBytesIterator is returned from FilterLogNamedBytes and is used to iterate over the raw logs and unpacked data for LogNamedBytes events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedBytesIterator struct { + Event *GatewayZEVMInboundTestLogNamedBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedBytes represents a LogNamedBytes event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedBytes struct { + Key string + Val []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes is a free log retrieval operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedBytes(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedBytesIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedBytesIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes is a free log subscription operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedBytes(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedBytes) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes is a log parse operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedBytes(log types.Log) (*GatewayZEVMInboundTestLogNamedBytes, error) { + event := new(GatewayZEVMInboundTestLogNamedBytes) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedBytes32Iterator is returned from FilterLogNamedBytes32 and is used to iterate over the raw logs and unpacked data for LogNamedBytes32 events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedBytes32Iterator struct { + Event *GatewayZEVMInboundTestLogNamedBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedBytes32 represents a LogNamedBytes32 event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedBytes32 struct { + Key string + Val [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes32 is a free log retrieval operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedBytes32(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedBytes32Iterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedBytes32Iterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes32 is a free log subscription operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedBytes32(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedBytes32) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes32 is a log parse operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedBytes32(log types.Log) (*GatewayZEVMInboundTestLogNamedBytes32, error) { + event := new(GatewayZEVMInboundTestLogNamedBytes32) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedDecimalIntIterator is returned from FilterLogNamedDecimalInt and is used to iterate over the raw logs and unpacked data for LogNamedDecimalInt events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedDecimalIntIterator struct { + Event *GatewayZEVMInboundTestLogNamedDecimalInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedDecimalIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedDecimalIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedDecimalIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedDecimalInt represents a LogNamedDecimalInt event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedDecimalInt struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalInt is a free log retrieval operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedDecimalInt(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedDecimalIntIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedDecimalIntIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_decimal_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalInt is a free log subscription operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedDecimalInt(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedDecimalInt) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedDecimalInt) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalInt is a log parse operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedDecimalInt(log types.Log) (*GatewayZEVMInboundTestLogNamedDecimalInt, error) { + event := new(GatewayZEVMInboundTestLogNamedDecimalInt) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedDecimalUintIterator is returned from FilterLogNamedDecimalUint and is used to iterate over the raw logs and unpacked data for LogNamedDecimalUint events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedDecimalUintIterator struct { + Event *GatewayZEVMInboundTestLogNamedDecimalUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedDecimalUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedDecimalUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedDecimalUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedDecimalUint represents a LogNamedDecimalUint event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedDecimalUint struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalUint is a free log retrieval operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedDecimalUint(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedDecimalUintIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedDecimalUintIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_decimal_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalUint is a free log subscription operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedDecimalUint(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedDecimalUint) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedDecimalUint) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalUint is a log parse operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedDecimalUint(log types.Log) (*GatewayZEVMInboundTestLogNamedDecimalUint, error) { + event := new(GatewayZEVMInboundTestLogNamedDecimalUint) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedIntIterator is returned from FilterLogNamedInt and is used to iterate over the raw logs and unpacked data for LogNamedInt events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedIntIterator struct { + Event *GatewayZEVMInboundTestLogNamedInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedInt represents a LogNamedInt event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedInt struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedInt is a free log retrieval operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedInt(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedIntIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedIntIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedInt is a free log subscription operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedInt(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedInt) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedInt) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedInt is a log parse operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedInt(log types.Log) (*GatewayZEVMInboundTestLogNamedInt, error) { + event := new(GatewayZEVMInboundTestLogNamedInt) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedStringIterator is returned from FilterLogNamedString and is used to iterate over the raw logs and unpacked data for LogNamedString events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedStringIterator struct { + Event *GatewayZEVMInboundTestLogNamedString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedString represents a LogNamedString event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedString struct { + Key string + Val string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedString is a free log retrieval operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedString(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedStringIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedStringIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_string", logs: logs, sub: sub}, nil +} + +// WatchLogNamedString is a free log subscription operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedString(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedString) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedString) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedString is a log parse operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedString(log types.Log) (*GatewayZEVMInboundTestLogNamedString, error) { + event := new(GatewayZEVMInboundTestLogNamedString) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogNamedUintIterator is returned from FilterLogNamedUint and is used to iterate over the raw logs and unpacked data for LogNamedUint events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedUintIterator struct { + Event *GatewayZEVMInboundTestLogNamedUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogNamedUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogNamedUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogNamedUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogNamedUint represents a LogNamedUint event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogNamedUint struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedUint is a free log retrieval operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogNamedUint(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogNamedUintIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogNamedUintIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_named_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedUint is a free log subscription operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogNamedUint(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogNamedUint) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogNamedUint) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedUint is a log parse operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogNamedUint(log types.Log) (*GatewayZEVMInboundTestLogNamedUint, error) { + event := new(GatewayZEVMInboundTestLogNamedUint) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogStringIterator is returned from FilterLogString and is used to iterate over the raw logs and unpacked data for LogString events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogStringIterator struct { + Event *GatewayZEVMInboundTestLogString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogString represents a LogString event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogString struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogString is a free log retrieval operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogString(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogStringIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_string") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogStringIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_string", logs: logs, sub: sub}, nil +} + +// WatchLogString is a free log subscription operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogString(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogString) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogString) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogString is a log parse operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogString(log types.Log) (*GatewayZEVMInboundTestLogString, error) { + event := new(GatewayZEVMInboundTestLogString) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogUintIterator is returned from FilterLogUint and is used to iterate over the raw logs and unpacked data for LogUint events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogUintIterator struct { + Event *GatewayZEVMInboundTestLogUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogUint represents a LogUint event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogUint struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogUint is a free log retrieval operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogUint(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogUintIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogUintIterator{contract: _GatewayZEVMInboundTest.contract, event: "log_uint", logs: logs, sub: sub}, nil +} + +// WatchLogUint is a free log subscription operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogUint(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogUint) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogUint) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogUint is a log parse operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogUint(log types.Log) (*GatewayZEVMInboundTestLogUint, error) { + event := new(GatewayZEVMInboundTestLogUint) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMInboundTestLogsIterator is returned from FilterLogs and is used to iterate over the raw logs and unpacked data for Logs events raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogsIterator struct { + Event *GatewayZEVMInboundTestLogs // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMInboundTestLogsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMInboundTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMInboundTestLogsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMInboundTestLogsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMInboundTestLogs represents a Logs event raised by the GatewayZEVMInboundTest contract. +type GatewayZEVMInboundTestLogs struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogs is a free log retrieval operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterLogs(opts *bind.FilterOpts) (*GatewayZEVMInboundTestLogsIterator, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "logs") + if err != nil { + return nil, err + } + return &GatewayZEVMInboundTestLogsIterator{contract: _GatewayZEVMInboundTest.contract, event: "logs", logs: logs, sub: sub}, nil +} + +// WatchLogs is a free log subscription operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchLogs(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestLogs) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "logs") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMInboundTestLogs) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "logs", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogs is a log parse operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) ParseLogs(log types.Log) (*GatewayZEVMInboundTestLogs, error) { + event := new(GatewayZEVMInboundTestLogs) + if err := _GatewayZEVMInboundTest.contract.UnpackLog(event, "logs", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/gatewayzevm.t.sol/gatewayzevmoutboundtest.go b/v2/pkg/gatewayzevm.t.sol/gatewayzevmoutboundtest.go new file mode 100644 index 00000000..ea11383c --- /dev/null +++ b/v2/pkg/gatewayzevm.t.sol/gatewayzevmoutboundtest.go @@ -0,0 +1,4567 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package gatewayzevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdInvariantFuzzArtifactSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzArtifactSelector struct { + Artifact string + Selectors [][4]byte +} + +// StdInvariantFuzzInterface is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzInterface struct { + Addr common.Address + Artifacts []string +} + +// StdInvariantFuzzSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzSelector struct { + Addr common.Address + Selectors [][4]byte +} + +// GatewayZEVMOutboundTestMetaData contains all meta data concerning the GatewayZEVMOutboundTest contract. +var GatewayZEVMOutboundTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"IS_TEST\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"failed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setUp\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzArtifactSelector[]\",\"components\":[{\"name\":\"artifact\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetInterfaces\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzInterface[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"artifacts\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"testDeposit\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositAndRevertZRC20AndCallZContract\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositFailsIfSenderNotFungibleModule\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositFailsIfTargetIsFungibleModule\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositFailsIfTargetIsGateway\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositZETAAndCallZContract\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositZETAAndCallZContractFailsIfTargetIsFungibleModule\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositZETAAndCallZContractFailsIfTargetIsGateway\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositZRC20AndCallZContract\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositZRC20AndCallZContractIfTargetIsFungibleModule\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDepositZRC20AndCallZContractIfTargetIsGateway\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testExecuteRevertZContract\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testExecuteRevertZContractIfSenderIsNotFungibleModule\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testExecuteZContract\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testExecuteZContractFailsIfSenderIsNotFungibleModule\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ContextData\",\"inputs\":[{\"name\":\"origin\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"msgSender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ContextDataRevert\",\"inputs\":[{\"name\":\"origin\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"msgSender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"zrc20\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"gasfee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"protocolFlatFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_address\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes32\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_int\",\"inputs\":[{\"name\":\"\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_address\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes32\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_string\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_string\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_uint\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"logs\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedZetaSent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GasFeeTransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientZRC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTarget\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyWZETAOrFungible\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZRC20BurnFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZRC20TransferFailed\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061d73a8061003c6000396000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c80637f924c4e1161012a578063c2725318116100bd578063e20c9f711161008c578063f5a3573311610071578063f5a357331461035c578063fa7626d414610364578063fc79171b1461037157600080fd5b8063e20c9f711461034c578063eba3c49c1461035457600080fd5b8063c27253181461032c578063c324827214610334578063cced12c71461033c578063df690b9a1461034457600080fd5b8063aed71d97116100f9578063aed71d97146102fc578063b0464fdc14610304578063b5508aa91461030c578063ba414fa61461031457600080fd5b80637f924c4e146102c257806385226c81146102ca578063916a17c6146102df57806396d9d876146102f457600080fd5b80633a25c460116101a2578063461fc5af11610171578063461fc5af14610295578063597cfeb01461029d57806366d9a9a0146102a5578063720b9aa9146102ba57600080fd5b80633a25c460146102755780633e5e3c231461027d5780633f7286f41461028557806344b2a40b1461028d57600080fd5b80631ed7831c116101de5780631ed7831c146102325780631fe68797146102505780632ade38801461025857806331d099561461026d57600080fd5b806309f080da146102105780630a9254e41461021a578063104b352214610222578063198d5ca41461022a575b600080fd5b610218610379565b005b61021861056d565b610218610fcf565b6102186111c1565b61023a61147b565b60405161024791906183b7565b60405180910390f35b6102186114dd565b610260611a0c565b6040516102479190618453565b610218611b4e565b610218611d0d565b61023a611ec8565b61023a611f28565b610218611f88565b610218612110565b6102186122ce565b6102ad6126a4565b60405161024791906185b9565b610218612826565b610218612a99565b6102d2612cc9565b6040516102479190618657565b6102e7612d99565b60405161024791906186ce565b610218612e94565b610218612fe7565b6102e76132f3565b6102d26133ee565b61031c6134be565b6040519015158152602001610247565b610218613592565b61021861374b565b610218613904565b610218613aef565b61023a613cad565b610218613d0d565b610218613ecb565b601f5461031c9060ff1681565b610218614082565b600060405160200161038a90618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f2b2add3d0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b15801561045457600080fd5b505af1158015610468573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b1580156104c557600080fd5b505af11580156104d9573d6000803e3d6000fd5b50506020546021546024546040517f5af659670000000000000000000000000000000000000000000000000000000081526001600160a01b039384169550635af65967945061053793879381169260019291169089906004016187e0565b600060405180830381600087803b15801561055157600080fd5b505af1158015610565573d6000803e3d6000fd5b505050505050565b602580547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602680549091166112341790556040516105b3906182ca565b604051809103906000f0801580156105cf573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169182179055604080518082018252600f81527f476174657761795a45564d2e736f6c00000000000000000000000000000000006020820152905160248101929092526106a89160440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de8000000000000000000000000000000000000000000000000000000001790526141b9565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b039384168102919091179182905560208054919092049092167fffffffffffffffffffffffff000000000000000000000000000000000000000090921682178155604080517f3ce4a5bc0000000000000000000000000000000000000000000000000000000081529051633ce4a5bc926004808401939192918290030181865afa15801561076a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078e9190618835565b602780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040516107d2906182d7565b604051809103906000f0801580156107ee573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161781556027546040517f06447d5600000000000000000000000000000000000000000000000000000000815292166004830152737109709ecfa91a80626ff3989d68f67f5b1dd12d916306447d569101600060405180830381600087803b15801561088a57600080fd5b505af115801561089e573d6000803e3d6000fd5b5050505060008060006040516108b3906182e4565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f0801580156108ef573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155602054604051601293600193849360009391921690610945906182f1565b6109549695949392919061885e565b604051809103906000f080158015610970573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081179091556023546040517fee2815ba0000000000000000000000000000000000000000000000000000000081526001600482015260248101929092529091169063ee2815ba90604401600060405180830381600087803b158015610a0757600080fd5b505af1158015610a1b573d6000803e3d6000fd5b50506023546040517fa7cb050700000000000000000000000000000000000000000000000000000000815260016004820181905260248201526001600160a01b03909116925063a7cb05079150604401600060405180830381600087803b158015610a8557600080fd5b505af1158015610a99573d6000803e3d6000fd5b50506027546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152633b9aca006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b158015610b1957600080fd5b505af1158015610b2d573d6000803e3d6000fd5b50505050602260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0600a6040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b8257600080fd5b505af1158015610b96573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600a60248201529116935063095ea7b3925060440190506020604051808303816000875af1158015610c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2e9190618953565b506021546025546040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a060248201529116906347e7ef24906044016020604051808303816000875af1158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190618953565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d2257600080fd5b505af1158015610d36573d6000803e3d6000fd5b50506025546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b158015610dac57600080fd5b505af1158015610dc0573d6000803e3d6000fd5b50506021546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a060248201529116925063095ea7b391506044016020604051808303816000875af1158015610e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e589190618953565b50602260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0600a6040518263ffffffff1660e01b81526004016000604051808303818588803b158015610eaa57600080fd5b505af1158015610ebe573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600a60248201529116935063095ea7b3925060440190506020604051808303816000875af1158015610f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f569190618953565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610fb557600080fd5b505af1158015610fc9573d6000803e3d6000fd5b50505050565b604051600190600090610fe490602001618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561111f57600080fd5b505af1158015611133573d6000803e3d6000fd5b50506020546027546040517f21501a950000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506321501a95935061118a92869289929116908890600401618975565b600060405180830381600087803b1580156111a457600080fd5b505af11580156111b8573d6000803e3d6000fd5b50505050505050565b6021546026546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa15801561122b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124f91906189af565b905061125c6000826141d8565b60255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156112b557600080fd5b505af11580156112c9573d6000803e3d6000fd5b5050604051630618f58760e51b81527f2b2add3d000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561133957600080fd5b505af115801561134d573d6000803e3d6000fd5b50506020546021546026546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810188905290821660448201529116925063f45346dc9150606401600060405180830381600087803b1580156113c557600080fd5b505af11580156113d9573d6000803e3d6000fd5b50506021546026546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015611445573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146991906189af565b90506114766000826141d8565b505050565b606060168054806020026020016040519081016040528092919081815260200182805480156114d357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114b5575b5050505050905090565b6022546027546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015611547573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156b91906189af565b6022546020546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529293506000929116906370a0823190602401602060405180830381865afa1580156115d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fa91906189af565b6024546040519192506001600160a01b0316319060009061161d90602001618765565b60408051601f19818403018152606080840190925260205490911b6bffffffffffffffffffffffff191660808301529150600090806094810160408051808303601f190181529181529082526027546001600160a01b03908116602084015260019282018390526024805492517f81bad6f300000000000000000000000000000000000000000000000000000000815260048101859052908101849052604481018490526064810193909352166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561170b57600080fd5b505af115801561171f573d6000803e3d6000fd5b5050602080546040517fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e945061177a93506001600160a01b03909116910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152908290526027546020546117aa936001600160a01b03928316928c9216906189c8565b60405180910390a160275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561180b57600080fd5b505af115801561181f573d6000803e3d6000fd5b50506020546024546040517f21501a950000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506321501a9593506118769286928c929116908890600401618975565b600060405180830381600087803b15801561189057600080fd5b505af11580156118a4573d6000803e3d6000fd5b50506022546027546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015611910573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193491906189af565b90506119496119438888618a6a565b826141d8565b6022546020546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa1580156119b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d791906189af565b90506119e386826141d8565b611a026119f08987618a7d565b6024546001600160a01b0316316141d8565b5050505050505050565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015611b4557600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015611b2e578382906000526020600020018054611aa190618a90565b80601f0160208091040260200160405190810160405280929190818152602001828054611acd90618a90565b8015611b1a5780601f10611aef57610100808354040283529160200191611b1a565b820191906000526020600020905b815481529060010190602001808311611afd57829003601f168201915b505050505081526020019060010190611a82565b505050508152505081526020019060010190611a30565b50505050905090565b6000604051602001611b5f90618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f2b2add3d0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa791506024015b600060405180830381600087803b158015611c9b57600080fd5b505af1158015611caf573d6000803e3d6000fd5b50506020546021546024546040517f309f50040000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063309f5004945061053793879381169260019291169089906004016187e0565b604051600190600090611d2290602001618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f2b2add3d0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b158015611dec57600080fd5b505af1158015611e00573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b158015611e5d57600080fd5b505af1158015611e71573d6000803e3d6000fd5b50506020546024546040517f21501a950000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506321501a95935061118a92869289929116908890600401618975565b606060188054806020026020016040519081016040528092919081815260200182805480156114d3576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116114b5575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156114d3576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116114b5575050505050905090565b60275460405163ca669fa760e01b81526001600160a01b039091166004820152600190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611fe457600080fd5b505af1158015611ff8573d6000803e3d6000fd5b5050604051630618f58760e51b81527f82d5d76a000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561206857600080fd5b505af115801561207c573d6000803e3d6000fd5b50506020546021546027546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810187905290821660448201529116925063f45346dc91506064015b600060405180830381600087803b1580156120f557600080fd5b505af1158015612109573d6000803e3d6000fd5b5050505050565b600060405160200161212190618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f2b2add3d0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b1580156121eb57600080fd5b505af11580156121ff573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561225c57600080fd5b505af1158015612270573d6000803e3d6000fd5b50506020546021546024546040517fc39aca370000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063c39aca37945061053793879381169260019291169089906004016187e0565b602154602480546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009391909116916370a082319101602060405180830381865afa158015612337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235b91906189af565b90506123686000826141d8565b600060405160200161237990618765565b60408051601f19818403018152606080840190925260205490911b6bffffffffffffffffffffffff191660808301529150600090806094810160408051808303601f190181529181529082526027546001600160a01b03908116602084015260019282018390526024805492517f81bad6f300000000000000000000000000000000000000000000000000000000815260048101859052908101849052604481018490526064810193909352166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561246757600080fd5b505af115801561247b573d6000803e3d6000fd5b5050602080546040517fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e94506124d693506001600160a01b03909116910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f1981840301815290829052602754602054612507936001600160a01b039283169260019216906189c8565b60405180910390a160275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561256857600080fd5b505af115801561257c573d6000803e3d6000fd5b50506020546021546024546040517fc39aca370000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063c39aca3794506125da93879381169260019291169089906004016187e0565b600060405180830381600087803b1580156125f457600080fd5b505af1158015612608573d6000803e3d6000fd5b5050602154602480546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009550921692506370a082319101602060405180830381865afa158015612673573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269791906189af565b9050610fc96001826141d8565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015611b4557838290600052602060002090600202016040518060400160405290816000820180546126fb90618a90565b80601f016020809104026020016040519081016040528092919081815260200182805461272790618a90565b80156127745780601f1061274957610100808354040283529160200191612774565b820191906000526020600020905b81548152906001019060200180831161275757829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561280e57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116127bb5790505b505050505081525050815260200190600101906126c8565b600060405160200161283790618765565b60408051601f19818403018152606080840190925260205490911b6bffffffffffffffffffffffff191660808301529150600090806094810160408051808303601f190181529181529082526027546001600160a01b03908116602084015260019282018390526024805492517f81bad6f300000000000000000000000000000000000000000000000000000000815260048101859052908101849052604481018490526064810193909352166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561292557600080fd5b505af1158015612939573d6000803e3d6000fd5b5050602080546040517fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e945061299493506001600160a01b03909116910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152908290526027546020546129c5936001600160a01b039283169260019216906189c8565b60405180910390a160275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015b600060405180830381600087803b158015612a2757600080fd5b505af1158015612a3b573d6000803e3d6000fd5b50506020546021546024546040517fbcf7f32b0000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063bcf7f32b945061053793879381169260019291169089906004016187e0565b6021546026546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015612b03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2791906189af565b9050612b346000826141d8565b60275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612b8d57600080fd5b505af1158015612ba1573d6000803e3d6000fd5b50506020546021546026546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810188905290821660448201529116925063f45346dc9150606401600060405180830381600087803b158015612c1957600080fd5b505af1158015612c2d573d6000803e3d6000fd5b50506021546026546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015612c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cbd91906189af565b905061147683826141d8565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015611b45578382906000526020600020018054612d0c90618a90565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3890618a90565b8015612d855780601f10612d5a57610100808354040283529160200191612d85565b820191906000526020600020905b815481529060010190602001808311612d6857829003601f168201915b505050505081526020019060010190612ced565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015611b455760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015612e7c57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411612e295790505b50505050508152505081526020019060010190612dbd565b60275460405163ca669fa760e01b81526001600160a01b039091166004820152600190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612ef057600080fd5b505af1158015612f04573d6000803e3d6000fd5b5050604051630618f58760e51b81527f82d5d76a000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b158015612f7457600080fd5b505af1158015612f88573d6000803e3d6000fd5b50506020546021546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101869052911660448201819052925063f45346dc91506064016120db565b602154602480546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009391909116916370a082319101602060405180830381865afa158015613050573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061307491906189af565b90506130816000826141d8565b600060405160200161309290618765565b60408051601f19818403018152606080840190925260205490911b6bffffffffffffffffffffffff191660808301529150600090806094810160408051808303601f190181529181529082526027546001600160a01b03908116602084015260019282018390526024805492517f81bad6f300000000000000000000000000000000000000000000000000000000815260048101859052908101849052604481018490526064810193909352166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561318057600080fd5b505af1158015613194573d6000803e3d6000fd5b5050602080546040517ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e9994894506131ef93506001600160a01b03909116910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f1981840301815290829052602754602054613220936001600160a01b039283169260019216906189c8565b60405180910390a160275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561328157600080fd5b505af1158015613295573d6000803e3d6000fd5b50506020546021546024546040517f5af659670000000000000000000000000000000000000000000000000000000081526001600160a01b039384169550635af6596794506125da93879381169260019291169089906004016187e0565b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015611b455760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156133d657602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116133835790505b50505050508152505081526020019060010190613317565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015611b4557838290600052602060002001805461343190618a90565b80601f016020809104026020016040519081016040528092919081815260200182805461345d90618a90565b80156134aa5780601f1061347f576101008083540402835291602001916134aa565b820191906000526020600020905b81548152906001019060200180831161348d57829003601f168201915b505050505081526020019060010190613412565b60085460009060ff16156134d6575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015613567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358b91906189af565b1415905090565b60006040516020016135a390618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b15801561366d57600080fd5b505af1158015613681573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b1580156136de57600080fd5b505af11580156136f2573d6000803e3d6000fd5b50506020546021546040517fc39aca370000000000000000000000000000000000000000000000000000000081526001600160a01b03928316945063c39aca3793506105379286921690600190869089906004016187e0565b600060405160200161375c90618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b15801561382657600080fd5b505af115801561383a573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561389757600080fd5b505af11580156138ab573d6000803e3d6000fd5b50506020546021546040517f5af659670000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635af6596793506105379286921690600190869089906004016187e0565b600060405160200161391590618765565b60408051601f19818403018152606080840190925260205490911b6bffffffffffffffffffffffff191660808301529150600090806094810160408051808303601f190181529181529082526027546001600160a01b03908116602084015260019282018390526024805492517f81bad6f300000000000000000000000000000000000000000000000000000000815260048101859052908101849052604481018490526064810193909352166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015613a0357600080fd5b505af1158015613a17573d6000803e3d6000fd5b5050602080546040517ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999489450613a7293506001600160a01b03909116910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f1981840301815290829052602754602054613aa3936001600160a01b039283169260019216906189c8565b60405180910390a160275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401611c81565b6000604051602001613b0090618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b158015613bca57600080fd5b505af1158015613bde573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b158015613c3b57600080fd5b505af1158015613c4f573d6000803e3d6000fd5b50506020546021546027546040517fc39aca370000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063c39aca37945061053793879381169260019291169089906004016187e0565b606060158054806020026020016040519081016040528092919081815260200182805480156114d3576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116114b5575050505050905090565b6000604051602001613d1e90618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b158015613de857600080fd5b505af1158015613dfc573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b158015613e5957600080fd5b505af1158015613e6d573d6000803e3d6000fd5b50506020546021546027546040517f5af659670000000000000000000000000000000000000000000000000000000081526001600160a01b039384169550635af65967945061053793879381169260019291169089906004016187e0565b604051600190600090613ee090602001618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b158015613faa57600080fd5b505af1158015613fbe573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561401b57600080fd5b505af115801561402f573d6000803e3d6000fd5b50506020546040517f21501a950000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692506321501a95915061118a908490879085908890600401618975565b600060405160200161409390618765565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f2b2add3d0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b15801561415d57600080fd5b505af1158015614171573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401612a0d565b60006141c36182fe565b6141ce848483614257565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b15801561424357600080fd5b505afa158015610565573d6000803e3d6000fd5b60008061426485846142d2565b90506142c76040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f787900000081525082866040516020016142b2929190618add565b604051602081830303815290604052856142de565b9150505b9392505050565b60006142cb838361430c565b60c08101515160009015614302576142fb84848460c00151614327565b90506142cb565b6142fb84846144cd565b600061431883836145b8565b6142cb838360200151846142de565b6000806143326145c8565b90506000614340868361469b565b905060006143578260600151836020015185614b41565b9050600061436783838989614d53565b9050600061437482615bd0565b602081015181519192509060030b156143e75789826040015160405160200161439e929190618aff565b60408051601f19818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526143de91600401618b80565b60405180910390fd5b600061442a6040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001615d9f565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d9061447d908490600401618b80565b602060405180830381865afa15801561449a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144be9190618835565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590614522908790600401618b80565b600060405180830381865afa15801561453f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526145679190810190618c7b565b905060006145958285604051602001614581929190618cb0565b604051602081830303815290604052615f9f565b90506001600160a01b0381166141ce57848460405160200161439e929190618cdf565b6145c482826000615fb2565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c9061464f908490600401618d8a565b600060405180830381865afa15801561466c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526146949190810190618dd1565b9250505090565b6146cd6040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d90506147186040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b614721856160b5565b602082015260006147318661649a565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015614773573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261479b9190810190618dd1565b868385602001516040516020016147b59493929190618e1a565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb119061480d908590600401618b80565b600060405180830381865afa15801561482a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526148529190810190618dd1565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f69061489a908490600401618f1e565b602060405180830381865afa1580156148b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148db9190618953565b6148f0578160405160200161439e9190618f70565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890614935908490600401619002565b600060405180830381865afa158015614952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261497a9190810190618dd1565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f6906149c1908490600401619054565b602060405180830381865afa1580156149de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a029190618953565b15614a97576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890614a4c908490600401619054565b600060405180830381865afa158015614a69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614a919190810190618dd1565b60408501525b846001600160a01b03166349c4fac8828660000151604051602001614abc91906190a6565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401614ae8929190619112565b600060405180830381865afa158015614b05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614b2d9190810190618dd1565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b6060815260200190600190039081614b5d5790505090506040518060400160405280600481526020017f677265700000000000000000000000000000000000000000000000000000000081525081600081518110614bbd57614bbd619137565b60200260200101819052506040518060400160405280600381526020017f2d726c000000000000000000000000000000000000000000000000000000000081525081600181518110614c1157614c11619137565b602002602001018190525084604051602001614c2d9190619166565b60405160208183030381529060405281600281518110614c4f57614c4f619137565b602002602001018190525082604051602001614c6b91906191d2565b60405160208183030381529060405281600381518110614c8d57614c8d619137565b60200260200101819052506000614ca382615bd0565b602080820151604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000008185019081528251808401845260008082529086015282518084019093529051825292810192909252919250614d34906040805180820182526000808252602091820152815180830190925284518252808501908201529061671d565b614d49578560405160200161439e9190619213565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9015614da3565b511590565b614f1757826020015115614e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a4016143de565b8260c0015115614f17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a4016143de565b6040805160ff8082526120008201909252600091816020015b6060815260200190600190039081614f3057905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280614f8b906192a4565b935060ff1681518110614fa057614fa0619137565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e3700000000000000000000000000000000000000815250604051602001614ff191906192c3565b60405160208183030381529060405282828061500c906192a4565b935060ff168151811061502157615021619137565b60200260200101819052506040518060400160405280600681526020017f6465706c6f79000000000000000000000000000000000000000000000000000081525082828061506e906192a4565b935060ff168151811061508357615083619137565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d650000000000000000000000000000000000008152508282806150d0906192a4565b935060ff16815181106150e5576150e5619137565b60200260200101819052508760200151828280615101906192a4565b935060ff168151811061511657615116619137565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e747261637450617468000000000000000000000000000000000000815250828280615163906192a4565b935060ff168151811061517857615178619137565b602090810291909101015287518282615190816192a4565b935060ff16815181106151a5576151a5619137565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e496400000000000000000000000000000000000000000000008152508282806151f2906192a4565b935060ff168151811061520757615207619137565b602002602001018190525061521b4661677e565b8282615226816192a4565b935060ff168151811061523b5761523b619137565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c650000000000000000000000000000000000815250828280615288906192a4565b935060ff168151811061529d5761529d619137565b6020026020010181905250868282806152b5906192a4565b935060ff16815181106152ca576152ca619137565b60209081029190910101528551156153f15760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f646500000000000000000000006020820152828261531b816192a4565b935060ff168151811061533057615330619137565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d90615380908990600401618b80565b600060405180830381865afa15801561539d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526153c59190810190618dd1565b82826153d0816192a4565b935060ff16815181106153e5576153e5619137565b60200260200101819052505b8460200151156154c15760408051808201909152601281527f2d2d766572696679536f75726365436f646500000000000000000000000000006020820152828261543a816192a4565b935060ff168151811061544f5761544f619137565b60200260200101819052506040518060400160405280600581526020017f66616c736500000000000000000000000000000000000000000000000000000081525082828061549c906192a4565b935060ff16815181106154b1576154b1619137565b6020026020010181905250615688565b6154f9614d9e8660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b61558c5760408051808201909152600d81527f2d2d6c6963656e736554797065000000000000000000000000000000000000006020820152828261553c816192a4565b935060ff168151811061555157615551619137565b60200260200101819052508460a001516040516020016155719190619166565b60405160208183030381529060405282828061549c906192a4565b8460c001511580156155cf5750604080890151815180830183526000808252602091820152825180840190935281518352908101908201526155cd90511590565b155b156156885760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282615613816192a4565b935060ff168151811061562857615628619137565b602002602001018190525061563c8861681e565b60405160200161564c9190619166565b604051602081830303815290604052828280615667906192a4565b935060ff168151811061567c5761567c619137565b60200260200101819052505b604080860151815180830183526000808252602091820152825180840190935281518352908101908201526156bc90511590565b6157515760408051808201909152600b81527f2d2d72656c617965724964000000000000000000000000000000000000000000602082015282826156ff816192a4565b935060ff168151811061571457615714619137565b60200260200101819052508460400151828280615730906192a4565b935060ff168151811061574557615745619137565b60200260200101819052505b6060850151156158725760408051808201909152600681527f2d2d73616c7400000000000000000000000000000000000000000000000000006020820152828261579a816192a4565b935060ff16815181106157af576157af619137565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa15801561581e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526158469190810190618dd1565b8282615851816192a4565b935060ff168151811061586657615866619137565b60200260200101819052505b60e085015151156159195760408051808201909152600a81527f2d2d6761734c696d697400000000000000000000000000000000000000000000602082015282826158bc816192a4565b935060ff16815181106158d1576158d1619137565b60200260200101819052506158ed8560e001516000015161677e565b82826158f8816192a4565b935060ff168151811061590d5761590d619137565b60200260200101819052505b60e085015160200151156159c35760408051808201909152600a81527f2d2d67617350726963650000000000000000000000000000000000000000000060208201528282615966816192a4565b935060ff168151811061597b5761597b619137565b60200260200101819052506159978560e001516020015161677e565b82826159a2816192a4565b935060ff16815181106159b7576159b7619137565b60200260200101819052505b60e08501516040015115615a6d5760408051808201909152600e81527f2d2d6d617846656550657247617300000000000000000000000000000000000060208201528282615a10816192a4565b935060ff1681518110615a2557615a25619137565b6020026020010181905250615a418560e001516040015161677e565b8282615a4c816192a4565b935060ff1681518110615a6157615a61619137565b60200260200101819052505b60e08501516060015115615b175760408051808201909152601681527f2d2d6d61785072696f726974794665655065724761730000000000000000000060208201528282615aba816192a4565b935060ff1681518110615acf57615acf619137565b6020026020010181905250615aeb8560e001516060015161677e565b8282615af6816192a4565b935060ff1681518110615b0b57615b0b619137565b60200260200101819052505b60008160ff1667ffffffffffffffff811115615b3557615b35618b93565b604051908082528060200260200182016040528015615b6857816020015b6060815260200190600190039081615b535790505b50905060005b8260ff168160ff161015615bc157838160ff1681518110615b9157615b91619137565b6020026020010151828260ff1681518110615bae57615bae619137565b6020908102919091010152600101615b6e565b5093505050505b949350505050565b615bf76040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c91615c7d9186910161932e565b600060405180830381865afa158015615c9a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615cc29190810190618dd1565b90506000615cd0868361730d565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b8152600401615d009190618657565b6000604051808303816000875af1158015615d1f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615d479190810190619375565b805190915060030b15801590615d605750602081015151155b8015615d6f5750604081015151155b15614d495781600081518110615d8757615d87619137565b602002602001015160405160200161439e919061942b565b60606000615dd48560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528651825280870190820152909150615e0b9082905b90617462565b15615f68576000615e8882615e8284615e7c615e4e8a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90617489565b906174eb565b604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615eec908290617462565b15615f5657604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615f53905b8290617570565b90505b615f5f81617596565b925050506142cb565b8215615f8157848460405160200161439e929190619617565b50506040805160208101909152600081526142cb565b509392505050565b6000808251602084016000f09392505050565b8160a0015115615fc157505050565b6000615fce8484846175ff565b90506000615fdb82615bd0565b602081015181519192509060030b1580156160775750604080518082018252600781527f53554343455353000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261607790604080518082018252600080825260209182015281518083019092528451825280850190820152615e05565b1561608457505050505050565b604082015151156160a457816040015160405160200161439e91906196be565b8060405160200161439e919061971c565b606060006160ea8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061614f905b829061671d565b156161be57604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526142cb906161b9908390617b9a565b617596565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616220905b8290617c24565b6001036162ed57604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261628690615f4c565b50604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526142cb906161b9905b8390617570565b604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261634c90616148565b1561648357604080518082018252600181527f2f000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201819052845180860190955292518452830152906163b4908390617cbe565b9050600081600183516163c79190618a6a565b815181106163d7576163d7619137565b6020026020010151905061647a6161b961644d6040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252855182528086019082015290617b9a565b95945050505050565b8260405160200161439e9190619787565b50919050565b606060006164cf8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061653190616148565b1561653f576142cb81617596565b604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261659e90616219565b60010361660857604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526142cb906161b9906162e6565b604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261666790616148565b1561648357604080518082018252600181527f2f000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201819052845180860190955292518452830152906166cf908390617cbe565b905060018151111561670b5780600282516166ea9190618a6a565b815181106166fa576166fa619137565b602002602001015192505050919050565b508260405160200161439e9190619787565b805182516000911115616732575060006141d2565b8151835160208501516000929161674891618a7d565b6167529190618a6a565b9050826020015181036167695760019150506141d2565b82516020840151819020912014905092915050565b6060600061678b83617d63565b600101905060008167ffffffffffffffff8111156167ab576167ab618b93565b6040519080825280601f01601f1916602001820160405280156167d5576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846167df57509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e53454400000000000000000000000000000000000000000000818401908152855180870187528381528401929092528451808601909552518452908301526060916168aa905b8290617e45565b156168ea57505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e7365000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616949906168a3565b1561698957505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d49540000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526169e8906168a3565b15616a2857505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c79000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616a87906168a3565b80616aec5750604080518082018252601081527f47504c2d322e302d6f722d6c617465720000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616aec906168a3565b15616b2c57505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c79000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616b8b906168a3565b80616bf05750604080518082018252601081527f47504c2d332e302d6f722d6c617465720000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616bf0906168a3565b15616c3057505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616c8f906168a3565b80616cf45750604080518082018252601181527f4c47504c2d322e312d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616cf4906168a3565b15616d3457505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616d93906168a3565b80616df85750604080518082018252601181527f4c47504c2d332e302d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616df8906168a3565b15616e3857505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c61757365000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616e97906168a3565b15616ed757505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c61757365000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616f36906168a3565b15616f7657505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e300000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616fd5906168a3565b1561701557505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e300000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617074906168a3565b156170b457505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e300000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617113906168a3565b1561715357505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526171b2906168a3565b806172175750604080518082018252601181527f4147504c2d332e302d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617217906168a3565b1561725757505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e31000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526172b6906168a3565b156172f657505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b6040808401518451915161439e9290602001619865565b60608060005b8451811015617398578185828151811061732f5761732f619137565b6020026020010151604051602001617348929190618cb0565b6040516020818303038152906040529150600185516173679190618a6a565b8114617390578160405160200161737e91906199ce565b60405160208183030381529060405291505b600101617313565b5060408051600380825260808201909252600091816020015b60608152602001906001900390816173b157905050905083816000815181106173dc576173dc619137565b60200260200101819052506040518060400160405280600281526020017f2d630000000000000000000000000000000000000000000000000000000000008152508160018151811061743057617430619137565b6020026020010181905250818160028151811061744f5761744f619137565b6020908102919091010152949350505050565b60208083015183518351928401516000936174809291849190617e59565b14159392505050565b604080518082019091526000808252602082015260006174bb8460000151856020015185600001518660200151617f6a565b90508360200151816174cd9190618a6a565b845185906174dc908390618a6a565b90525060208401525090919050565b60408051808201909152600080825260208201528151835110156175105750816141d2565b60208083015190840151600191146175375750815160208481015190840151829020919020145b80156175685782518451859061754e908390618a6a565b9052508251602085018051617564908390618a7d565b9052505b509192915050565b604080518082019091526000808252602082015261758f83838361808a565b5092915050565b60606000826000015167ffffffffffffffff8111156175b7576175b7618b93565b6040519080825280601f01601f1916602001820160405280156175e1576020820181803683370190505b509050600060208201905061758f8185602001518660000151618135565b6060600061760b6145c8565b6040805160ff808252612000820190925291925060009190816020015b606081526020019060019003908161762857905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280617683906192a4565b935060ff168151811061769857617698619137565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e33000000000000000000000000000000000000000000000000008152506040516020016176e99190619a0f565b604051602081830303815290604052828280617704906192a4565b935060ff168151811061771957617719619137565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280617766906192a4565b935060ff168151811061777b5761777b619137565b60200260200101819052508260405160200161779791906191d2565b6040516020818303038152906040528282806177b2906192a4565b935060ff16815181106177c7576177c7619137565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280617814906192a4565b935060ff168151811061782957617829619137565b602002602001018190525061783e87846181af565b8282617849816192a4565b935060ff168151811061785e5761785e619137565b60209081029190910101528551511561790a5760408051808201909152600b81527f2d2d7265666572656e6365000000000000000000000000000000000000000000602082015282826178b0816192a4565b935060ff16815181106178c5576178c5619137565b60200260200101819052506178de8660000151846181af565b82826178e9816192a4565b935060ff16815181106178fe576178fe619137565b60200260200101819052505b8560800151156179785760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282617953816192a4565b935060ff168151811061796857617968619137565b60200260200101819052506179de565b84156179de5760408051808201909152601281527f2d2d726571756972655265666572656e63650000000000000000000000000000602082015282826179bd816192a4565b935060ff16815181106179d2576179d2619137565b60200260200101819052505b60408601515115617a7a5760408051808201909152600d81527f2d2d756e73616665416c6c6f770000000000000000000000000000000000000060208201528282617a28816192a4565b935060ff1681518110617a3d57617a3d619137565b60200260200101819052508560400151828280617a59906192a4565b935060ff1681518110617a6e57617a6e619137565b60200260200101819052505b856060015115617ae45760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d657300000000000000000000000060208201528282617ac3816192a4565b935060ff1681518110617ad857617ad8619137565b60200260200101819052505b60008160ff1667ffffffffffffffff811115617b0257617b02618b93565b604051908082528060200260200182016040528015617b3557816020015b6060815260200190600190039081617b205790505b50905060005b8260ff168160ff161015617b8e57838160ff1681518110617b5e57617b5e619137565b6020026020010151828260ff1681518110617b7b57617b7b619137565b6020908102919091010152600101617b3b565b50979650505050505050565b6040805180820190915260008082526020820152815183511015617bbf5750816141d2565b81518351602085015160009291617bd591618a7d565b617bdf9190618a6a565b60208401519091506001908214617c00575082516020840151819020908220145b8015617c1b57835185518690617c17908390618a6a565b9052505b50929392505050565b6000808260000151617c488560000151866020015186600001518760200151617f6a565b617c529190618a7d565b90505b83516020850151617c669190618a7d565b811161758f5781617c7681619a54565b9250508260000151617cad856020015183617c919190618a6a565b8651617c9d9190618a6a565b8386600001518760200151617f6a565b617cb79190618a7d565b9050617c55565b60606000617ccc8484617c24565b617cd7906001618a7d565b67ffffffffffffffff811115617cef57617cef618b93565b604051908082528060200260200182016040528015617d2257816020015b6060815260200190600190039081617d0d5790505b50905060005b8151811015615f9757617d3e6161b98686617570565b828281518110617d5057617d50619137565b6020908102919091010152600101617d28565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310617dac577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310617dd8576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310617df657662386f26fc10000830492506010015b6305f5e1008310617e0e576305f5e100830492506008015b6127108310617e2257612710830492506004015b60648310617e34576064830492506002015b600a83106141d25760010192915050565b6000617e5183836181ef565b159392505050565b600080858411617f605760208411617f0c5760008415617ea4576001617e80866020618a6a565b617e8b906008619a6e565b617e96906002619b6c565b617ea09190618a6a565b1990505b8351811685617eb38989618a7d565b617ebd9190618a6a565b805190935082165b818114617ef757878411617edf5787945050505050615bc8565b83617ee981619b78565b945050828451169050617ec5565b617f018785618a7d565b945050505050615bc8565b838320617f198588618a6a565b617f239087618a7d565b91505b858210617f5e57848220808203617f4b57617f418684618a7d565b9350505050615bc8565b617f56600184618a6a565b925050617f26565b505b5092949350505050565b6000838186851161807557602085116180245760008515617fb6576001617f92876020618a6a565b617f9d906008619a6e565b617fa8906002619b6c565b617fb29190618a6a565b1990505b84518116600087617fc78b8b618a7d565b617fd19190618a6a565b855190915083165b82811461801657818610617ffe57617ff18b8b618a7d565b9650505050505050615bc8565b8561800881619a54565b965050838651169050617fd9565b859650505050505050615bc8565b508383206000905b6180368689618a6a565b8211618073578583208082036180525783945050505050615bc8565b61805d600185618a7d565b935050818061806b90619a54565b92505061802c565b505b61807f8787618a7d565b979650505050505050565b604080518082019091526000808252602082015260006180bc8560000151866020015186600001518760200151617f6a565b6020808701805191860191909152519091506180d89082618a6a565b8352845160208601516180eb9190618a7d565b81036180fa576000855261812c565b835183516181089190618a7d565b85518690618117908390618a6a565b90525083516181269082618a7d565b60208601525b50909392505050565b6020811061816d578151835261814c602084618a7d565b9250618159602083618a7d565b9150618166602082618a6a565b9050618135565b600019811561819c576001618183836020618a6a565b61818f90610100619b6c565b6181999190618a6a565b90505b9151835183169219169190911790915250565b606060006181bd848461469b565b80516020808301516040519394506181d793909101619b8f565b60405160208183030381529060405291505092915050565b8151815160009190811115618202575081515b6020808501519084015160005b838110156182bb578251825180821461828b57600019602087101561826a5760018461823c896020618a6a565b6182469190618a7d565b618251906008619a6e565b61825c906002619b6c565b6182669190618a6a565b1990505b81811683821681810391146182885797506141d29650505050505050565b50505b618296602086618a7d565b94506182a3602085618a7d565b935050506020816182b49190618a7d565b905061820f565b5084518651614d499190619be7565b610b6780619c0883390190565b61053f8061a76f83390190565b61106f8061acae83390190565b6119e88061bd1d83390190565b6040518060e00160405280606081526020016060815260200160608152602001600015158152602001600015158152602001600015158152602001618341618346565b905290565b604051806101000160405280600015158152602001600015158152602001606081526020016000801916815260200160608152602001606081526020016000151581526020016183416040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b818110156183f85783516001600160a01b03168352602093840193909201916001016183d1565b509095945050505050565b60005b8381101561841e578181015183820152602001618406565b50506000910152565b6000815180845261843f816020860160208601618403565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561854f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015618535577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a850301835261851f848651618427565b60209586019590945092909201916001016184e5565b50919750505060209485019492909201915060010161847b565b50929695505050505050565b600081518084526020840193506020830160005b828110156185af5781517fffffffff000000000000000000000000000000000000000000000000000000001686526020958601959091019060010161856f565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561854f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281518051604087526186256040880182618427565b9050602082015191508681036020880152618640818361855b565b9650505060209384019391909101906001016185e1565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561854f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184526186b9858351618427565b9450602093840193919091019060010161867f565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561854f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b038151168652602081015190506040602087015261874f604087018261855b565b95505060209384019391909101906001016186f6565b6020815260006141d260208301600581527f68656c6c6f000000000000000000000000000000000000000000000000000000602082015260400190565b60008151606084526187b76060850182618427565b90506001600160a01b036020840151166020850152604083015160408501528091505092915050565b60a0815260006187f360a08301886187a2565b6001600160a01b03871660208401528560408401526001600160a01b038516606084015282810360808401526188298185618427565b98975050505050505050565b60006020828403121561884757600080fd5b81516001600160a01b03811681146142cb57600080fd5b610100815260056101008201527f544f4b454e000000000000000000000000000000000000000000000000000000610120820152610140602082015260036101408201527f544b4e000000000000000000000000000000000000000000000000000000000061016082015260006101808201905060ff8816604083015286606083015260038610618918577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8560808301528460a083015261893960c08301856001600160a01b03169052565b6001600160a01b03831660e0830152979650505050505050565b60006020828403121561896557600080fd5b815180151581146142cb57600080fd5b60808152600061898860808301876187a2565b8560208401526001600160a01b0385166040840152828103606084015261807f8185618427565b6000602082840312156189c157600080fd5b5051919050565b60a0815260006189db60a0830187618427565b6001600160a01b03861660208401528460408401526001600160a01b0384166060840152828103608084015261807f81600581527f68656c6c6f000000000000000000000000000000000000000000000000000000602082015260400190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156141d2576141d2618a3b565b808201808211156141d2576141d2618a3b565b600181811c90821680618aa457607f821691505b602082108103616494577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6001600160a01b0383168152604060208201526000615bc86040830184618427565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351618b3781601a850160208801618403565b7f3a20000000000000000000000000000000000000000000000000000000000000601a918401918201528351618b7481601c840160208801618403565b01601c01949350505050565b6020815260006142cb6020830184618427565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715618be557618be5618b93565b60405290565b60008067ffffffffffffffff841115618c0657618c06618b93565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715618c3557618c35618b93565b604052838152905080828401851015618c4d57600080fd5b615f97846020830185618403565b600082601f830112618c6c57600080fd5b6142cb83835160208501618beb565b600060208284031215618c8d57600080fd5b815167ffffffffffffffff811115618ca457600080fd5b6141ce84828501618c5b565b60008351618cc2818460208801618403565b835190830190618cd6818360208801618403565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351618d1781601a850160208801618403565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a918401918201528351618d54816033840160208801618403565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f555400000000000000000000000000000000000000000060608201526080602082015260006142cb6080830184618427565b600060208284031215618de357600080fd5b815167ffffffffffffffff811115618dfa57600080fd5b8201601f81018413618e0b57600080fd5b6141ce84825160208401618beb565b60008551618e2c818460208a01618403565b7f2f000000000000000000000000000000000000000000000000000000000000009083019081528551618e66816001840160208a01618403565b7f2f00000000000000000000000000000000000000000000000000000000000000600192909101918201528451618ea4816002840160208901618403565b6001818301019150507f2f0000000000000000000000000000000000000000000000000000000000000060018201528351618ee6816002840160208801618403565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b604081526000618f316040830184618427565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e2061727469666163742000815260008251618fa881601f850160208701618403565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b6040815260006190156040830184618427565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b6040815260006190676040830184618427565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b270000000000000000000000008152600082516190de816014850160208701618403565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b6040815260006191256040830185618427565b82810360208401526142c78185618427565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f220000000000000000000000000000000000000000000000000000000000000081526000825161919e816001850160208701618403565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b600082516191e4818460208701618403565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e74726163742000000000000000000000000000000000000000000060408201526000825161929781604b850160208701618403565b91909101604b0192915050565b600060ff821660ff81036192ba576192ba618a3b565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c69400000000000000000000000000000000000000000000000602082015260008251619321816029850160208701618403565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f504154480000000000000000000060608201526080602082015260006142cb6080830184618427565b60006020828403121561938757600080fd5b815167ffffffffffffffff81111561939e57600080fd5b8201606081850312156193b057600080fd5b6193b8618bc2565b81518060030b81146193c957600080fd5b8152602082015167ffffffffffffffff8111156193e557600080fd5b6193f186828501618c5b565b602083015250604082015167ffffffffffffffff81111561941157600080fd5b61941d86828501618c5b565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f2200000000000000000000000000000000000000000000000000000000000000602082015260008251619489816021850160208701618403565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f2700000000000000000000000000000000000000000000000000000000000000602082015260008351619675816021850160208801618403565b7f2720696e206f75747075743a200000000000000000000000000000000000000060219184019182015283516196b281602e840160208801618403565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a200000000000000000000000000000000000000000000000602082015260008251619321816029850160208701618403565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a00000000000000000000000000000000000000000000000000000000000060208201526000825161977a816022850160208701618403565b9190910160220192915050565b7f436f6e7472616374206e616d65200000000000000000000000000000000000008152600082516197bf81600e850160208701618403565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b7f53504458206c6963656e7365206964656e74696669657220000000000000000081526000835161989d816018850160208801618403565b7f20696e200000000000000000000000000000000000000000000000000000000060189184019182015283516198da81601c840160208801618403565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b600082516199e0818460208701618403565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f72654000000000815260008251619a4781601c850160208701618403565b91909101601c0192915050565b60006000198203619a6757619a67618a3b565b5060010190565b80820281158282048414176141d2576141d2618a3b565b6001815b6001841115619ac057808504811115619aa457619aa4618a3b565b6001841615619ab257908102905b60019390931c928002619a89565b935093915050565b600082619ad7575060016141d2565b81619ae4575060006141d2565b8160018114619afa5760028114619b0457619b20565b60019150506141d2565b60ff841115619b1557619b15618a3b565b50506001821b6141d2565b5060208310610133831016604e8410600b8410161715619b43575081810a6141d2565b619b506000198484619a85565b8060001904821115619b6457619b64618a3b565b029392505050565b60006142cb8383619ac8565b600081619b8757619b87618a3b565b506000190190565b60008351619ba1818460208801618403565b7f3a000000000000000000000000000000000000000000000000000000000000009083019081528351619bdb816001840160208801618403565b01600101949350505050565b818103600083128015838313168383128216171561758f5761758f618a3b56fe60c0604052600d60809081526c2bb930b83832b21022ba3432b960991b60a05260009061002c9082610114565b506040805180820190915260048152630ae8aa8960e31b60208201526001906100559082610114565b506002805460ff1916601217905534801561006f57600080fd5b506101d2565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009f57607f821691505b6020821081036100bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561010f57806000526020600020601f840160051c810160208510156100ec5750805b601f840160051c820191505b8181101561010c57600081556001016100f8565b50505b505050565b81516001600160401b0381111561012d5761012d610075565b6101418161013b845461008b565b846100c5565b6020601f821160018114610175576000831561015d5750848201515b600019600385901b1c1916600184901b17845561010c565b600084815260208120601f198516915b828110156101a55787850151825560209485019460019092019101610185565b50848210156101c35786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610986806101e16000396000f3fe6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146101fa578063d0e30db01461021a578063dd62ed3e1461022257600080fd5b8063313ce5671461018c57806370a08231146101b857806395d89b41146101e557600080fd5b806318160ddd116100a557806318160ddd1461012f57806323b872dd1461014c5780632e1a7d4d1461016c57600080fd5b806306fdde03146100d4578063095ea7b3146100ff57600080fd5b366100cf576100cd61025a565b005b600080fd5b3480156100e057600080fd5b506100e96102b5565b6040516100f69190610745565b60405180910390f35b34801561010b57600080fd5b5061011f61011a3660046107da565b610343565b60405190151581526020016100f6565b34801561013b57600080fd5b50475b6040519081526020016100f6565b34801561015857600080fd5b5061011f610167366004610804565b6103bd565b34801561017857600080fd5b506100cd610187366004610841565b610647565b34801561019857600080fd5b506002546101a69060ff1681565b60405160ff90911681526020016100f6565b3480156101c457600080fd5b5061013e6101d336600461085a565b60036020526000908152604090205481565b3480156101f157600080fd5b506100e9610724565b34801561020657600080fd5b5061011f6102153660046107da565b610731565b6100cd61025a565b34801561022e57600080fd5b5061013e61023d366004610875565b600460209081526000928352604080842090915290825290205481565b33600090815260036020526040812080543492906102799084906108d7565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102c2906108ea565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee906108ea565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103ab9086815260200190565b60405180910390a35060015b92915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081205482111561042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600060248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841633148015906104a1575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105605773ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033845290915290205482111561051a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091528120805484929061055a90849061093d565b90915550505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061059590849061093d565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080548492906105cf9084906108d7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161063591815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561069a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b33600090815260036020526040812080548392906106b990849061093d565b9091555050604051339082156108fc029083906000818181858888f193505050501580156106eb573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b600180546102c2906108ea565b600061073e3384846103bd565b9392505050565b602081526000825180602084015260005b818110156107735760208186018101516040868401015201610756565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107d557600080fd5b919050565b600080604083850312156107ed57600080fd5b6107f6836107b1565b946020939093013593505050565b60008060006060848603121561081957600080fd5b610822846107b1565b9250610830602085016107b1565b929592945050506040919091013590565b60006020828403121561085357600080fd5b5035919050565b60006020828403121561086c57600080fd5b61073e826107b1565b6000806040838503121561088857600080fd5b610891836107b1565b915061089f602084016107b1565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156103b7576103b76108a8565b600181811c908216806108fe57607f821691505b602082108103610937577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b818103818111156103b7576103b76108a856fea264697066735822122008d7fc4e09519c5dd9f356b03596f6829a151d0bc7682533f9ceab4e459f5ee264736f6c634300081a00336080604052348015600f57600080fd5b506105208061001f6000396000f3fe60806040526004361061002a5760003560e01c806369582bee14610033578063de43156e1461005357005b3661003157005b005b34801561003f57600080fd5b5061003161004e3660046101ba565b610073565b34801561005f57600080fd5b5061003161006e3660046101ba565b6100ee565b6060811561008a5761008782840184610273565b90505b7ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999486100b58780610369565b6100c560408a0160208b016103ce565b896040013533866040516100de969594939291906103f0565b60405180910390a1505050505050565b606081156101055761010282840184610273565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e6100b58780610369565b60006060828403121561014257600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461016c57600080fd5b919050565b60008083601f84011261018357600080fd5b50813567ffffffffffffffff81111561019b57600080fd5b6020830191508360208285010111156101b357600080fd5b9250929050565b6000806000806000608086880312156101d257600080fd5b853567ffffffffffffffff8111156101e957600080fd5b6101f588828901610130565b95505061020460208701610148565b935060408601359250606086013567ffffffffffffffff81111561022757600080fd5b61023388828901610171565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561028557600080fd5b813567ffffffffffffffff81111561029c57600080fd5b8201601f810184136102ad57600080fd5b803567ffffffffffffffff8111156102c7576102c7610244565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561033357610333610244565b60405281815282820160200186101561034b57600080fd5b81602084016020830137600091810160200191909152949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261039e57600080fd5b83018035915067ffffffffffffffff8211156103b957600080fd5b6020019150368190038213156101b357600080fd5b6000602082840312156103e057600080fd5b6103e982610148565b9392505050565b60a081528560a0820152858760c0830137600060c0878301015260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f880116820173ffffffffffffffffffffffffffffffffffffffff8716602084015285604084015273ffffffffffffffffffffffffffffffffffffffff8516606084015260c083820301608084015283518060c083015260005b818110156104a557602081870181015184830160e0015201610488565b50600060e0838301810191909152601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101019897505050505050505056fea2646970667358221220f4d1ccb9c8450e782e1c77412473fd37637a5c83a2a3272307d8c8bc8e8c7a3364736f6c634300081a003360c060405234801561001057600080fd5b5060405161106f38038061106f83398101604081905261002f916100db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0385811691909117909155828116608052811660a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac590600090a150505061011e565b80516001600160a01b03811681146100d657600080fd5b919050565b6000806000606084860312156100f057600080fd5b6100f9846100bf565b9250610107602085016100bf565b9150610115604085016100bf565b90509250925092565b60805160a051610f2561014a60003960006101e50152600081816102b9015261045b0152610f256000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806397770dff11610097578063c63585cc11610066578063c63585cc14610273578063d7fd7afb14610286578063d936a012146102b4578063ee2815ba146102db57600080fd5b806397770dff1461021a578063a7cb05071461022d578063c39aca3714610240578063c62178ac1461025357600080fd5b8063513a9c05116100d3578063513a9c051461018a578063569541b9146101c0578063842da36d146101e057806391dd645f1461020757600080fd5b80630be15547146100fa5780631f0e251b1461015a5780633ce4a5bc1461016f575b600080fd5b610130610108366004610bd1565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61016d610168366004610c13565b6102ee565b005b61013073735b14bb79463307aacbed86daf3322b1e6226ab81565b610130610198366004610bd1565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6003546101309073ffffffffffffffffffffffffffffffffffffffff1681565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d610215366004610c35565b610402565b61016d610228366004610c13565b610526565b61016d61023b366004610c61565b610633565b61016d61024e366004610c83565b6106ce565b6004546101309073ffffffffffffffffffffffffffffffffffffffff1681565b610130610281366004610d53565b6108cd565b6102a6610294366004610bd1565b60006020819052908152604090205481565b604051908152602001610151565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d6102e9366004610c35565b610a02565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461033b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610388576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c906020015b60405180910390a150565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461044f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354600090610497907f00000000000000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff16846108cd565b60008481526002602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251878152918201529192507f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e910160405180910390a1505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610573576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166105c0576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e906020016103f7565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610680576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152602081815260409182902083905581518481529081018390527f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d91015b60405180910390a15050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461071b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831673735b14bb79463307aacbed86daf3322b1e6226ab1480610768575073ffffffffffffffffffffffffffffffffffffffff831630145b1561079f576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef2400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015610814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108389190610d96565b506040517fde43156e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063de43156e906108939089908990899088908890600401610e01565b600060405180830381600087803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b50505050505050505050565b60008060006108dc8585610ad3565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084811b8216602084015283901b16603482015291935091508690604801604051602081830303815290604052805190602001206040516020016109c29291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610a4f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91016106c2565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b3b576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610b75578284610b78565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610bca576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b600060208284031215610be357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c0e57600080fd5b919050565b600060208284031215610c2557600080fd5b610c2e82610bea565b9392505050565b60008060408385031215610c4857600080fd5b82359150610c5860208401610bea565b90509250929050565b60008060408385031215610c7457600080fd5b50508035926020909101359150565b60008060008060008060a08789031215610c9c57600080fd5b863567ffffffffffffffff811115610cb357600080fd5b87016060818a031215610cc557600080fd5b9550610cd360208801610bea565b945060408701359350610ce860608801610bea565b9250608087013567ffffffffffffffff811115610d0457600080fd5b8701601f81018913610d1557600080fd5b803567ffffffffffffffff811115610d2c57600080fd5b896020828401011115610d3e57600080fd5b60208201935080925050509295509295509295565b600080600060608486031215610d6857600080fd5b610d7184610bea565b9250610d7f60208501610bea565b9150610d8d60408501610bea565b90509250925092565b600060208284031215610da857600080fd5b81518015158114610c2e57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600086357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1883603018112610e3957600080fd5b870160208101903567ffffffffffffffff811115610e5657600080fd5b803603821315610e6557600080fd5b60606080850152610e7a60e085018284610db8565b91505073ffffffffffffffffffffffffffffffffffffffff610e9e60208a01610bea565b1660a0840152604088013560c084015273ffffffffffffffffffffffffffffffffffffffff871660208401528560408401528281036060840152610ee3818587610db8565b9897505050505050505056fea264697066735822122017543d2c8189b581ace78b1ea401266087d4800c1923634417b929e7efd8a9b764736f6c634300081a003360c060405234801561001057600080fd5b506040516119e83803806119e883398101604081905261002f916101db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600761006f898261032d565b50600861007c888261032d565b506009805460ff191660ff881617905560808590528360028111156100a3576100a36103eb565b60a08160028111156100b7576100b76103eb565b905250600292909255600080546001600160a01b039283166001600160a01b03199182161790915560018054929093169116179055506104019350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011e57600080fd5b81516001600160401b03811115610137576101376100f7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610165576101656100f7565b60405281815283820160200185101561017d57600080fd5b60005b8281101561019c57602081860181015183830182015201610180565b506000918101602001919091529392505050565b8051600381106101bf57600080fd5b919050565b80516001600160a01b03811681146101bf57600080fd5b600080600080600080600080610100898b0312156101f857600080fd5b88516001600160401b0381111561020e57600080fd5b61021a8b828c0161010d565b60208b015190995090506001600160401b0381111561023857600080fd5b6102448b828c0161010d565b975050604089015160ff8116811461025b57600080fd5b60608a0151909650945061027160808a016101b0565b60a08a0151909450925061028760c08a016101c4565b915061029560e08a016101c4565b90509295985092959890939650565b600181811c908216806102b857607f821691505b6020821081036102d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561032857806000526020600020601f840160051c810160208510156103055750805b601f840160051c820191505b818110156103255760008155600101610311565b50505b505050565b81516001600160401b03811115610346576103466100f7565b61035a8161035484546102a4565b846102de565b6020601f82116001811461038e57600083156103765750848201515b600019600385901b1c1916600184901b178455610325565b600084815260208120601f198516915b828110156103be578785015182556020948501946001909201910161039e565b50848210156103dc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805160a0516115b461043460003960006102f30152600081816102c4015281816109430152610a4901526115b46000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806385e1f4d0116100e3578063d9eeebed1161008c578063eddeb12311610066578063eddeb123146103f7578063f2441b321461040a578063f687d12a1461042a57600080fd5b8063d9eeebed1461035d578063dd62ed3e14610391578063e2f535b8146103d757600080fd5b8063a9059cbb116100bd578063a9059cbb14610322578063c701262614610335578063c835d7cc1461034857600080fd5b806385e1f4d0146102bf57806395d89b41146102e6578063a3413d03146102ee57600080fd5b8063313ce5671161014557806347e7ef241161011f57806347e7ef241461026d5780634d8943bb1461028057806370a082311461028957600080fd5b8063313ce567146102055780633ce4a5bc1461021a57806342966c681461025a57600080fd5b8063095ea7b311610176578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101f257600080fd5b806306fdde0314610192578063091d2788146101b0575b600080fd5b61019a61043d565b6040516101a79190611193565b60405180910390f35b6101b960025481565b6040519081526020016101a7565b6101da6101d53660046111d2565b6104cf565b60405190151581526020016101a7565b6006546101b9565b6101da6102003660046111fe565b6104e6565b60095460405160ff90911681526020016101a7565b61023573735b14bb79463307aacbed86daf3322b1e6226ab81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101da61026836600461123f565b61057d565b6101da61027b3660046111d2565b610591565b6101b960035481565b6101b9610297366004611258565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61019a6106e5565b6103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a79190611275565b6101da6103303660046111d2565b6106f4565b6101da6103433660046112e5565b610701565b61035b610356366004611258565b610850565b005b610365610917565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6101b961039f3660046113dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b6001546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61040536600461123f565b610b35565b6000546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61043836600461123f565b610bb7565b60606007805461044c90611416565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611416565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc338484610c39565b5060015b92915050565b60006104f3848484610d42565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083203384529091529020548281101561055e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610572853361056d8685611498565b610c39565b506001949350505050565b60006105893383610efd565b506001919050565b60003373735b14bb79463307aacbed86daf3322b1e6226ab148015906105cf575060005473ffffffffffffffffffffffffffffffffffffffff163314155b80156105f3575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561062a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610634838361103f565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8416907f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab390603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526106d49186906114ab565b60405180910390a250600192915050565b60606008805461044c90611416565b60006104dc338484610d42565b600080600061070e610917565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab602482015260448101829052919350915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906064016020604051808303816000875af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906114cd565b6107fa576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108043385610efd565b60035460405133917f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161083d918991899187916114ef565b60405180910390a2506001949350505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461089d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae906020015b60405180910390a150565b600080546040517f0be155470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201528291829173ffffffffffffffffffffffffffffffffffffffff90911690630be1554790602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce919061151e565b905073ffffffffffffffffffffffffffffffffffffffff8116610a1d576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517fd7fd7afb0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff9091169063d7fd7afb90602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061153b565b905080600003610b0c576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610b1f9190611554565b610b29919061156b565b92959294509192505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610b82576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f9060200161090c565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610c04576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a9060200161090c565b73ffffffffffffffffffffffffffffffffffffffff8316610c86576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cd3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d8f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ddc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205481811015610e3c576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e468282611498565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600460205260408082209390935590851681529081208054849290610e8990849061156b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eef91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610f4a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481811015610faa576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb48282611498565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081209190915560068054849290610fef908490611498565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d35565b73ffffffffffffffffffffffffffffffffffffffff821661108c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806006600082825461109e919061156b565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906110d890849061156b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000815180845260005b8181101561115557602081850181015186830182015201611139565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111a6602083018461112f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b60008060006060848603121561121357600080fd5b833561121e816111ad565b9250602084013561122e816111ad565b929592945050506040919091013590565b60006020828403121561125157600080fd5b5035919050565b60006020828403121561126a57600080fd5b81356111a6816111ad565b60208101600383106112b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156112f857600080fd5b823567ffffffffffffffff81111561130f57600080fd5b8301601f8101851361132057600080fd5b803567ffffffffffffffff81111561133a5761133a6112b6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113a6576113a66112b6565b6040528181528282016020018710156113be57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600080604083850312156113f057600080fd5b82356113fb816111ad565b9150602083013561140b816111ad565b809150509250929050565b600181811c9082168061142a57607f821691505b602082108103611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104e0576104e0611469565b6040815260006114be604083018561112f565b90508260208301529392505050565b6000602082840312156114df57600080fd5b815180151581146111a657600080fd5b608081526000611502608083018761112f565b6020830195909552506040810192909252606090910152919050565b60006020828403121561153057600080fd5b81516111a6816111ad565b60006020828403121561154d57600080fd5b5051919050565b80820281158282048414176104e0576104e0611469565b808201808211156104e0576104e061146956fea26469706673582212207bc62dfdede7c005315010b4244c5d1661fb65fbf23259603e26342f3a5148c464736f6c634300081a0033a26469706673582212201f318efc07065bafb88449047967a7fed5949a025e75f877444d77805cbd1f3964736f6c634300081a0033", +} + +// GatewayZEVMOutboundTestABI is the input ABI used to generate the binding from. +// Deprecated: Use GatewayZEVMOutboundTestMetaData.ABI instead. +var GatewayZEVMOutboundTestABI = GatewayZEVMOutboundTestMetaData.ABI + +// GatewayZEVMOutboundTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use GatewayZEVMOutboundTestMetaData.Bin instead. +var GatewayZEVMOutboundTestBin = GatewayZEVMOutboundTestMetaData.Bin + +// DeployGatewayZEVMOutboundTest deploys a new Ethereum contract, binding an instance of GatewayZEVMOutboundTest to it. +func DeployGatewayZEVMOutboundTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GatewayZEVMOutboundTest, error) { + parsed, err := GatewayZEVMOutboundTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(GatewayZEVMOutboundTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &GatewayZEVMOutboundTest{GatewayZEVMOutboundTestCaller: GatewayZEVMOutboundTestCaller{contract: contract}, GatewayZEVMOutboundTestTransactor: GatewayZEVMOutboundTestTransactor{contract: contract}, GatewayZEVMOutboundTestFilterer: GatewayZEVMOutboundTestFilterer{contract: contract}}, nil +} + +// GatewayZEVMOutboundTest is an auto generated Go binding around an Ethereum contract. +type GatewayZEVMOutboundTest struct { + GatewayZEVMOutboundTestCaller // Read-only binding to the contract + GatewayZEVMOutboundTestTransactor // Write-only binding to the contract + GatewayZEVMOutboundTestFilterer // Log filterer for contract events +} + +// GatewayZEVMOutboundTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type GatewayZEVMOutboundTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayZEVMOutboundTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type GatewayZEVMOutboundTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayZEVMOutboundTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type GatewayZEVMOutboundTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// GatewayZEVMOutboundTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type GatewayZEVMOutboundTestSession struct { + Contract *GatewayZEVMOutboundTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayZEVMOutboundTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type GatewayZEVMOutboundTestCallerSession struct { + Contract *GatewayZEVMOutboundTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// GatewayZEVMOutboundTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type GatewayZEVMOutboundTestTransactorSession struct { + Contract *GatewayZEVMOutboundTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// GatewayZEVMOutboundTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type GatewayZEVMOutboundTestRaw struct { + Contract *GatewayZEVMOutboundTest // Generic contract binding to access the raw methods on +} + +// GatewayZEVMOutboundTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type GatewayZEVMOutboundTestCallerRaw struct { + Contract *GatewayZEVMOutboundTestCaller // Generic read-only contract binding to access the raw methods on +} + +// GatewayZEVMOutboundTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type GatewayZEVMOutboundTestTransactorRaw struct { + Contract *GatewayZEVMOutboundTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewGatewayZEVMOutboundTest creates a new instance of GatewayZEVMOutboundTest, bound to a specific deployed contract. +func NewGatewayZEVMOutboundTest(address common.Address, backend bind.ContractBackend) (*GatewayZEVMOutboundTest, error) { + contract, err := bindGatewayZEVMOutboundTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTest{GatewayZEVMOutboundTestCaller: GatewayZEVMOutboundTestCaller{contract: contract}, GatewayZEVMOutboundTestTransactor: GatewayZEVMOutboundTestTransactor{contract: contract}, GatewayZEVMOutboundTestFilterer: GatewayZEVMOutboundTestFilterer{contract: contract}}, nil +} + +// NewGatewayZEVMOutboundTestCaller creates a new read-only instance of GatewayZEVMOutboundTest, bound to a specific deployed contract. +func NewGatewayZEVMOutboundTestCaller(address common.Address, caller bind.ContractCaller) (*GatewayZEVMOutboundTestCaller, error) { + contract, err := bindGatewayZEVMOutboundTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestCaller{contract: contract}, nil +} + +// NewGatewayZEVMOutboundTestTransactor creates a new write-only instance of GatewayZEVMOutboundTest, bound to a specific deployed contract. +func NewGatewayZEVMOutboundTestTransactor(address common.Address, transactor bind.ContractTransactor) (*GatewayZEVMOutboundTestTransactor, error) { + contract, err := bindGatewayZEVMOutboundTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestTransactor{contract: contract}, nil +} + +// NewGatewayZEVMOutboundTestFilterer creates a new log filterer instance of GatewayZEVMOutboundTest, bound to a specific deployed contract. +func NewGatewayZEVMOutboundTestFilterer(address common.Address, filterer bind.ContractFilterer) (*GatewayZEVMOutboundTestFilterer, error) { + contract, err := bindGatewayZEVMOutboundTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestFilterer{contract: contract}, nil +} + +// bindGatewayZEVMOutboundTest binds a generic wrapper to an already deployed contract. +func bindGatewayZEVMOutboundTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := GatewayZEVMOutboundTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayZEVMOutboundTest.Contract.GatewayZEVMOutboundTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.GatewayZEVMOutboundTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.GatewayZEVMOutboundTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _GatewayZEVMOutboundTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.contract.Transact(opts, method, params...) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) ISTEST(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "IS_TEST") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) ISTEST() (bool, error) { + return _GatewayZEVMOutboundTest.Contract.ISTEST(&_GatewayZEVMOutboundTest.CallOpts) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) ISTEST() (bool, error) { + return _GatewayZEVMOutboundTest.Contract.ISTEST(&_GatewayZEVMOutboundTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) ExcludeArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "excludeArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) ExcludeArtifacts() ([]string, error) { + return _GatewayZEVMOutboundTest.Contract.ExcludeArtifacts(&_GatewayZEVMOutboundTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) ExcludeArtifacts() ([]string, error) { + return _GatewayZEVMOutboundTest.Contract.ExcludeArtifacts(&_GatewayZEVMOutboundTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) ExcludeContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "excludeContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayZEVMOutboundTest.Contract.ExcludeContracts(&_GatewayZEVMOutboundTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) ExcludeContracts() ([]common.Address, error) { + return _GatewayZEVMOutboundTest.Contract.ExcludeContracts(&_GatewayZEVMOutboundTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) ExcludeSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "excludeSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayZEVMOutboundTest.Contract.ExcludeSelectors(&_GatewayZEVMOutboundTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayZEVMOutboundTest.Contract.ExcludeSelectors(&_GatewayZEVMOutboundTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) ExcludeSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "excludeSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayZEVMOutboundTest.Contract.ExcludeSenders(&_GatewayZEVMOutboundTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) ExcludeSenders() ([]common.Address, error) { + return _GatewayZEVMOutboundTest.Contract.ExcludeSenders(&_GatewayZEVMOutboundTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) Failed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "failed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) Failed() (bool, error) { + return _GatewayZEVMOutboundTest.Contract.Failed(&_GatewayZEVMOutboundTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) Failed() (bool, error) { + return _GatewayZEVMOutboundTest.Contract.Failed(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) TargetArtifactSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzArtifactSelector, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "targetArtifactSelectors") + + if err != nil { + return *new([]StdInvariantFuzzArtifactSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzArtifactSelector)).(*[]StdInvariantFuzzArtifactSelector) + + return out0, err + +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayZEVMOutboundTest.Contract.TargetArtifactSelectors(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _GatewayZEVMOutboundTest.Contract.TargetArtifactSelectors(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) TargetArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "targetArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TargetArtifacts() ([]string, error) { + return _GatewayZEVMOutboundTest.Contract.TargetArtifacts(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) TargetArtifacts() ([]string, error) { + return _GatewayZEVMOutboundTest.Contract.TargetArtifacts(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) TargetContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "targetContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TargetContracts() ([]common.Address, error) { + return _GatewayZEVMOutboundTest.Contract.TargetContracts(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) TargetContracts() ([]common.Address, error) { + return _GatewayZEVMOutboundTest.Contract.TargetContracts(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) TargetInterfaces(opts *bind.CallOpts) ([]StdInvariantFuzzInterface, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "targetInterfaces") + + if err != nil { + return *new([]StdInvariantFuzzInterface), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzInterface)).(*[]StdInvariantFuzzInterface) + + return out0, err + +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayZEVMOutboundTest.Contract.TargetInterfaces(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _GatewayZEVMOutboundTest.Contract.TargetInterfaces(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) TargetSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "targetSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayZEVMOutboundTest.Contract.TargetSelectors(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _GatewayZEVMOutboundTest.Contract.TargetSelectors(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) TargetSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "targetSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TargetSenders() ([]common.Address, error) { + return _GatewayZEVMOutboundTest.Contract.TargetSenders(&_GatewayZEVMOutboundTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) TargetSenders() ([]common.Address, error) { + return _GatewayZEVMOutboundTest.Contract.TargetSenders(&_GatewayZEVMOutboundTest.CallOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) SetUp(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "setUp") +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) SetUp() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.SetUp(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) SetUp() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.SetUp(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDeposit is a paid mutator transaction binding the contract method 0x7f924c4e. +// +// Solidity: function testDeposit() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDeposit(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDeposit") +} + +// TestDeposit is a paid mutator transaction binding the contract method 0x7f924c4e. +// +// Solidity: function testDeposit() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDeposit() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDeposit(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDeposit is a paid mutator transaction binding the contract method 0x7f924c4e. +// +// Solidity: function testDeposit() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDeposit() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDeposit(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositAndRevertZRC20AndCallZContract is a paid mutator transaction binding the contract method 0xaed71d97. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositAndRevertZRC20AndCallZContract(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositAndRevertZRC20AndCallZContract") +} + +// TestDepositAndRevertZRC20AndCallZContract is a paid mutator transaction binding the contract method 0xaed71d97. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositAndRevertZRC20AndCallZContract() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositAndRevertZRC20AndCallZContract(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositAndRevertZRC20AndCallZContract is a paid mutator transaction binding the contract method 0xaed71d97. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositAndRevertZRC20AndCallZContract() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositAndRevertZRC20AndCallZContract(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule is a paid mutator transaction binding the contract method 0xeba3c49c. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule") +} + +// TestDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule is a paid mutator transaction binding the contract method 0xeba3c49c. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule is a paid mutator transaction binding the contract method 0xeba3c49c. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway is a paid mutator transaction binding the contract method 0xc3248272. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway") +} + +// TestDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway is a paid mutator transaction binding the contract method 0xc3248272. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway is a paid mutator transaction binding the contract method 0xc3248272. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x09f080da. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule") +} + +// TestDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x09f080da. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x09f080da. +// +// Solidity: function testDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositFailsIfSenderNotFungibleModule is a paid mutator transaction binding the contract method 0x198d5ca4. +// +// Solidity: function testDepositFailsIfSenderNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositFailsIfSenderNotFungibleModule(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositFailsIfSenderNotFungibleModule") +} + +// TestDepositFailsIfSenderNotFungibleModule is a paid mutator transaction binding the contract method 0x198d5ca4. +// +// Solidity: function testDepositFailsIfSenderNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositFailsIfSenderNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositFailsIfSenderNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositFailsIfSenderNotFungibleModule is a paid mutator transaction binding the contract method 0x198d5ca4. +// +// Solidity: function testDepositFailsIfSenderNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositFailsIfSenderNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositFailsIfSenderNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositFailsIfTargetIsFungibleModule is a paid mutator transaction binding the contract method 0x44b2a40b. +// +// Solidity: function testDepositFailsIfTargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositFailsIfTargetIsFungibleModule(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositFailsIfTargetIsFungibleModule") +} + +// TestDepositFailsIfTargetIsFungibleModule is a paid mutator transaction binding the contract method 0x44b2a40b. +// +// Solidity: function testDepositFailsIfTargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositFailsIfTargetIsFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositFailsIfTargetIsFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositFailsIfTargetIsFungibleModule is a paid mutator transaction binding the contract method 0x44b2a40b. +// +// Solidity: function testDepositFailsIfTargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositFailsIfTargetIsFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositFailsIfTargetIsFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositFailsIfTargetIsGateway is a paid mutator transaction binding the contract method 0x96d9d876. +// +// Solidity: function testDepositFailsIfTargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositFailsIfTargetIsGateway(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositFailsIfTargetIsGateway") +} + +// TestDepositFailsIfTargetIsGateway is a paid mutator transaction binding the contract method 0x96d9d876. +// +// Solidity: function testDepositFailsIfTargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositFailsIfTargetIsGateway() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositFailsIfTargetIsGateway(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositFailsIfTargetIsGateway is a paid mutator transaction binding the contract method 0x96d9d876. +// +// Solidity: function testDepositFailsIfTargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositFailsIfTargetIsGateway() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositFailsIfTargetIsGateway(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZETAAndCallZContract is a paid mutator transaction binding the contract method 0x1fe68797. +// +// Solidity: function testDepositZETAAndCallZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositZETAAndCallZContract(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositZETAAndCallZContract") +} + +// TestDepositZETAAndCallZContract is a paid mutator transaction binding the contract method 0x1fe68797. +// +// Solidity: function testDepositZETAAndCallZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositZETAAndCallZContract() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZETAAndCallZContract(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZETAAndCallZContract is a paid mutator transaction binding the contract method 0x1fe68797. +// +// Solidity: function testDepositZETAAndCallZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositZETAAndCallZContract() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZETAAndCallZContract(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x3a25c460. +// +// Solidity: function testDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule") +} + +// TestDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x3a25c460. +// +// Solidity: function testDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x3a25c460. +// +// Solidity: function testDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZETAAndCallZContractFailsIfTargetIsFungibleModule is a paid mutator transaction binding the contract method 0x104b3522. +// +// Solidity: function testDepositZETAAndCallZContractFailsIfTargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositZETAAndCallZContractFailsIfTargetIsFungibleModule(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositZETAAndCallZContractFailsIfTargetIsFungibleModule") +} + +// TestDepositZETAAndCallZContractFailsIfTargetIsFungibleModule is a paid mutator transaction binding the contract method 0x104b3522. +// +// Solidity: function testDepositZETAAndCallZContractFailsIfTargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositZETAAndCallZContractFailsIfTargetIsFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZETAAndCallZContractFailsIfTargetIsFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZETAAndCallZContractFailsIfTargetIsFungibleModule is a paid mutator transaction binding the contract method 0x104b3522. +// +// Solidity: function testDepositZETAAndCallZContractFailsIfTargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositZETAAndCallZContractFailsIfTargetIsFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZETAAndCallZContractFailsIfTargetIsFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZETAAndCallZContractFailsIfTargetIsGateway is a paid mutator transaction binding the contract method 0xf5a35733. +// +// Solidity: function testDepositZETAAndCallZContractFailsIfTargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositZETAAndCallZContractFailsIfTargetIsGateway(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositZETAAndCallZContractFailsIfTargetIsGateway") +} + +// TestDepositZETAAndCallZContractFailsIfTargetIsGateway is a paid mutator transaction binding the contract method 0xf5a35733. +// +// Solidity: function testDepositZETAAndCallZContractFailsIfTargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositZETAAndCallZContractFailsIfTargetIsGateway() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZETAAndCallZContractFailsIfTargetIsGateway(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZETAAndCallZContractFailsIfTargetIsGateway is a paid mutator transaction binding the contract method 0xf5a35733. +// +// Solidity: function testDepositZETAAndCallZContractFailsIfTargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositZETAAndCallZContractFailsIfTargetIsGateway() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZETAAndCallZContractFailsIfTargetIsGateway(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZRC20AndCallZContract is a paid mutator transaction binding the contract method 0x597cfeb0. +// +// Solidity: function testDepositZRC20AndCallZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositZRC20AndCallZContract(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositZRC20AndCallZContract") +} + +// TestDepositZRC20AndCallZContract is a paid mutator transaction binding the contract method 0x597cfeb0. +// +// Solidity: function testDepositZRC20AndCallZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositZRC20AndCallZContract() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZRC20AndCallZContract(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZRC20AndCallZContract is a paid mutator transaction binding the contract method 0x597cfeb0. +// +// Solidity: function testDepositZRC20AndCallZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositZRC20AndCallZContract() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZRC20AndCallZContract(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x461fc5af. +// +// Solidity: function testDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule") +} + +// TestDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x461fc5af. +// +// Solidity: function testDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x461fc5af. +// +// Solidity: function testDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZRC20AndCallZContractIfTargetIsFungibleModule is a paid mutator transaction binding the contract method 0xdf690b9a. +// +// Solidity: function testDepositZRC20AndCallZContractIfTargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositZRC20AndCallZContractIfTargetIsFungibleModule(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositZRC20AndCallZContractIfTargetIsFungibleModule") +} + +// TestDepositZRC20AndCallZContractIfTargetIsFungibleModule is a paid mutator transaction binding the contract method 0xdf690b9a. +// +// Solidity: function testDepositZRC20AndCallZContractIfTargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositZRC20AndCallZContractIfTargetIsFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZRC20AndCallZContractIfTargetIsFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZRC20AndCallZContractIfTargetIsFungibleModule is a paid mutator transaction binding the contract method 0xdf690b9a. +// +// Solidity: function testDepositZRC20AndCallZContractIfTargetIsFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositZRC20AndCallZContractIfTargetIsFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZRC20AndCallZContractIfTargetIsFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZRC20AndCallZContractIfTargetIsGateway is a paid mutator transaction binding the contract method 0xc2725318. +// +// Solidity: function testDepositZRC20AndCallZContractIfTargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositZRC20AndCallZContractIfTargetIsGateway(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositZRC20AndCallZContractIfTargetIsGateway") +} + +// TestDepositZRC20AndCallZContractIfTargetIsGateway is a paid mutator transaction binding the contract method 0xc2725318. +// +// Solidity: function testDepositZRC20AndCallZContractIfTargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositZRC20AndCallZContractIfTargetIsGateway() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZRC20AndCallZContractIfTargetIsGateway(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositZRC20AndCallZContractIfTargetIsGateway is a paid mutator transaction binding the contract method 0xc2725318. +// +// Solidity: function testDepositZRC20AndCallZContractIfTargetIsGateway() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositZRC20AndCallZContractIfTargetIsGateway() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositZRC20AndCallZContractIfTargetIsGateway(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestExecuteRevertZContract is a paid mutator transaction binding the contract method 0xcced12c7. +// +// Solidity: function testExecuteRevertZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestExecuteRevertZContract(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testExecuteRevertZContract") +} + +// TestExecuteRevertZContract is a paid mutator transaction binding the contract method 0xcced12c7. +// +// Solidity: function testExecuteRevertZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestExecuteRevertZContract() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestExecuteRevertZContract(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestExecuteRevertZContract is a paid mutator transaction binding the contract method 0xcced12c7. +// +// Solidity: function testExecuteRevertZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestExecuteRevertZContract() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestExecuteRevertZContract(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestExecuteRevertZContractIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x31d09956. +// +// Solidity: function testExecuteRevertZContractIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestExecuteRevertZContractIfSenderIsNotFungibleModule(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testExecuteRevertZContractIfSenderIsNotFungibleModule") +} + +// TestExecuteRevertZContractIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x31d09956. +// +// Solidity: function testExecuteRevertZContractIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestExecuteRevertZContractIfSenderIsNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestExecuteRevertZContractIfSenderIsNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestExecuteRevertZContractIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0x31d09956. +// +// Solidity: function testExecuteRevertZContractIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestExecuteRevertZContractIfSenderIsNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestExecuteRevertZContractIfSenderIsNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestExecuteZContract is a paid mutator transaction binding the contract method 0x720b9aa9. +// +// Solidity: function testExecuteZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestExecuteZContract(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testExecuteZContract") +} + +// TestExecuteZContract is a paid mutator transaction binding the contract method 0x720b9aa9. +// +// Solidity: function testExecuteZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestExecuteZContract() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestExecuteZContract(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestExecuteZContract is a paid mutator transaction binding the contract method 0x720b9aa9. +// +// Solidity: function testExecuteZContract() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestExecuteZContract() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestExecuteZContract(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestExecuteZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0xfc79171b. +// +// Solidity: function testExecuteZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestExecuteZContractFailsIfSenderIsNotFungibleModule(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testExecuteZContractFailsIfSenderIsNotFungibleModule") +} + +// TestExecuteZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0xfc79171b. +// +// Solidity: function testExecuteZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestExecuteZContractFailsIfSenderIsNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestExecuteZContractFailsIfSenderIsNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestExecuteZContractFailsIfSenderIsNotFungibleModule is a paid mutator transaction binding the contract method 0xfc79171b. +// +// Solidity: function testExecuteZContractFailsIfSenderIsNotFungibleModule() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestExecuteZContractFailsIfSenderIsNotFungibleModule() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestExecuteZContractFailsIfSenderIsNotFungibleModule(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// GatewayZEVMOutboundTestCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestCallIterator struct { + Event *GatewayZEVMOutboundTestCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestCall represents a Call event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestCall struct { + Sender common.Address + Receiver []byte + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address) (*GatewayZEVMOutboundTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "Call", senderRule) + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestCallIterator{contract: _GatewayZEVMOutboundTest.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestCall, sender []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "Call", senderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestCall) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseCall(log types.Log) (*GatewayZEVMOutboundTestCall, error) { + event := new(GatewayZEVMOutboundTestCall) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestContextDataIterator is returned from FilterContextData and is used to iterate over the raw logs and unpacked data for ContextData events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestContextDataIterator struct { + Event *GatewayZEVMOutboundTestContextData // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestContextDataIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestContextData) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestContextData) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestContextDataIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestContextDataIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestContextData represents a ContextData event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestContextData struct { + Origin []byte + Sender common.Address + ChainID *big.Int + MsgSender common.Address + Message string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterContextData is a free log retrieval operation binding the contract event 0xcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e. +// +// Solidity: event ContextData(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterContextData(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestContextDataIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "ContextData") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestContextDataIterator{contract: _GatewayZEVMOutboundTest.contract, event: "ContextData", logs: logs, sub: sub}, nil +} + +// WatchContextData is a free log subscription operation binding the contract event 0xcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e. +// +// Solidity: event ContextData(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchContextData(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestContextData) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "ContextData") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestContextData) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "ContextData", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseContextData is a log parse operation binding the contract event 0xcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e. +// +// Solidity: event ContextData(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseContextData(log types.Log) (*GatewayZEVMOutboundTestContextData, error) { + event := new(GatewayZEVMOutboundTestContextData) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "ContextData", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestContextDataRevertIterator is returned from FilterContextDataRevert and is used to iterate over the raw logs and unpacked data for ContextDataRevert events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestContextDataRevertIterator struct { + Event *GatewayZEVMOutboundTestContextDataRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestContextDataRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestContextDataRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestContextDataRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestContextDataRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestContextDataRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestContextDataRevert represents a ContextDataRevert event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestContextDataRevert struct { + Origin []byte + Sender common.Address + ChainID *big.Int + MsgSender common.Address + Message string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterContextDataRevert is a free log retrieval operation binding the contract event 0xfdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e99948. +// +// Solidity: event ContextDataRevert(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterContextDataRevert(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestContextDataRevertIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "ContextDataRevert") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestContextDataRevertIterator{contract: _GatewayZEVMOutboundTest.contract, event: "ContextDataRevert", logs: logs, sub: sub}, nil +} + +// WatchContextDataRevert is a free log subscription operation binding the contract event 0xfdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e99948. +// +// Solidity: event ContextDataRevert(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchContextDataRevert(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestContextDataRevert) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "ContextDataRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestContextDataRevert) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "ContextDataRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseContextDataRevert is a log parse operation binding the contract event 0xfdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e99948. +// +// Solidity: event ContextDataRevert(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseContextDataRevert(log types.Log) (*GatewayZEVMOutboundTestContextDataRevert, error) { + event := new(GatewayZEVMOutboundTestContextDataRevert) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "ContextDataRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestWithdrawalIterator is returned from FilterWithdrawal and is used to iterate over the raw logs and unpacked data for Withdrawal events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestWithdrawalIterator struct { + Event *GatewayZEVMOutboundTestWithdrawal // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestWithdrawalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestWithdrawalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestWithdrawalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestWithdrawal represents a Withdrawal event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestWithdrawal struct { + From common.Address + Zrc20 common.Address + To []byte + Value *big.Int + Gasfee *big.Int + ProtocolFlatFee *big.Int + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawal is a free log retrieval operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterWithdrawal(opts *bind.FilterOpts, from []common.Address) (*GatewayZEVMOutboundTestWithdrawalIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestWithdrawalIterator{contract: _GatewayZEVMOutboundTest.contract, event: "Withdrawal", logs: logs, sub: sub}, nil +} + +// WatchWithdrawal is a free log subscription operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestWithdrawal, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestWithdrawal) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawal is a log parse operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseWithdrawal(log types.Log) (*GatewayZEVMOutboundTestWithdrawal, error) { + event := new(GatewayZEVMOutboundTestWithdrawal) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogIterator is returned from FilterLog and is used to iterate over the raw logs and unpacked data for Log events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogIterator struct { + Event *GatewayZEVMOutboundTestLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLog represents a Log event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLog struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLog is a free log retrieval operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLog(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log", logs: logs, sub: sub}, nil +} + +// WatchLog is a free log subscription operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLog(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLog) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLog) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLog is a log parse operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLog(log types.Log) (*GatewayZEVMOutboundTestLog, error) { + event := new(GatewayZEVMOutboundTestLog) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogAddressIterator is returned from FilterLogAddress and is used to iterate over the raw logs and unpacked data for LogAddress events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogAddressIterator struct { + Event *GatewayZEVMOutboundTestLogAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogAddress represents a LogAddress event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogAddress struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAddress is a free log retrieval operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogAddress(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogAddressIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_address") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogAddressIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_address", logs: logs, sub: sub}, nil +} + +// WatchLogAddress is a free log subscription operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogAddress(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogAddress) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogAddress is a log parse operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogAddress(log types.Log) (*GatewayZEVMOutboundTestLogAddress, error) { + event := new(GatewayZEVMOutboundTestLogAddress) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogArrayIterator is returned from FilterLogArray and is used to iterate over the raw logs and unpacked data for LogArray events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogArrayIterator struct { + Event *GatewayZEVMOutboundTestLogArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogArray represents a LogArray event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogArray struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray is a free log retrieval operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogArray(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogArrayIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_array") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogArrayIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_array", logs: logs, sub: sub}, nil +} + +// WatchLogArray is a free log subscription operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogArray(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogArray) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogArray) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray is a log parse operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogArray(log types.Log) (*GatewayZEVMOutboundTestLogArray, error) { + event := new(GatewayZEVMOutboundTestLogArray) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogArray0Iterator is returned from FilterLogArray0 and is used to iterate over the raw logs and unpacked data for LogArray0 events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogArray0Iterator struct { + Event *GatewayZEVMOutboundTestLogArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogArray0 represents a LogArray0 event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogArray0 struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray0 is a free log retrieval operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogArray0(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogArray0Iterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogArray0Iterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_array0", logs: logs, sub: sub}, nil +} + +// WatchLogArray0 is a free log subscription operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogArray0(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogArray0) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray0 is a log parse operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogArray0(log types.Log) (*GatewayZEVMOutboundTestLogArray0, error) { + event := new(GatewayZEVMOutboundTestLogArray0) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogArray1Iterator is returned from FilterLogArray1 and is used to iterate over the raw logs and unpacked data for LogArray1 events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogArray1Iterator struct { + Event *GatewayZEVMOutboundTestLogArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogArray1 represents a LogArray1 event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogArray1 struct { + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray1 is a free log retrieval operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogArray1(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogArray1Iterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogArray1Iterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_array1", logs: logs, sub: sub}, nil +} + +// WatchLogArray1 is a free log subscription operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogArray1(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogArray1) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray1 is a log parse operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogArray1(log types.Log) (*GatewayZEVMOutboundTestLogArray1, error) { + event := new(GatewayZEVMOutboundTestLogArray1) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogBytesIterator is returned from FilterLogBytes and is used to iterate over the raw logs and unpacked data for LogBytes events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogBytesIterator struct { + Event *GatewayZEVMOutboundTestLogBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogBytes represents a LogBytes event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogBytes struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes is a free log retrieval operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogBytes(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogBytesIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogBytesIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogBytes is a free log subscription operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogBytes(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogBytes) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes is a log parse operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogBytes(log types.Log) (*GatewayZEVMOutboundTestLogBytes, error) { + event := new(GatewayZEVMOutboundTestLogBytes) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogBytes32Iterator is returned from FilterLogBytes32 and is used to iterate over the raw logs and unpacked data for LogBytes32 events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogBytes32Iterator struct { + Event *GatewayZEVMOutboundTestLogBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogBytes32 represents a LogBytes32 event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogBytes32 struct { + Arg0 [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes32 is a free log retrieval operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogBytes32(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogBytes32Iterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogBytes32Iterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogBytes32 is a free log subscription operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogBytes32(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogBytes32) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes32 is a log parse operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogBytes32(log types.Log) (*GatewayZEVMOutboundTestLogBytes32, error) { + event := new(GatewayZEVMOutboundTestLogBytes32) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogIntIterator is returned from FilterLogInt and is used to iterate over the raw logs and unpacked data for LogInt events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogIntIterator struct { + Event *GatewayZEVMOutboundTestLogInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogInt represents a LogInt event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogInt struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogInt is a free log retrieval operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogInt(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogIntIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_int") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogIntIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_int", logs: logs, sub: sub}, nil +} + +// WatchLogInt is a free log subscription operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogInt(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogInt) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogInt) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogInt is a log parse operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogInt(log types.Log) (*GatewayZEVMOutboundTestLogInt, error) { + event := new(GatewayZEVMOutboundTestLogInt) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedAddressIterator is returned from FilterLogNamedAddress and is used to iterate over the raw logs and unpacked data for LogNamedAddress events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedAddressIterator struct { + Event *GatewayZEVMOutboundTestLogNamedAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedAddress represents a LogNamedAddress event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedAddress struct { + Key string + Val common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedAddress is a free log retrieval operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedAddress(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedAddressIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedAddressIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_address", logs: logs, sub: sub}, nil +} + +// WatchLogNamedAddress is a free log subscription operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedAddress(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedAddress) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedAddress) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedAddress is a log parse operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedAddress(log types.Log) (*GatewayZEVMOutboundTestLogNamedAddress, error) { + event := new(GatewayZEVMOutboundTestLogNamedAddress) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedArrayIterator is returned from FilterLogNamedArray and is used to iterate over the raw logs and unpacked data for LogNamedArray events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedArrayIterator struct { + Event *GatewayZEVMOutboundTestLogNamedArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedArray represents a LogNamedArray event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedArray struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray is a free log retrieval operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedArray(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedArrayIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedArrayIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_array", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray is a free log subscription operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedArray(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedArray) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedArray) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray is a log parse operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedArray(log types.Log) (*GatewayZEVMOutboundTestLogNamedArray, error) { + event := new(GatewayZEVMOutboundTestLogNamedArray) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedArray0Iterator is returned from FilterLogNamedArray0 and is used to iterate over the raw logs and unpacked data for LogNamedArray0 events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedArray0Iterator struct { + Event *GatewayZEVMOutboundTestLogNamedArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedArray0 represents a LogNamedArray0 event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedArray0 struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray0 is a free log retrieval operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedArray0(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedArray0Iterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedArray0Iterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_array0", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray0 is a free log subscription operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedArray0(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedArray0) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedArray0) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray0 is a log parse operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedArray0(log types.Log) (*GatewayZEVMOutboundTestLogNamedArray0, error) { + event := new(GatewayZEVMOutboundTestLogNamedArray0) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedArray1Iterator is returned from FilterLogNamedArray1 and is used to iterate over the raw logs and unpacked data for LogNamedArray1 events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedArray1Iterator struct { + Event *GatewayZEVMOutboundTestLogNamedArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedArray1 represents a LogNamedArray1 event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedArray1 struct { + Key string + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray1 is a free log retrieval operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedArray1(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedArray1Iterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedArray1Iterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_array1", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray1 is a free log subscription operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedArray1(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedArray1) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedArray1) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray1 is a log parse operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedArray1(log types.Log) (*GatewayZEVMOutboundTestLogNamedArray1, error) { + event := new(GatewayZEVMOutboundTestLogNamedArray1) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedBytesIterator is returned from FilterLogNamedBytes and is used to iterate over the raw logs and unpacked data for LogNamedBytes events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedBytesIterator struct { + Event *GatewayZEVMOutboundTestLogNamedBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedBytes represents a LogNamedBytes event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedBytes struct { + Key string + Val []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes is a free log retrieval operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedBytes(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedBytesIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedBytesIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes is a free log subscription operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedBytes(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedBytes) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedBytes) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes is a log parse operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedBytes(log types.Log) (*GatewayZEVMOutboundTestLogNamedBytes, error) { + event := new(GatewayZEVMOutboundTestLogNamedBytes) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedBytes32Iterator is returned from FilterLogNamedBytes32 and is used to iterate over the raw logs and unpacked data for LogNamedBytes32 events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedBytes32Iterator struct { + Event *GatewayZEVMOutboundTestLogNamedBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedBytes32 represents a LogNamedBytes32 event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedBytes32 struct { + Key string + Val [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes32 is a free log retrieval operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedBytes32(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedBytes32Iterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedBytes32Iterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes32 is a free log subscription operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedBytes32(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedBytes32) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedBytes32) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes32 is a log parse operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedBytes32(log types.Log) (*GatewayZEVMOutboundTestLogNamedBytes32, error) { + event := new(GatewayZEVMOutboundTestLogNamedBytes32) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedDecimalIntIterator is returned from FilterLogNamedDecimalInt and is used to iterate over the raw logs and unpacked data for LogNamedDecimalInt events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedDecimalIntIterator struct { + Event *GatewayZEVMOutboundTestLogNamedDecimalInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedDecimalIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedDecimalIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedDecimalIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedDecimalInt represents a LogNamedDecimalInt event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedDecimalInt struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalInt is a free log retrieval operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedDecimalInt(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedDecimalIntIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedDecimalIntIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_decimal_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalInt is a free log subscription operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedDecimalInt(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedDecimalInt) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedDecimalInt) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalInt is a log parse operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedDecimalInt(log types.Log) (*GatewayZEVMOutboundTestLogNamedDecimalInt, error) { + event := new(GatewayZEVMOutboundTestLogNamedDecimalInt) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedDecimalUintIterator is returned from FilterLogNamedDecimalUint and is used to iterate over the raw logs and unpacked data for LogNamedDecimalUint events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedDecimalUintIterator struct { + Event *GatewayZEVMOutboundTestLogNamedDecimalUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedDecimalUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedDecimalUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedDecimalUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedDecimalUint represents a LogNamedDecimalUint event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedDecimalUint struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalUint is a free log retrieval operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedDecimalUint(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedDecimalUintIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedDecimalUintIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_decimal_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalUint is a free log subscription operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedDecimalUint(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedDecimalUint) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedDecimalUint) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalUint is a log parse operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedDecimalUint(log types.Log) (*GatewayZEVMOutboundTestLogNamedDecimalUint, error) { + event := new(GatewayZEVMOutboundTestLogNamedDecimalUint) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedIntIterator is returned from FilterLogNamedInt and is used to iterate over the raw logs and unpacked data for LogNamedInt events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedIntIterator struct { + Event *GatewayZEVMOutboundTestLogNamedInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedInt represents a LogNamedInt event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedInt struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedInt is a free log retrieval operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedInt(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedIntIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedIntIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedInt is a free log subscription operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedInt(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedInt) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedInt) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedInt is a log parse operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedInt(log types.Log) (*GatewayZEVMOutboundTestLogNamedInt, error) { + event := new(GatewayZEVMOutboundTestLogNamedInt) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedStringIterator is returned from FilterLogNamedString and is used to iterate over the raw logs and unpacked data for LogNamedString events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedStringIterator struct { + Event *GatewayZEVMOutboundTestLogNamedString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedString represents a LogNamedString event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedString struct { + Key string + Val string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedString is a free log retrieval operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedString(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedStringIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedStringIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_string", logs: logs, sub: sub}, nil +} + +// WatchLogNamedString is a free log subscription operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedString(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedString) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedString) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedString is a log parse operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedString(log types.Log) (*GatewayZEVMOutboundTestLogNamedString, error) { + event := new(GatewayZEVMOutboundTestLogNamedString) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogNamedUintIterator is returned from FilterLogNamedUint and is used to iterate over the raw logs and unpacked data for LogNamedUint events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedUintIterator struct { + Event *GatewayZEVMOutboundTestLogNamedUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogNamedUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogNamedUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogNamedUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogNamedUint represents a LogNamedUint event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogNamedUint struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedUint is a free log retrieval operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogNamedUint(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogNamedUintIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogNamedUintIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_named_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedUint is a free log subscription operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogNamedUint(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogNamedUint) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogNamedUint) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedUint is a log parse operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogNamedUint(log types.Log) (*GatewayZEVMOutboundTestLogNamedUint, error) { + event := new(GatewayZEVMOutboundTestLogNamedUint) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogStringIterator is returned from FilterLogString and is used to iterate over the raw logs and unpacked data for LogString events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogStringIterator struct { + Event *GatewayZEVMOutboundTestLogString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogString represents a LogString event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogString struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogString is a free log retrieval operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogString(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogStringIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_string") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogStringIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_string", logs: logs, sub: sub}, nil +} + +// WatchLogString is a free log subscription operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogString(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogString) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogString) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogString is a log parse operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogString(log types.Log) (*GatewayZEVMOutboundTestLogString, error) { + event := new(GatewayZEVMOutboundTestLogString) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogUintIterator is returned from FilterLogUint and is used to iterate over the raw logs and unpacked data for LogUint events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogUintIterator struct { + Event *GatewayZEVMOutboundTestLogUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogUint represents a LogUint event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogUint struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogUint is a free log retrieval operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogUint(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogUintIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogUintIterator{contract: _GatewayZEVMOutboundTest.contract, event: "log_uint", logs: logs, sub: sub}, nil +} + +// WatchLogUint is a free log subscription operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogUint(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogUint) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogUint) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogUint is a log parse operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogUint(log types.Log) (*GatewayZEVMOutboundTestLogUint, error) { + event := new(GatewayZEVMOutboundTestLogUint) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMOutboundTestLogsIterator is returned from FilterLogs and is used to iterate over the raw logs and unpacked data for Logs events raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogsIterator struct { + Event *GatewayZEVMOutboundTestLogs // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMOutboundTestLogsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMOutboundTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMOutboundTestLogsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMOutboundTestLogsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMOutboundTestLogs represents a Logs event raised by the GatewayZEVMOutboundTest contract. +type GatewayZEVMOutboundTestLogs struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogs is a free log retrieval operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterLogs(opts *bind.FilterOpts) (*GatewayZEVMOutboundTestLogsIterator, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "logs") + if err != nil { + return nil, err + } + return &GatewayZEVMOutboundTestLogsIterator{contract: _GatewayZEVMOutboundTest.contract, event: "logs", logs: logs, sub: sub}, nil +} + +// WatchLogs is a free log subscription operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchLogs(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestLogs) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "logs") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMOutboundTestLogs) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "logs", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogs is a log parse operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) ParseLogs(log types.Log) (*GatewayZEVMOutboundTestLogs, error) { + event := new(GatewayZEVMOutboundTestLogs) + if err := _GatewayZEVMOutboundTest.contract.UnpackLog(event, "logs", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/ibeacon.sol/ibeacon.go b/v2/pkg/ibeacon.sol/ibeacon.go new file mode 100644 index 00000000..9c2b0850 --- /dev/null +++ b/v2/pkg/ibeacon.sol/ibeacon.go @@ -0,0 +1,212 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ibeacon + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IBeaconMetaData contains all meta data concerning the IBeacon contract. +var IBeaconMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"implementation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"}]", +} + +// IBeaconABI is the input ABI used to generate the binding from. +// Deprecated: Use IBeaconMetaData.ABI instead. +var IBeaconABI = IBeaconMetaData.ABI + +// IBeacon is an auto generated Go binding around an Ethereum contract. +type IBeacon struct { + IBeaconCaller // Read-only binding to the contract + IBeaconTransactor // Write-only binding to the contract + IBeaconFilterer // Log filterer for contract events +} + +// IBeaconCaller is an auto generated read-only Go binding around an Ethereum contract. +type IBeaconCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IBeaconTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IBeaconTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IBeaconFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IBeaconFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IBeaconSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IBeaconSession struct { + Contract *IBeacon // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IBeaconCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IBeaconCallerSession struct { + Contract *IBeaconCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IBeaconTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IBeaconTransactorSession struct { + Contract *IBeaconTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IBeaconRaw is an auto generated low-level Go binding around an Ethereum contract. +type IBeaconRaw struct { + Contract *IBeacon // Generic contract binding to access the raw methods on +} + +// IBeaconCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IBeaconCallerRaw struct { + Contract *IBeaconCaller // Generic read-only contract binding to access the raw methods on +} + +// IBeaconTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IBeaconTransactorRaw struct { + Contract *IBeaconTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIBeacon creates a new instance of IBeacon, bound to a specific deployed contract. +func NewIBeacon(address common.Address, backend bind.ContractBackend) (*IBeacon, error) { + contract, err := bindIBeacon(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IBeacon{IBeaconCaller: IBeaconCaller{contract: contract}, IBeaconTransactor: IBeaconTransactor{contract: contract}, IBeaconFilterer: IBeaconFilterer{contract: contract}}, nil +} + +// NewIBeaconCaller creates a new read-only instance of IBeacon, bound to a specific deployed contract. +func NewIBeaconCaller(address common.Address, caller bind.ContractCaller) (*IBeaconCaller, error) { + contract, err := bindIBeacon(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IBeaconCaller{contract: contract}, nil +} + +// NewIBeaconTransactor creates a new write-only instance of IBeacon, bound to a specific deployed contract. +func NewIBeaconTransactor(address common.Address, transactor bind.ContractTransactor) (*IBeaconTransactor, error) { + contract, err := bindIBeacon(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IBeaconTransactor{contract: contract}, nil +} + +// NewIBeaconFilterer creates a new log filterer instance of IBeacon, bound to a specific deployed contract. +func NewIBeaconFilterer(address common.Address, filterer bind.ContractFilterer) (*IBeaconFilterer, error) { + contract, err := bindIBeacon(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IBeaconFilterer{contract: contract}, nil +} + +// bindIBeacon binds a generic wrapper to an already deployed contract. +func bindIBeacon(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IBeaconMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IBeacon *IBeaconRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IBeacon.Contract.IBeaconCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IBeacon *IBeaconRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IBeacon.Contract.IBeaconTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IBeacon *IBeaconRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IBeacon.Contract.IBeaconTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IBeacon *IBeaconCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IBeacon.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IBeacon *IBeaconTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IBeacon.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IBeacon *IBeaconTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IBeacon.Contract.contract.Transact(opts, method, params...) +} + +// Implementation is a free data retrieval call binding the contract method 0x5c60da1b. +// +// Solidity: function implementation() view returns(address) +func (_IBeacon *IBeaconCaller) Implementation(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _IBeacon.contract.Call(opts, &out, "implementation") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Implementation is a free data retrieval call binding the contract method 0x5c60da1b. +// +// Solidity: function implementation() view returns(address) +func (_IBeacon *IBeaconSession) Implementation() (common.Address, error) { + return _IBeacon.Contract.Implementation(&_IBeacon.CallOpts) +} + +// Implementation is a free data retrieval call binding the contract method 0x5c60da1b. +// +// Solidity: function implementation() view returns(address) +func (_IBeacon *IBeaconCallerSession) Implementation() (common.Address, error) { + return _IBeacon.Contract.Implementation(&_IBeacon.CallOpts) +} diff --git a/v2/pkg/ierc165.sol/ierc165.go b/v2/pkg/ierc165.sol/ierc165.go new file mode 100644 index 00000000..9d6a8bca --- /dev/null +++ b/v2/pkg/ierc165.sol/ierc165.go @@ -0,0 +1,212 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc165 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC165MetaData contains all meta data concerning the IERC165 contract. +var IERC165MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"}]", +} + +// IERC165ABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC165MetaData.ABI instead. +var IERC165ABI = IERC165MetaData.ABI + +// IERC165 is an auto generated Go binding around an Ethereum contract. +type IERC165 struct { + IERC165Caller // Read-only binding to the contract + IERC165Transactor // Write-only binding to the contract + IERC165Filterer // Log filterer for contract events +} + +// IERC165Caller is an auto generated read-only Go binding around an Ethereum contract. +type IERC165Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC165Transactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC165Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC165Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC165Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC165Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC165Session struct { + Contract *IERC165 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC165CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC165CallerSession struct { + Contract *IERC165Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC165TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC165TransactorSession struct { + Contract *IERC165Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC165Raw is an auto generated low-level Go binding around an Ethereum contract. +type IERC165Raw struct { + Contract *IERC165 // Generic contract binding to access the raw methods on +} + +// IERC165CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC165CallerRaw struct { + Contract *IERC165Caller // Generic read-only contract binding to access the raw methods on +} + +// IERC165TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC165TransactorRaw struct { + Contract *IERC165Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC165 creates a new instance of IERC165, bound to a specific deployed contract. +func NewIERC165(address common.Address, backend bind.ContractBackend) (*IERC165, error) { + contract, err := bindIERC165(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC165{IERC165Caller: IERC165Caller{contract: contract}, IERC165Transactor: IERC165Transactor{contract: contract}, IERC165Filterer: IERC165Filterer{contract: contract}}, nil +} + +// NewIERC165Caller creates a new read-only instance of IERC165, bound to a specific deployed contract. +func NewIERC165Caller(address common.Address, caller bind.ContractCaller) (*IERC165Caller, error) { + contract, err := bindIERC165(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC165Caller{contract: contract}, nil +} + +// NewIERC165Transactor creates a new write-only instance of IERC165, bound to a specific deployed contract. +func NewIERC165Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC165Transactor, error) { + contract, err := bindIERC165(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC165Transactor{contract: contract}, nil +} + +// NewIERC165Filterer creates a new log filterer instance of IERC165, bound to a specific deployed contract. +func NewIERC165Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC165Filterer, error) { + contract, err := bindIERC165(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC165Filterer{contract: contract}, nil +} + +// bindIERC165 binds a generic wrapper to an already deployed contract. +func bindIERC165(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC165MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC165 *IERC165Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC165.Contract.IERC165Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC165 *IERC165Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC165.Contract.IERC165Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC165 *IERC165Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC165.Contract.IERC165Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC165 *IERC165CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC165.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC165 *IERC165TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC165.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC165 *IERC165TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC165.Contract.contract.Transact(opts, method, params...) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC165 *IERC165Caller) SupportsInterface(opts *bind.CallOpts, interfaceID [4]byte) (bool, error) { + var out []interface{} + err := _IERC165.contract.Call(opts, &out, "supportsInterface", interfaceID) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC165 *IERC165Session) SupportsInterface(interfaceID [4]byte) (bool, error) { + return _IERC165.Contract.SupportsInterface(&_IERC165.CallOpts, interfaceID) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC165 *IERC165CallerSession) SupportsInterface(interfaceID [4]byte) (bool, error) { + return _IERC165.Contract.SupportsInterface(&_IERC165.CallOpts, interfaceID) +} diff --git a/v2/pkg/ierc1967.sol/ierc1967.go b/v2/pkg/ierc1967.sol/ierc1967.go new file mode 100644 index 00000000..e5ef5b3a --- /dev/null +++ b/v2/pkg/ierc1967.sol/ierc1967.go @@ -0,0 +1,604 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc1967 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC1967MetaData contains all meta data concerning the IERC1967 contract. +var IERC1967MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"AdminChanged\",\"inputs\":[{\"name\":\"previousAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BeaconUpgraded\",\"inputs\":[{\"name\":\"beacon\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false}]", +} + +// IERC1967ABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC1967MetaData.ABI instead. +var IERC1967ABI = IERC1967MetaData.ABI + +// IERC1967 is an auto generated Go binding around an Ethereum contract. +type IERC1967 struct { + IERC1967Caller // Read-only binding to the contract + IERC1967Transactor // Write-only binding to the contract + IERC1967Filterer // Log filterer for contract events +} + +// IERC1967Caller is an auto generated read-only Go binding around an Ethereum contract. +type IERC1967Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC1967Transactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC1967Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC1967Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC1967Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC1967Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC1967Session struct { + Contract *IERC1967 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC1967CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC1967CallerSession struct { + Contract *IERC1967Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC1967TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC1967TransactorSession struct { + Contract *IERC1967Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC1967Raw is an auto generated low-level Go binding around an Ethereum contract. +type IERC1967Raw struct { + Contract *IERC1967 // Generic contract binding to access the raw methods on +} + +// IERC1967CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC1967CallerRaw struct { + Contract *IERC1967Caller // Generic read-only contract binding to access the raw methods on +} + +// IERC1967TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC1967TransactorRaw struct { + Contract *IERC1967Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC1967 creates a new instance of IERC1967, bound to a specific deployed contract. +func NewIERC1967(address common.Address, backend bind.ContractBackend) (*IERC1967, error) { + contract, err := bindIERC1967(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC1967{IERC1967Caller: IERC1967Caller{contract: contract}, IERC1967Transactor: IERC1967Transactor{contract: contract}, IERC1967Filterer: IERC1967Filterer{contract: contract}}, nil +} + +// NewIERC1967Caller creates a new read-only instance of IERC1967, bound to a specific deployed contract. +func NewIERC1967Caller(address common.Address, caller bind.ContractCaller) (*IERC1967Caller, error) { + contract, err := bindIERC1967(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC1967Caller{contract: contract}, nil +} + +// NewIERC1967Transactor creates a new write-only instance of IERC1967, bound to a specific deployed contract. +func NewIERC1967Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC1967Transactor, error) { + contract, err := bindIERC1967(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC1967Transactor{contract: contract}, nil +} + +// NewIERC1967Filterer creates a new log filterer instance of IERC1967, bound to a specific deployed contract. +func NewIERC1967Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC1967Filterer, error) { + contract, err := bindIERC1967(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC1967Filterer{contract: contract}, nil +} + +// bindIERC1967 binds a generic wrapper to an already deployed contract. +func bindIERC1967(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC1967MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC1967 *IERC1967Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC1967.Contract.IERC1967Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC1967 *IERC1967Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC1967.Contract.IERC1967Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC1967 *IERC1967Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC1967.Contract.IERC1967Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC1967 *IERC1967CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC1967.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC1967 *IERC1967TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC1967.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC1967 *IERC1967TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC1967.Contract.contract.Transact(opts, method, params...) +} + +// IERC1967AdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the IERC1967 contract. +type IERC1967AdminChangedIterator struct { + Event *IERC1967AdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC1967AdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC1967AdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC1967AdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC1967AdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC1967AdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC1967AdminChanged represents a AdminChanged event raised by the IERC1967 contract. +type IERC1967AdminChanged struct { + PreviousAdmin common.Address + NewAdmin common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_IERC1967 *IERC1967Filterer) FilterAdminChanged(opts *bind.FilterOpts) (*IERC1967AdminChangedIterator, error) { + + logs, sub, err := _IERC1967.contract.FilterLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return &IERC1967AdminChangedIterator{contract: _IERC1967.contract, event: "AdminChanged", logs: logs, sub: sub}, nil +} + +// WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_IERC1967 *IERC1967Filterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *IERC1967AdminChanged) (event.Subscription, error) { + + logs, sub, err := _IERC1967.contract.WatchLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC1967AdminChanged) + if err := _IERC1967.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_IERC1967 *IERC1967Filterer) ParseAdminChanged(log types.Log) (*IERC1967AdminChanged, error) { + event := new(IERC1967AdminChanged) + if err := _IERC1967.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC1967BeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the IERC1967 contract. +type IERC1967BeaconUpgradedIterator struct { + Event *IERC1967BeaconUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC1967BeaconUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC1967BeaconUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC1967BeaconUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC1967BeaconUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC1967BeaconUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC1967BeaconUpgraded represents a BeaconUpgraded event raised by the IERC1967 contract. +type IERC1967BeaconUpgraded struct { + Beacon common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_IERC1967 *IERC1967Filterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*IERC1967BeaconUpgradedIterator, error) { + + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _IERC1967.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) + if err != nil { + return nil, err + } + return &IERC1967BeaconUpgradedIterator{contract: _IERC1967.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil +} + +// WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_IERC1967 *IERC1967Filterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *IERC1967BeaconUpgraded, beacon []common.Address) (event.Subscription, error) { + + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _IERC1967.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC1967BeaconUpgraded) + if err := _IERC1967.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_IERC1967 *IERC1967Filterer) ParseBeaconUpgraded(log types.Log) (*IERC1967BeaconUpgraded, error) { + event := new(IERC1967BeaconUpgraded) + if err := _IERC1967.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC1967UpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the IERC1967 contract. +type IERC1967UpgradedIterator struct { + Event *IERC1967Upgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC1967UpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC1967Upgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC1967Upgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC1967UpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC1967UpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC1967Upgraded represents a Upgraded event raised by the IERC1967 contract. +type IERC1967Upgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_IERC1967 *IERC1967Filterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*IERC1967UpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _IERC1967.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &IERC1967UpgradedIterator{contract: _IERC1967.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_IERC1967 *IERC1967Filterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *IERC1967Upgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _IERC1967.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC1967Upgraded) + if err := _IERC1967.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_IERC1967 *IERC1967Filterer) ParseUpgraded(log types.Log) (*IERC1967Upgraded, error) { + event := new(IERC1967Upgraded) + if err := _IERC1967.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/ierc20.sol/ierc20.go b/v2/pkg/ierc20.sol/ierc20.go new file mode 100644 index 00000000..e68adba1 --- /dev/null +++ b/v2/pkg/ierc20.sol/ierc20.go @@ -0,0 +1,738 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc20 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC20MetaData contains all meta data concerning the IERC20 contract. +var IERC20MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", +} + +// IERC20ABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC20MetaData.ABI instead. +var IERC20ABI = IERC20MetaData.ABI + +// IERC20 is an auto generated Go binding around an Ethereum contract. +type IERC20 struct { + IERC20Caller // Read-only binding to the contract + IERC20Transactor // Write-only binding to the contract + IERC20Filterer // Log filterer for contract events +} + +// IERC20Caller is an auto generated read-only Go binding around an Ethereum contract. +type IERC20Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20Transactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC20Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC20Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC20Session struct { + Contract *IERC20 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC20CallerSession struct { + Contract *IERC20Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC20TransactorSession struct { + Contract *IERC20Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20Raw is an auto generated low-level Go binding around an Ethereum contract. +type IERC20Raw struct { + Contract *IERC20 // Generic contract binding to access the raw methods on +} + +// IERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC20CallerRaw struct { + Contract *IERC20Caller // Generic read-only contract binding to access the raw methods on +} + +// IERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC20TransactorRaw struct { + Contract *IERC20Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC20 creates a new instance of IERC20, bound to a specific deployed contract. +func NewIERC20(address common.Address, backend bind.ContractBackend) (*IERC20, error) { + contract, err := bindIERC20(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC20{IERC20Caller: IERC20Caller{contract: contract}, IERC20Transactor: IERC20Transactor{contract: contract}, IERC20Filterer: IERC20Filterer{contract: contract}}, nil +} + +// NewIERC20Caller creates a new read-only instance of IERC20, bound to a specific deployed contract. +func NewIERC20Caller(address common.Address, caller bind.ContractCaller) (*IERC20Caller, error) { + contract, err := bindIERC20(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC20Caller{contract: contract}, nil +} + +// NewIERC20Transactor creates a new write-only instance of IERC20, bound to a specific deployed contract. +func NewIERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC20Transactor, error) { + contract, err := bindIERC20(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC20Transactor{contract: contract}, nil +} + +// NewIERC20Filterer creates a new log filterer instance of IERC20, bound to a specific deployed contract. +func NewIERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC20Filterer, error) { + contract, err := bindIERC20(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC20Filterer{contract: contract}, nil +} + +// bindIERC20 binds a generic wrapper to an already deployed contract. +func bindIERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC20MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20 *IERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20.Contract.IERC20Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20 *IERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20.Contract.IERC20Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20 *IERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20.Contract.IERC20Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20 *IERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20 *IERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20 *IERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IERC20 *IERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _IERC20.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IERC20 *IERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IERC20 *IERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IERC20 *IERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _IERC20.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IERC20 *IERC20Session) BalanceOf(account common.Address) (*big.Int, error) { + return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IERC20 *IERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_IERC20 *IERC20Caller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _IERC20.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_IERC20 *IERC20Session) Decimals() (uint8, error) { + return _IERC20.Contract.Decimals(&_IERC20.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_IERC20 *IERC20CallerSession) Decimals() (uint8, error) { + return _IERC20.Contract.Decimals(&_IERC20.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_IERC20 *IERC20Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _IERC20.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_IERC20 *IERC20Session) Name() (string, error) { + return _IERC20.Contract.Name(&_IERC20.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_IERC20 *IERC20CallerSession) Name() (string, error) { + return _IERC20.Contract.Name(&_IERC20.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_IERC20 *IERC20Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _IERC20.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_IERC20 *IERC20Session) Symbol() (string, error) { + return _IERC20.Contract.Symbol(&_IERC20.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_IERC20 *IERC20CallerSession) Symbol() (string, error) { + return _IERC20.Contract.Symbol(&_IERC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC20 *IERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IERC20.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC20 *IERC20Session) TotalSupply() (*big.Int, error) { + return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC20 *IERC20CallerSession) TotalSupply() (*big.Int, error) { + return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_IERC20 *IERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _IERC20.contract.Transact(opts, "approve", spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_IERC20 *IERC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_IERC20 *IERC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_IERC20 *IERC20Transactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IERC20.contract.Transact(opts, "transfer", to, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_IERC20 *IERC20Session) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, to, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_IERC20 *IERC20TransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, to, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_IERC20 *IERC20Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IERC20.contract.Transact(opts, "transferFrom", from, to, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_IERC20 *IERC20Session) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, from, to, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_IERC20 *IERC20TransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, from, to, amount) +} + +// IERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC20 contract. +type IERC20ApprovalIterator struct { + Event *IERC20Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20Approval represents a Approval event raised by the IERC20 contract. +type IERC20Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IERC20 *IERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*IERC20ApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _IERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &IERC20ApprovalIterator{contract: _IERC20.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IERC20 *IERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _IERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC20Approval) + if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IERC20 *IERC20Filterer) ParseApproval(log types.Log) (*IERC20Approval, error) { + event := new(IERC20Approval) + if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC20 contract. +type IERC20TransferIterator struct { + Event *IERC20Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20Transfer represents a Transfer event raised by the IERC20 contract. +type IERC20Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IERC20 *IERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*IERC20TransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &IERC20TransferIterator{contract: _IERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IERC20 *IERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC20Transfer) + if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IERC20 *IERC20Filterer) ParseTransfer(log types.Log) (*IERC20Transfer, error) { + event := new(IERC20Transfer) + if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/ierc20custodynew.sol/ierc20custodynewerrors.go b/v2/pkg/ierc20custodynew.sol/ierc20custodynewerrors.go new file mode 100644 index 00000000..2d0991e1 --- /dev/null +++ b/v2/pkg/ierc20custodynew.sol/ierc20custodynewerrors.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc20custodynew + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC20CustodyNewErrorsMetaData contains all meta data concerning the IERC20CustodyNewErrors contract. +var IERC20CustodyNewErrorsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", +} + +// IERC20CustodyNewErrorsABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC20CustodyNewErrorsMetaData.ABI instead. +var IERC20CustodyNewErrorsABI = IERC20CustodyNewErrorsMetaData.ABI + +// IERC20CustodyNewErrors is an auto generated Go binding around an Ethereum contract. +type IERC20CustodyNewErrors struct { + IERC20CustodyNewErrorsCaller // Read-only binding to the contract + IERC20CustodyNewErrorsTransactor // Write-only binding to the contract + IERC20CustodyNewErrorsFilterer // Log filterer for contract events +} + +// IERC20CustodyNewErrorsCaller is an auto generated read-only Go binding around an Ethereum contract. +type IERC20CustodyNewErrorsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyNewErrorsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC20CustodyNewErrorsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyNewErrorsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC20CustodyNewErrorsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyNewErrorsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC20CustodyNewErrorsSession struct { + Contract *IERC20CustodyNewErrors // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20CustodyNewErrorsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC20CustodyNewErrorsCallerSession struct { + Contract *IERC20CustodyNewErrorsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC20CustodyNewErrorsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC20CustodyNewErrorsTransactorSession struct { + Contract *IERC20CustodyNewErrorsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20CustodyNewErrorsRaw is an auto generated low-level Go binding around an Ethereum contract. +type IERC20CustodyNewErrorsRaw struct { + Contract *IERC20CustodyNewErrors // Generic contract binding to access the raw methods on +} + +// IERC20CustodyNewErrorsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC20CustodyNewErrorsCallerRaw struct { + Contract *IERC20CustodyNewErrorsCaller // Generic read-only contract binding to access the raw methods on +} + +// IERC20CustodyNewErrorsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC20CustodyNewErrorsTransactorRaw struct { + Contract *IERC20CustodyNewErrorsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC20CustodyNewErrors creates a new instance of IERC20CustodyNewErrors, bound to a specific deployed contract. +func NewIERC20CustodyNewErrors(address common.Address, backend bind.ContractBackend) (*IERC20CustodyNewErrors, error) { + contract, err := bindIERC20CustodyNewErrors(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC20CustodyNewErrors{IERC20CustodyNewErrorsCaller: IERC20CustodyNewErrorsCaller{contract: contract}, IERC20CustodyNewErrorsTransactor: IERC20CustodyNewErrorsTransactor{contract: contract}, IERC20CustodyNewErrorsFilterer: IERC20CustodyNewErrorsFilterer{contract: contract}}, nil +} + +// NewIERC20CustodyNewErrorsCaller creates a new read-only instance of IERC20CustodyNewErrors, bound to a specific deployed contract. +func NewIERC20CustodyNewErrorsCaller(address common.Address, caller bind.ContractCaller) (*IERC20CustodyNewErrorsCaller, error) { + contract, err := bindIERC20CustodyNewErrors(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC20CustodyNewErrorsCaller{contract: contract}, nil +} + +// NewIERC20CustodyNewErrorsTransactor creates a new write-only instance of IERC20CustodyNewErrors, bound to a specific deployed contract. +func NewIERC20CustodyNewErrorsTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC20CustodyNewErrorsTransactor, error) { + contract, err := bindIERC20CustodyNewErrors(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC20CustodyNewErrorsTransactor{contract: contract}, nil +} + +// NewIERC20CustodyNewErrorsFilterer creates a new log filterer instance of IERC20CustodyNewErrors, bound to a specific deployed contract. +func NewIERC20CustodyNewErrorsFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC20CustodyNewErrorsFilterer, error) { + contract, err := bindIERC20CustodyNewErrors(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC20CustodyNewErrorsFilterer{contract: contract}, nil +} + +// bindIERC20CustodyNewErrors binds a generic wrapper to an already deployed contract. +func bindIERC20CustodyNewErrors(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC20CustodyNewErrorsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20CustodyNewErrors *IERC20CustodyNewErrorsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20CustodyNewErrors.Contract.IERC20CustodyNewErrorsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20CustodyNewErrors *IERC20CustodyNewErrorsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20CustodyNewErrors.Contract.IERC20CustodyNewErrorsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20CustodyNewErrors *IERC20CustodyNewErrorsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20CustodyNewErrors.Contract.IERC20CustodyNewErrorsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20CustodyNewErrors *IERC20CustodyNewErrorsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20CustodyNewErrors.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20CustodyNewErrors *IERC20CustodyNewErrorsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20CustodyNewErrors.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20CustodyNewErrors *IERC20CustodyNewErrorsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20CustodyNewErrors.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/ierc20custodynew.sol/ierc20custodynewevents.go b/v2/pkg/ierc20custodynew.sol/ierc20custodynewevents.go new file mode 100644 index 00000000..752ed7ea --- /dev/null +++ b/v2/pkg/ierc20custodynew.sol/ierc20custodynewevents.go @@ -0,0 +1,645 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc20custodynew + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC20CustodyNewEventsMetaData contains all meta data concerning the IERC20CustodyNewEvents contract. +var IERC20CustodyNewEventsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndCall\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndRevert\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", +} + +// IERC20CustodyNewEventsABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC20CustodyNewEventsMetaData.ABI instead. +var IERC20CustodyNewEventsABI = IERC20CustodyNewEventsMetaData.ABI + +// IERC20CustodyNewEvents is an auto generated Go binding around an Ethereum contract. +type IERC20CustodyNewEvents struct { + IERC20CustodyNewEventsCaller // Read-only binding to the contract + IERC20CustodyNewEventsTransactor // Write-only binding to the contract + IERC20CustodyNewEventsFilterer // Log filterer for contract events +} + +// IERC20CustodyNewEventsCaller is an auto generated read-only Go binding around an Ethereum contract. +type IERC20CustodyNewEventsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyNewEventsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC20CustodyNewEventsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyNewEventsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC20CustodyNewEventsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyNewEventsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC20CustodyNewEventsSession struct { + Contract *IERC20CustodyNewEvents // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20CustodyNewEventsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC20CustodyNewEventsCallerSession struct { + Contract *IERC20CustodyNewEventsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC20CustodyNewEventsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC20CustodyNewEventsTransactorSession struct { + Contract *IERC20CustodyNewEventsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20CustodyNewEventsRaw is an auto generated low-level Go binding around an Ethereum contract. +type IERC20CustodyNewEventsRaw struct { + Contract *IERC20CustodyNewEvents // Generic contract binding to access the raw methods on +} + +// IERC20CustodyNewEventsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC20CustodyNewEventsCallerRaw struct { + Contract *IERC20CustodyNewEventsCaller // Generic read-only contract binding to access the raw methods on +} + +// IERC20CustodyNewEventsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC20CustodyNewEventsTransactorRaw struct { + Contract *IERC20CustodyNewEventsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC20CustodyNewEvents creates a new instance of IERC20CustodyNewEvents, bound to a specific deployed contract. +func NewIERC20CustodyNewEvents(address common.Address, backend bind.ContractBackend) (*IERC20CustodyNewEvents, error) { + contract, err := bindIERC20CustodyNewEvents(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC20CustodyNewEvents{IERC20CustodyNewEventsCaller: IERC20CustodyNewEventsCaller{contract: contract}, IERC20CustodyNewEventsTransactor: IERC20CustodyNewEventsTransactor{contract: contract}, IERC20CustodyNewEventsFilterer: IERC20CustodyNewEventsFilterer{contract: contract}}, nil +} + +// NewIERC20CustodyNewEventsCaller creates a new read-only instance of IERC20CustodyNewEvents, bound to a specific deployed contract. +func NewIERC20CustodyNewEventsCaller(address common.Address, caller bind.ContractCaller) (*IERC20CustodyNewEventsCaller, error) { + contract, err := bindIERC20CustodyNewEvents(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC20CustodyNewEventsCaller{contract: contract}, nil +} + +// NewIERC20CustodyNewEventsTransactor creates a new write-only instance of IERC20CustodyNewEvents, bound to a specific deployed contract. +func NewIERC20CustodyNewEventsTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC20CustodyNewEventsTransactor, error) { + contract, err := bindIERC20CustodyNewEvents(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC20CustodyNewEventsTransactor{contract: contract}, nil +} + +// NewIERC20CustodyNewEventsFilterer creates a new log filterer instance of IERC20CustodyNewEvents, bound to a specific deployed contract. +func NewIERC20CustodyNewEventsFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC20CustodyNewEventsFilterer, error) { + contract, err := bindIERC20CustodyNewEvents(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC20CustodyNewEventsFilterer{contract: contract}, nil +} + +// bindIERC20CustodyNewEvents binds a generic wrapper to an already deployed contract. +func bindIERC20CustodyNewEvents(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC20CustodyNewEventsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20CustodyNewEvents.Contract.IERC20CustodyNewEventsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20CustodyNewEvents.Contract.IERC20CustodyNewEventsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20CustodyNewEvents.Contract.IERC20CustodyNewEventsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20CustodyNewEvents.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20CustodyNewEvents.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20CustodyNewEvents.Contract.contract.Transact(opts, method, params...) +} + +// IERC20CustodyNewEventsWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the IERC20CustodyNewEvents contract. +type IERC20CustodyNewEventsWithdrawIterator struct { + Event *IERC20CustodyNewEventsWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20CustodyNewEventsWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyNewEventsWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyNewEventsWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20CustodyNewEventsWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20CustodyNewEventsWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20CustodyNewEventsWithdraw represents a Withdraw event raised by the IERC20CustodyNewEvents contract. +type IERC20CustodyNewEventsWithdraw struct { + Token common.Address + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsFilterer) FilterWithdraw(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*IERC20CustodyNewEventsWithdrawIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20CustodyNewEvents.contract.FilterLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return &IERC20CustodyNewEventsWithdrawIterator{contract: _IERC20CustodyNewEvents.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *IERC20CustodyNewEventsWithdraw, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20CustodyNewEvents.contract.WatchLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC20CustodyNewEventsWithdraw) + if err := _IERC20CustodyNewEvents.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb. +// +// Solidity: event Withdraw(address indexed token, address indexed to, uint256 amount) +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsFilterer) ParseWithdraw(log types.Log) (*IERC20CustodyNewEventsWithdraw, error) { + event := new(IERC20CustodyNewEventsWithdraw) + if err := _IERC20CustodyNewEvents.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC20CustodyNewEventsWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the IERC20CustodyNewEvents contract. +type IERC20CustodyNewEventsWithdrawAndCallIterator struct { + Event *IERC20CustodyNewEventsWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20CustodyNewEventsWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyNewEventsWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyNewEventsWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20CustodyNewEventsWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20CustodyNewEventsWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20CustodyNewEventsWithdrawAndCall represents a WithdrawAndCall event raised by the IERC20CustodyNewEvents contract. +type IERC20CustodyNewEventsWithdrawAndCall struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndCall is a free log retrieval operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*IERC20CustodyNewEventsWithdrawAndCallIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20CustodyNewEvents.contract.FilterLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return &IERC20CustodyNewEventsWithdrawAndCallIterator{contract: _IERC20CustodyNewEvents.contract, event: "WithdrawAndCall", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndCall is a free log subscription operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *IERC20CustodyNewEventsWithdrawAndCall, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20CustodyNewEvents.contract.WatchLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC20CustodyNewEventsWithdrawAndCall) + if err := _IERC20CustodyNewEvents.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndCall is a log parse operation binding the contract event 0x85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e. +// +// Solidity: event WithdrawAndCall(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsFilterer) ParseWithdrawAndCall(log types.Log) (*IERC20CustodyNewEventsWithdrawAndCall, error) { + event := new(IERC20CustodyNewEventsWithdrawAndCall) + if err := _IERC20CustodyNewEvents.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC20CustodyNewEventsWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the IERC20CustodyNewEvents contract. +type IERC20CustodyNewEventsWithdrawAndRevertIterator struct { + Event *IERC20CustodyNewEventsWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20CustodyNewEventsWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyNewEventsWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyNewEventsWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20CustodyNewEventsWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20CustodyNewEventsWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20CustodyNewEventsWithdrawAndRevert represents a WithdrawAndRevert event raised by the IERC20CustodyNewEvents contract. +type IERC20CustodyNewEventsWithdrawAndRevert struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndRevert is a free log retrieval operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*IERC20CustodyNewEventsWithdrawAndRevertIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20CustodyNewEvents.contract.FilterLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return &IERC20CustodyNewEventsWithdrawAndRevertIterator{contract: _IERC20CustodyNewEvents.contract, event: "WithdrawAndRevert", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndRevert is a free log subscription operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *IERC20CustodyNewEventsWithdrawAndRevert, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20CustodyNewEvents.contract.WatchLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC20CustodyNewEventsWithdrawAndRevert) + if err := _IERC20CustodyNewEvents.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndRevert is a log parse operation binding the contract event 0xb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8. +// +// Solidity: event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IERC20CustodyNewEvents *IERC20CustodyNewEventsFilterer) ParseWithdrawAndRevert(log types.Log) (*IERC20CustodyNewEventsWithdrawAndRevert, error) { + event := new(IERC20CustodyNewEventsWithdrawAndRevert) + if err := _IERC20CustodyNewEvents.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/ierc20metadata.sol/ierc20metadata.go b/v2/pkg/ierc20metadata.sol/ierc20metadata.go new file mode 100644 index 00000000..33e24b61 --- /dev/null +++ b/v2/pkg/ierc20metadata.sol/ierc20metadata.go @@ -0,0 +1,738 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc20metadata + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC20MetadataMetaData contains all meta data concerning the IERC20Metadata contract. +var IERC20MetadataMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", +} + +// IERC20MetadataABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC20MetadataMetaData.ABI instead. +var IERC20MetadataABI = IERC20MetadataMetaData.ABI + +// IERC20Metadata is an auto generated Go binding around an Ethereum contract. +type IERC20Metadata struct { + IERC20MetadataCaller // Read-only binding to the contract + IERC20MetadataTransactor // Write-only binding to the contract + IERC20MetadataFilterer // Log filterer for contract events +} + +// IERC20MetadataCaller is an auto generated read-only Go binding around an Ethereum contract. +type IERC20MetadataCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20MetadataTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC20MetadataTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20MetadataFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC20MetadataFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20MetadataSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC20MetadataSession struct { + Contract *IERC20Metadata // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20MetadataCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC20MetadataCallerSession struct { + Contract *IERC20MetadataCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC20MetadataTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC20MetadataTransactorSession struct { + Contract *IERC20MetadataTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20MetadataRaw is an auto generated low-level Go binding around an Ethereum contract. +type IERC20MetadataRaw struct { + Contract *IERC20Metadata // Generic contract binding to access the raw methods on +} + +// IERC20MetadataCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC20MetadataCallerRaw struct { + Contract *IERC20MetadataCaller // Generic read-only contract binding to access the raw methods on +} + +// IERC20MetadataTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC20MetadataTransactorRaw struct { + Contract *IERC20MetadataTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC20Metadata creates a new instance of IERC20Metadata, bound to a specific deployed contract. +func NewIERC20Metadata(address common.Address, backend bind.ContractBackend) (*IERC20Metadata, error) { + contract, err := bindIERC20Metadata(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC20Metadata{IERC20MetadataCaller: IERC20MetadataCaller{contract: contract}, IERC20MetadataTransactor: IERC20MetadataTransactor{contract: contract}, IERC20MetadataFilterer: IERC20MetadataFilterer{contract: contract}}, nil +} + +// NewIERC20MetadataCaller creates a new read-only instance of IERC20Metadata, bound to a specific deployed contract. +func NewIERC20MetadataCaller(address common.Address, caller bind.ContractCaller) (*IERC20MetadataCaller, error) { + contract, err := bindIERC20Metadata(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC20MetadataCaller{contract: contract}, nil +} + +// NewIERC20MetadataTransactor creates a new write-only instance of IERC20Metadata, bound to a specific deployed contract. +func NewIERC20MetadataTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC20MetadataTransactor, error) { + contract, err := bindIERC20Metadata(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC20MetadataTransactor{contract: contract}, nil +} + +// NewIERC20MetadataFilterer creates a new log filterer instance of IERC20Metadata, bound to a specific deployed contract. +func NewIERC20MetadataFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC20MetadataFilterer, error) { + contract, err := bindIERC20Metadata(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC20MetadataFilterer{contract: contract}, nil +} + +// bindIERC20Metadata binds a generic wrapper to an already deployed contract. +func bindIERC20Metadata(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC20MetadataMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20Metadata *IERC20MetadataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20Metadata.Contract.IERC20MetadataCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20Metadata *IERC20MetadataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20Metadata.Contract.IERC20MetadataTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20Metadata *IERC20MetadataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20Metadata.Contract.IERC20MetadataTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20Metadata *IERC20MetadataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20Metadata.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20Metadata *IERC20MetadataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20Metadata.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20Metadata *IERC20MetadataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20Metadata.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IERC20Metadata *IERC20MetadataCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _IERC20Metadata.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IERC20Metadata *IERC20MetadataSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IERC20Metadata.Contract.Allowance(&_IERC20Metadata.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IERC20Metadata *IERC20MetadataCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IERC20Metadata.Contract.Allowance(&_IERC20Metadata.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IERC20Metadata *IERC20MetadataCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _IERC20Metadata.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IERC20Metadata *IERC20MetadataSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IERC20Metadata.Contract.BalanceOf(&_IERC20Metadata.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IERC20Metadata *IERC20MetadataCallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IERC20Metadata.Contract.BalanceOf(&_IERC20Metadata.CallOpts, account) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_IERC20Metadata *IERC20MetadataCaller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _IERC20Metadata.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_IERC20Metadata *IERC20MetadataSession) Decimals() (uint8, error) { + return _IERC20Metadata.Contract.Decimals(&_IERC20Metadata.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_IERC20Metadata *IERC20MetadataCallerSession) Decimals() (uint8, error) { + return _IERC20Metadata.Contract.Decimals(&_IERC20Metadata.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_IERC20Metadata *IERC20MetadataCaller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _IERC20Metadata.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_IERC20Metadata *IERC20MetadataSession) Name() (string, error) { + return _IERC20Metadata.Contract.Name(&_IERC20Metadata.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_IERC20Metadata *IERC20MetadataCallerSession) Name() (string, error) { + return _IERC20Metadata.Contract.Name(&_IERC20Metadata.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_IERC20Metadata *IERC20MetadataCaller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _IERC20Metadata.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_IERC20Metadata *IERC20MetadataSession) Symbol() (string, error) { + return _IERC20Metadata.Contract.Symbol(&_IERC20Metadata.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_IERC20Metadata *IERC20MetadataCallerSession) Symbol() (string, error) { + return _IERC20Metadata.Contract.Symbol(&_IERC20Metadata.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC20Metadata *IERC20MetadataCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IERC20Metadata.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC20Metadata *IERC20MetadataSession) TotalSupply() (*big.Int, error) { + return _IERC20Metadata.Contract.TotalSupply(&_IERC20Metadata.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC20Metadata *IERC20MetadataCallerSession) TotalSupply() (*big.Int, error) { + return _IERC20Metadata.Contract.TotalSupply(&_IERC20Metadata.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_IERC20Metadata *IERC20MetadataTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20Metadata.contract.Transact(opts, "approve", spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_IERC20Metadata *IERC20MetadataSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20Metadata.Contract.Approve(&_IERC20Metadata.TransactOpts, spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_IERC20Metadata *IERC20MetadataTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20Metadata.Contract.Approve(&_IERC20Metadata.TransactOpts, spender, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_IERC20Metadata *IERC20MetadataTransactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20Metadata.contract.Transact(opts, "transfer", to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_IERC20Metadata *IERC20MetadataSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20Metadata.Contract.Transfer(&_IERC20Metadata.TransactOpts, to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_IERC20Metadata *IERC20MetadataTransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20Metadata.Contract.Transfer(&_IERC20Metadata.TransactOpts, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_IERC20Metadata *IERC20MetadataTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20Metadata.contract.Transact(opts, "transferFrom", from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_IERC20Metadata *IERC20MetadataSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20Metadata.Contract.TransferFrom(&_IERC20Metadata.TransactOpts, from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_IERC20Metadata *IERC20MetadataTransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IERC20Metadata.Contract.TransferFrom(&_IERC20Metadata.TransactOpts, from, to, value) +} + +// IERC20MetadataApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC20Metadata contract. +type IERC20MetadataApprovalIterator struct { + Event *IERC20MetadataApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20MetadataApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20MetadataApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20MetadataApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20MetadataApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20MetadataApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20MetadataApproval represents a Approval event raised by the IERC20Metadata contract. +type IERC20MetadataApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IERC20Metadata *IERC20MetadataFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*IERC20MetadataApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _IERC20Metadata.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &IERC20MetadataApprovalIterator{contract: _IERC20Metadata.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IERC20Metadata *IERC20MetadataFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC20MetadataApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _IERC20Metadata.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC20MetadataApproval) + if err := _IERC20Metadata.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IERC20Metadata *IERC20MetadataFilterer) ParseApproval(log types.Log) (*IERC20MetadataApproval, error) { + event := new(IERC20MetadataApproval) + if err := _IERC20Metadata.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC20MetadataTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC20Metadata contract. +type IERC20MetadataTransferIterator struct { + Event *IERC20MetadataTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20MetadataTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20MetadataTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20MetadataTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20MetadataTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20MetadataTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20MetadataTransfer represents a Transfer event raised by the IERC20Metadata contract. +type IERC20MetadataTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IERC20Metadata *IERC20MetadataFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*IERC20MetadataTransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20Metadata.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &IERC20MetadataTransferIterator{contract: _IERC20Metadata.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IERC20Metadata *IERC20MetadataFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC20MetadataTransfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IERC20Metadata.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC20MetadataTransfer) + if err := _IERC20Metadata.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IERC20Metadata *IERC20MetadataFilterer) ParseTransfer(log types.Log) (*IERC20MetadataTransfer, error) { + event := new(IERC20MetadataTransfer) + if err := _IERC20Metadata.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/ierc20permit.sol/ierc20permit.go b/v2/pkg/ierc20permit.sol/ierc20permit.go new file mode 100644 index 00000000..8a118b42 --- /dev/null +++ b/v2/pkg/ierc20permit.sol/ierc20permit.go @@ -0,0 +1,264 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc20permit + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC20PermitMetaData contains all meta data concerning the IERC20Permit contract. +var IERC20PermitMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"nonces\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permit\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"deadline\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", +} + +// IERC20PermitABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC20PermitMetaData.ABI instead. +var IERC20PermitABI = IERC20PermitMetaData.ABI + +// IERC20Permit is an auto generated Go binding around an Ethereum contract. +type IERC20Permit struct { + IERC20PermitCaller // Read-only binding to the contract + IERC20PermitTransactor // Write-only binding to the contract + IERC20PermitFilterer // Log filterer for contract events +} + +// IERC20PermitCaller is an auto generated read-only Go binding around an Ethereum contract. +type IERC20PermitCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20PermitTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC20PermitTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20PermitFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC20PermitFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20PermitSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC20PermitSession struct { + Contract *IERC20Permit // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20PermitCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC20PermitCallerSession struct { + Contract *IERC20PermitCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC20PermitTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC20PermitTransactorSession struct { + Contract *IERC20PermitTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20PermitRaw is an auto generated low-level Go binding around an Ethereum contract. +type IERC20PermitRaw struct { + Contract *IERC20Permit // Generic contract binding to access the raw methods on +} + +// IERC20PermitCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC20PermitCallerRaw struct { + Contract *IERC20PermitCaller // Generic read-only contract binding to access the raw methods on +} + +// IERC20PermitTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC20PermitTransactorRaw struct { + Contract *IERC20PermitTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC20Permit creates a new instance of IERC20Permit, bound to a specific deployed contract. +func NewIERC20Permit(address common.Address, backend bind.ContractBackend) (*IERC20Permit, error) { + contract, err := bindIERC20Permit(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC20Permit{IERC20PermitCaller: IERC20PermitCaller{contract: contract}, IERC20PermitTransactor: IERC20PermitTransactor{contract: contract}, IERC20PermitFilterer: IERC20PermitFilterer{contract: contract}}, nil +} + +// NewIERC20PermitCaller creates a new read-only instance of IERC20Permit, bound to a specific deployed contract. +func NewIERC20PermitCaller(address common.Address, caller bind.ContractCaller) (*IERC20PermitCaller, error) { + contract, err := bindIERC20Permit(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC20PermitCaller{contract: contract}, nil +} + +// NewIERC20PermitTransactor creates a new write-only instance of IERC20Permit, bound to a specific deployed contract. +func NewIERC20PermitTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC20PermitTransactor, error) { + contract, err := bindIERC20Permit(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC20PermitTransactor{contract: contract}, nil +} + +// NewIERC20PermitFilterer creates a new log filterer instance of IERC20Permit, bound to a specific deployed contract. +func NewIERC20PermitFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC20PermitFilterer, error) { + contract, err := bindIERC20Permit(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC20PermitFilterer{contract: contract}, nil +} + +// bindIERC20Permit binds a generic wrapper to an already deployed contract. +func bindIERC20Permit(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC20PermitMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20Permit *IERC20PermitRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20Permit.Contract.IERC20PermitCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20Permit *IERC20PermitRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20Permit.Contract.IERC20PermitTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20Permit *IERC20PermitRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20Permit.Contract.IERC20PermitTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC20Permit *IERC20PermitCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20Permit.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC20Permit *IERC20PermitTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20Permit.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20Permit *IERC20PermitTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20Permit.Contract.contract.Transact(opts, method, params...) +} + +// DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. +// +// Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) +func (_IERC20Permit *IERC20PermitCaller) DOMAINSEPARATOR(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _IERC20Permit.contract.Call(opts, &out, "DOMAIN_SEPARATOR") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. +// +// Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) +func (_IERC20Permit *IERC20PermitSession) DOMAINSEPARATOR() ([32]byte, error) { + return _IERC20Permit.Contract.DOMAINSEPARATOR(&_IERC20Permit.CallOpts) +} + +// DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. +// +// Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) +func (_IERC20Permit *IERC20PermitCallerSession) DOMAINSEPARATOR() ([32]byte, error) { + return _IERC20Permit.Contract.DOMAINSEPARATOR(&_IERC20Permit.CallOpts) +} + +// Nonces is a free data retrieval call binding the contract method 0x7ecebe00. +// +// Solidity: function nonces(address owner) view returns(uint256) +func (_IERC20Permit *IERC20PermitCaller) Nonces(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { + var out []interface{} + err := _IERC20Permit.contract.Call(opts, &out, "nonces", owner) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Nonces is a free data retrieval call binding the contract method 0x7ecebe00. +// +// Solidity: function nonces(address owner) view returns(uint256) +func (_IERC20Permit *IERC20PermitSession) Nonces(owner common.Address) (*big.Int, error) { + return _IERC20Permit.Contract.Nonces(&_IERC20Permit.CallOpts, owner) +} + +// Nonces is a free data retrieval call binding the contract method 0x7ecebe00. +// +// Solidity: function nonces(address owner) view returns(uint256) +func (_IERC20Permit *IERC20PermitCallerSession) Nonces(owner common.Address) (*big.Int, error) { + return _IERC20Permit.Contract.Nonces(&_IERC20Permit.CallOpts, owner) +} + +// Permit is a paid mutator transaction binding the contract method 0xd505accf. +// +// Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns() +func (_IERC20Permit *IERC20PermitTransactor) Permit(opts *bind.TransactOpts, owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) { + return _IERC20Permit.contract.Transact(opts, "permit", owner, spender, value, deadline, v, r, s) +} + +// Permit is a paid mutator transaction binding the contract method 0xd505accf. +// +// Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns() +func (_IERC20Permit *IERC20PermitSession) Permit(owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) { + return _IERC20Permit.Contract.Permit(&_IERC20Permit.TransactOpts, owner, spender, value, deadline, v, r, s) +} + +// Permit is a paid mutator transaction binding the contract method 0xd505accf. +// +// Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns() +func (_IERC20Permit *IERC20PermitTransactorSession) Permit(owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) { + return _IERC20Permit.Contract.Permit(&_IERC20Permit.TransactOpts, owner, spender, value, deadline, v, r, s) +} diff --git a/v2/pkg/ierc721.sol/ierc721.go b/v2/pkg/ierc721.sol/ierc721.go new file mode 100644 index 00000000..4c0bc875 --- /dev/null +++ b/v2/pkg/ierc721.sol/ierc721.go @@ -0,0 +1,919 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc721 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC721MetaData contains all meta data concerning the IERC721 contract. +var IERC721MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApproved\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isApprovedForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownerOf\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setApprovalForAll\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ApprovalForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false}]", +} + +// IERC721ABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC721MetaData.ABI instead. +var IERC721ABI = IERC721MetaData.ABI + +// IERC721 is an auto generated Go binding around an Ethereum contract. +type IERC721 struct { + IERC721Caller // Read-only binding to the contract + IERC721Transactor // Write-only binding to the contract + IERC721Filterer // Log filterer for contract events +} + +// IERC721Caller is an auto generated read-only Go binding around an Ethereum contract. +type IERC721Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721Transactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC721Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC721Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC721Session struct { + Contract *IERC721 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC721CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC721CallerSession struct { + Contract *IERC721Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC721TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC721TransactorSession struct { + Contract *IERC721Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC721Raw is an auto generated low-level Go binding around an Ethereum contract. +type IERC721Raw struct { + Contract *IERC721 // Generic contract binding to access the raw methods on +} + +// IERC721CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC721CallerRaw struct { + Contract *IERC721Caller // Generic read-only contract binding to access the raw methods on +} + +// IERC721TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC721TransactorRaw struct { + Contract *IERC721Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC721 creates a new instance of IERC721, bound to a specific deployed contract. +func NewIERC721(address common.Address, backend bind.ContractBackend) (*IERC721, error) { + contract, err := bindIERC721(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC721{IERC721Caller: IERC721Caller{contract: contract}, IERC721Transactor: IERC721Transactor{contract: contract}, IERC721Filterer: IERC721Filterer{contract: contract}}, nil +} + +// NewIERC721Caller creates a new read-only instance of IERC721, bound to a specific deployed contract. +func NewIERC721Caller(address common.Address, caller bind.ContractCaller) (*IERC721Caller, error) { + contract, err := bindIERC721(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC721Caller{contract: contract}, nil +} + +// NewIERC721Transactor creates a new write-only instance of IERC721, bound to a specific deployed contract. +func NewIERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC721Transactor, error) { + contract, err := bindIERC721(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC721Transactor{contract: contract}, nil +} + +// NewIERC721Filterer creates a new log filterer instance of IERC721, bound to a specific deployed contract. +func NewIERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC721Filterer, error) { + contract, err := bindIERC721(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC721Filterer{contract: contract}, nil +} + +// bindIERC721 binds a generic wrapper to an already deployed contract. +func bindIERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC721MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC721 *IERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC721.Contract.IERC721Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC721 *IERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC721.Contract.IERC721Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC721 *IERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC721.Contract.IERC721Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC721 *IERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC721.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC721 *IERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC721.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC721 *IERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC721.Contract.contract.Transact(opts, method, params...) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address _owner) view returns(uint256) +func (_IERC721 *IERC721Caller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) { + var out []interface{} + err := _IERC721.contract.Call(opts, &out, "balanceOf", _owner) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address _owner) view returns(uint256) +func (_IERC721 *IERC721Session) BalanceOf(_owner common.Address) (*big.Int, error) { + return _IERC721.Contract.BalanceOf(&_IERC721.CallOpts, _owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address _owner) view returns(uint256) +func (_IERC721 *IERC721CallerSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _IERC721.Contract.BalanceOf(&_IERC721.CallOpts, _owner) +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 _tokenId) view returns(address) +func (_IERC721 *IERC721Caller) GetApproved(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) { + var out []interface{} + err := _IERC721.contract.Call(opts, &out, "getApproved", _tokenId) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 _tokenId) view returns(address) +func (_IERC721 *IERC721Session) GetApproved(_tokenId *big.Int) (common.Address, error) { + return _IERC721.Contract.GetApproved(&_IERC721.CallOpts, _tokenId) +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 _tokenId) view returns(address) +func (_IERC721 *IERC721CallerSession) GetApproved(_tokenId *big.Int) (common.Address, error) { + return _IERC721.Contract.GetApproved(&_IERC721.CallOpts, _tokenId) +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address _owner, address _operator) view returns(bool) +func (_IERC721 *IERC721Caller) IsApprovedForAll(opts *bind.CallOpts, _owner common.Address, _operator common.Address) (bool, error) { + var out []interface{} + err := _IERC721.contract.Call(opts, &out, "isApprovedForAll", _owner, _operator) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address _owner, address _operator) view returns(bool) +func (_IERC721 *IERC721Session) IsApprovedForAll(_owner common.Address, _operator common.Address) (bool, error) { + return _IERC721.Contract.IsApprovedForAll(&_IERC721.CallOpts, _owner, _operator) +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address _owner, address _operator) view returns(bool) +func (_IERC721 *IERC721CallerSession) IsApprovedForAll(_owner common.Address, _operator common.Address) (bool, error) { + return _IERC721.Contract.IsApprovedForAll(&_IERC721.CallOpts, _owner, _operator) +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 _tokenId) view returns(address) +func (_IERC721 *IERC721Caller) OwnerOf(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) { + var out []interface{} + err := _IERC721.contract.Call(opts, &out, "ownerOf", _tokenId) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 _tokenId) view returns(address) +func (_IERC721 *IERC721Session) OwnerOf(_tokenId *big.Int) (common.Address, error) { + return _IERC721.Contract.OwnerOf(&_IERC721.CallOpts, _tokenId) +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 _tokenId) view returns(address) +func (_IERC721 *IERC721CallerSession) OwnerOf(_tokenId *big.Int) (common.Address, error) { + return _IERC721.Contract.OwnerOf(&_IERC721.CallOpts, _tokenId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC721 *IERC721Caller) SupportsInterface(opts *bind.CallOpts, interfaceID [4]byte) (bool, error) { + var out []interface{} + err := _IERC721.contract.Call(opts, &out, "supportsInterface", interfaceID) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC721 *IERC721Session) SupportsInterface(interfaceID [4]byte) (bool, error) { + return _IERC721.Contract.SupportsInterface(&_IERC721.CallOpts, interfaceID) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC721 *IERC721CallerSession) SupportsInterface(interfaceID [4]byte) (bool, error) { + return _IERC721.Contract.SupportsInterface(&_IERC721.CallOpts, interfaceID) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _approved, uint256 _tokenId) payable returns() +func (_IERC721 *IERC721Transactor) Approve(opts *bind.TransactOpts, _approved common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721.contract.Transact(opts, "approve", _approved, _tokenId) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _approved, uint256 _tokenId) payable returns() +func (_IERC721 *IERC721Session) Approve(_approved common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721.Contract.Approve(&_IERC721.TransactOpts, _approved, _tokenId) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _approved, uint256 _tokenId) payable returns() +func (_IERC721 *IERC721TransactorSession) Approve(_approved common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721.Contract.Approve(&_IERC721.TransactOpts, _approved, _tokenId) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721 *IERC721Transactor) SafeTransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721.contract.Transact(opts, "safeTransferFrom", _from, _to, _tokenId) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721 *IERC721Session) SafeTransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721.Contract.SafeTransferFrom(&_IERC721.TransactOpts, _from, _to, _tokenId) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721 *IERC721TransactorSession) SafeTransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721.Contract.SafeTransferFrom(&_IERC721.TransactOpts, _from, _to, _tokenId) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) payable returns() +func (_IERC721 *IERC721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int, data []byte) (*types.Transaction, error) { + return _IERC721.contract.Transact(opts, "safeTransferFrom0", _from, _to, _tokenId, data) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) payable returns() +func (_IERC721 *IERC721Session) SafeTransferFrom0(_from common.Address, _to common.Address, _tokenId *big.Int, data []byte) (*types.Transaction, error) { + return _IERC721.Contract.SafeTransferFrom0(&_IERC721.TransactOpts, _from, _to, _tokenId, data) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) payable returns() +func (_IERC721 *IERC721TransactorSession) SafeTransferFrom0(_from common.Address, _to common.Address, _tokenId *big.Int, data []byte) (*types.Transaction, error) { + return _IERC721.Contract.SafeTransferFrom0(&_IERC721.TransactOpts, _from, _to, _tokenId, data) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address _operator, bool _approved) returns() +func (_IERC721 *IERC721Transactor) SetApprovalForAll(opts *bind.TransactOpts, _operator common.Address, _approved bool) (*types.Transaction, error) { + return _IERC721.contract.Transact(opts, "setApprovalForAll", _operator, _approved) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address _operator, bool _approved) returns() +func (_IERC721 *IERC721Session) SetApprovalForAll(_operator common.Address, _approved bool) (*types.Transaction, error) { + return _IERC721.Contract.SetApprovalForAll(&_IERC721.TransactOpts, _operator, _approved) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address _operator, bool _approved) returns() +func (_IERC721 *IERC721TransactorSession) SetApprovalForAll(_operator common.Address, _approved bool) (*types.Transaction, error) { + return _IERC721.Contract.SetApprovalForAll(&_IERC721.TransactOpts, _operator, _approved) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721 *IERC721Transactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721.contract.Transact(opts, "transferFrom", _from, _to, _tokenId) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721 *IERC721Session) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721.Contract.TransferFrom(&_IERC721.TransactOpts, _from, _to, _tokenId) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721 *IERC721TransactorSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721.Contract.TransferFrom(&_IERC721.TransactOpts, _from, _to, _tokenId) +} + +// IERC721ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC721 contract. +type IERC721ApprovalIterator struct { + Event *IERC721Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC721ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC721Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC721Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC721ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC721ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC721Approval represents a Approval event raised by the IERC721 contract. +type IERC721Approval struct { + Owner common.Address + Approved common.Address + TokenId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_IERC721 *IERC721Filterer) FilterApproval(opts *bind.FilterOpts, _owner []common.Address, _approved []common.Address, _tokenId []*big.Int) (*IERC721ApprovalIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _approvedRule []interface{} + for _, _approvedItem := range _approved { + _approvedRule = append(_approvedRule, _approvedItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721.contract.FilterLogs(opts, "Approval", _ownerRule, _approvedRule, _tokenIdRule) + if err != nil { + return nil, err + } + return &IERC721ApprovalIterator{contract: _IERC721.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_IERC721 *IERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721Approval, _owner []common.Address, _approved []common.Address, _tokenId []*big.Int) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _approvedRule []interface{} + for _, _approvedItem := range _approved { + _approvedRule = append(_approvedRule, _approvedItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721.contract.WatchLogs(opts, "Approval", _ownerRule, _approvedRule, _tokenIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC721Approval) + if err := _IERC721.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_IERC721 *IERC721Filterer) ParseApproval(log types.Log) (*IERC721Approval, error) { + event := new(IERC721Approval) + if err := _IERC721.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC721ApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the IERC721 contract. +type IERC721ApprovalForAllIterator struct { + Event *IERC721ApprovalForAll // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC721ApprovalForAllIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC721ApprovalForAll) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC721ApprovalForAll) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC721ApprovalForAllIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC721ApprovalForAllIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC721ApprovalForAll represents a ApprovalForAll event raised by the IERC721 contract. +type IERC721ApprovalForAll struct { + Owner common.Address + Operator common.Address + Approved bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_IERC721 *IERC721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, _owner []common.Address, _operator []common.Address) (*IERC721ApprovalForAllIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _operatorRule []interface{} + for _, _operatorItem := range _operator { + _operatorRule = append(_operatorRule, _operatorItem) + } + + logs, sub, err := _IERC721.contract.FilterLogs(opts, "ApprovalForAll", _ownerRule, _operatorRule) + if err != nil { + return nil, err + } + return &IERC721ApprovalForAllIterator{contract: _IERC721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil +} + +// WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_IERC721 *IERC721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721ApprovalForAll, _owner []common.Address, _operator []common.Address) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _operatorRule []interface{} + for _, _operatorItem := range _operator { + _operatorRule = append(_operatorRule, _operatorItem) + } + + logs, sub, err := _IERC721.contract.WatchLogs(opts, "ApprovalForAll", _ownerRule, _operatorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC721ApprovalForAll) + if err := _IERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_IERC721 *IERC721Filterer) ParseApprovalForAll(log types.Log) (*IERC721ApprovalForAll, error) { + event := new(IERC721ApprovalForAll) + if err := _IERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC721TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC721 contract. +type IERC721TransferIterator struct { + Event *IERC721Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC721TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC721Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC721Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC721TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC721TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC721Transfer represents a Transfer event raised by the IERC721 contract. +type IERC721Transfer struct { + From common.Address + To common.Address + TokenId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_IERC721 *IERC721Filterer) FilterTransfer(opts *bind.FilterOpts, _from []common.Address, _to []common.Address, _tokenId []*big.Int) (*IERC721TransferIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721.contract.FilterLogs(opts, "Transfer", _fromRule, _toRule, _tokenIdRule) + if err != nil { + return nil, err + } + return &IERC721TransferIterator{contract: _IERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_IERC721 *IERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721Transfer, _from []common.Address, _to []common.Address, _tokenId []*big.Int) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721.contract.WatchLogs(opts, "Transfer", _fromRule, _toRule, _tokenIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC721Transfer) + if err := _IERC721.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_IERC721 *IERC721Filterer) ParseTransfer(log types.Log) (*IERC721Transfer, error) { + event := new(IERC721Transfer) + if err := _IERC721.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/ierc721.sol/ierc721enumerable.go b/v2/pkg/ierc721.sol/ierc721enumerable.go new file mode 100644 index 00000000..a09ef18a --- /dev/null +++ b/v2/pkg/ierc721.sol/ierc721enumerable.go @@ -0,0 +1,1012 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc721 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC721EnumerableMetaData contains all meta data concerning the IERC721Enumerable contract. +var IERC721EnumerableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApproved\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isApprovedForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownerOf\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setApprovalForAll\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tokenByIndex\",\"inputs\":[{\"name\":\"_index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tokenOfOwnerByIndex\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ApprovalForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false}]", +} + +// IERC721EnumerableABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC721EnumerableMetaData.ABI instead. +var IERC721EnumerableABI = IERC721EnumerableMetaData.ABI + +// IERC721Enumerable is an auto generated Go binding around an Ethereum contract. +type IERC721Enumerable struct { + IERC721EnumerableCaller // Read-only binding to the contract + IERC721EnumerableTransactor // Write-only binding to the contract + IERC721EnumerableFilterer // Log filterer for contract events +} + +// IERC721EnumerableCaller is an auto generated read-only Go binding around an Ethereum contract. +type IERC721EnumerableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721EnumerableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC721EnumerableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721EnumerableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC721EnumerableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721EnumerableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC721EnumerableSession struct { + Contract *IERC721Enumerable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC721EnumerableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC721EnumerableCallerSession struct { + Contract *IERC721EnumerableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC721EnumerableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC721EnumerableTransactorSession struct { + Contract *IERC721EnumerableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC721EnumerableRaw is an auto generated low-level Go binding around an Ethereum contract. +type IERC721EnumerableRaw struct { + Contract *IERC721Enumerable // Generic contract binding to access the raw methods on +} + +// IERC721EnumerableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC721EnumerableCallerRaw struct { + Contract *IERC721EnumerableCaller // Generic read-only contract binding to access the raw methods on +} + +// IERC721EnumerableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC721EnumerableTransactorRaw struct { + Contract *IERC721EnumerableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC721Enumerable creates a new instance of IERC721Enumerable, bound to a specific deployed contract. +func NewIERC721Enumerable(address common.Address, backend bind.ContractBackend) (*IERC721Enumerable, error) { + contract, err := bindIERC721Enumerable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC721Enumerable{IERC721EnumerableCaller: IERC721EnumerableCaller{contract: contract}, IERC721EnumerableTransactor: IERC721EnumerableTransactor{contract: contract}, IERC721EnumerableFilterer: IERC721EnumerableFilterer{contract: contract}}, nil +} + +// NewIERC721EnumerableCaller creates a new read-only instance of IERC721Enumerable, bound to a specific deployed contract. +func NewIERC721EnumerableCaller(address common.Address, caller bind.ContractCaller) (*IERC721EnumerableCaller, error) { + contract, err := bindIERC721Enumerable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC721EnumerableCaller{contract: contract}, nil +} + +// NewIERC721EnumerableTransactor creates a new write-only instance of IERC721Enumerable, bound to a specific deployed contract. +func NewIERC721EnumerableTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721EnumerableTransactor, error) { + contract, err := bindIERC721Enumerable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC721EnumerableTransactor{contract: contract}, nil +} + +// NewIERC721EnumerableFilterer creates a new log filterer instance of IERC721Enumerable, bound to a specific deployed contract. +func NewIERC721EnumerableFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721EnumerableFilterer, error) { + contract, err := bindIERC721Enumerable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC721EnumerableFilterer{contract: contract}, nil +} + +// bindIERC721Enumerable binds a generic wrapper to an already deployed contract. +func bindIERC721Enumerable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC721EnumerableMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC721Enumerable *IERC721EnumerableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC721Enumerable.Contract.IERC721EnumerableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC721Enumerable *IERC721EnumerableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.IERC721EnumerableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC721Enumerable *IERC721EnumerableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.IERC721EnumerableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC721Enumerable *IERC721EnumerableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC721Enumerable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC721Enumerable *IERC721EnumerableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC721Enumerable *IERC721EnumerableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.contract.Transact(opts, method, params...) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address _owner) view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) { + var out []interface{} + err := _IERC721Enumerable.contract.Call(opts, &out, "balanceOf", _owner) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address _owner) view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _IERC721Enumerable.Contract.BalanceOf(&_IERC721Enumerable.CallOpts, _owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address _owner) view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _IERC721Enumerable.Contract.BalanceOf(&_IERC721Enumerable.CallOpts, _owner) +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 _tokenId) view returns(address) +func (_IERC721Enumerable *IERC721EnumerableCaller) GetApproved(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) { + var out []interface{} + err := _IERC721Enumerable.contract.Call(opts, &out, "getApproved", _tokenId) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 _tokenId) view returns(address) +func (_IERC721Enumerable *IERC721EnumerableSession) GetApproved(_tokenId *big.Int) (common.Address, error) { + return _IERC721Enumerable.Contract.GetApproved(&_IERC721Enumerable.CallOpts, _tokenId) +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 _tokenId) view returns(address) +func (_IERC721Enumerable *IERC721EnumerableCallerSession) GetApproved(_tokenId *big.Int) (common.Address, error) { + return _IERC721Enumerable.Contract.GetApproved(&_IERC721Enumerable.CallOpts, _tokenId) +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address _owner, address _operator) view returns(bool) +func (_IERC721Enumerable *IERC721EnumerableCaller) IsApprovedForAll(opts *bind.CallOpts, _owner common.Address, _operator common.Address) (bool, error) { + var out []interface{} + err := _IERC721Enumerable.contract.Call(opts, &out, "isApprovedForAll", _owner, _operator) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address _owner, address _operator) view returns(bool) +func (_IERC721Enumerable *IERC721EnumerableSession) IsApprovedForAll(_owner common.Address, _operator common.Address) (bool, error) { + return _IERC721Enumerable.Contract.IsApprovedForAll(&_IERC721Enumerable.CallOpts, _owner, _operator) +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address _owner, address _operator) view returns(bool) +func (_IERC721Enumerable *IERC721EnumerableCallerSession) IsApprovedForAll(_owner common.Address, _operator common.Address) (bool, error) { + return _IERC721Enumerable.Contract.IsApprovedForAll(&_IERC721Enumerable.CallOpts, _owner, _operator) +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 _tokenId) view returns(address) +func (_IERC721Enumerable *IERC721EnumerableCaller) OwnerOf(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) { + var out []interface{} + err := _IERC721Enumerable.contract.Call(opts, &out, "ownerOf", _tokenId) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 _tokenId) view returns(address) +func (_IERC721Enumerable *IERC721EnumerableSession) OwnerOf(_tokenId *big.Int) (common.Address, error) { + return _IERC721Enumerable.Contract.OwnerOf(&_IERC721Enumerable.CallOpts, _tokenId) +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 _tokenId) view returns(address) +func (_IERC721Enumerable *IERC721EnumerableCallerSession) OwnerOf(_tokenId *big.Int) (common.Address, error) { + return _IERC721Enumerable.Contract.OwnerOf(&_IERC721Enumerable.CallOpts, _tokenId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC721Enumerable *IERC721EnumerableCaller) SupportsInterface(opts *bind.CallOpts, interfaceID [4]byte) (bool, error) { + var out []interface{} + err := _IERC721Enumerable.contract.Call(opts, &out, "supportsInterface", interfaceID) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC721Enumerable *IERC721EnumerableSession) SupportsInterface(interfaceID [4]byte) (bool, error) { + return _IERC721Enumerable.Contract.SupportsInterface(&_IERC721Enumerable.CallOpts, interfaceID) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC721Enumerable *IERC721EnumerableCallerSession) SupportsInterface(interfaceID [4]byte) (bool, error) { + return _IERC721Enumerable.Contract.SupportsInterface(&_IERC721Enumerable.CallOpts, interfaceID) +} + +// TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. +// +// Solidity: function tokenByIndex(uint256 _index) view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableCaller) TokenByIndex(opts *bind.CallOpts, _index *big.Int) (*big.Int, error) { + var out []interface{} + err := _IERC721Enumerable.contract.Call(opts, &out, "tokenByIndex", _index) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. +// +// Solidity: function tokenByIndex(uint256 _index) view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableSession) TokenByIndex(_index *big.Int) (*big.Int, error) { + return _IERC721Enumerable.Contract.TokenByIndex(&_IERC721Enumerable.CallOpts, _index) +} + +// TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. +// +// Solidity: function tokenByIndex(uint256 _index) view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableCallerSession) TokenByIndex(_index *big.Int) (*big.Int, error) { + return _IERC721Enumerable.Contract.TokenByIndex(&_IERC721Enumerable.CallOpts, _index) +} + +// TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. +// +// Solidity: function tokenOfOwnerByIndex(address _owner, uint256 _index) view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableCaller) TokenOfOwnerByIndex(opts *bind.CallOpts, _owner common.Address, _index *big.Int) (*big.Int, error) { + var out []interface{} + err := _IERC721Enumerable.contract.Call(opts, &out, "tokenOfOwnerByIndex", _owner, _index) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. +// +// Solidity: function tokenOfOwnerByIndex(address _owner, uint256 _index) view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableSession) TokenOfOwnerByIndex(_owner common.Address, _index *big.Int) (*big.Int, error) { + return _IERC721Enumerable.Contract.TokenOfOwnerByIndex(&_IERC721Enumerable.CallOpts, _owner, _index) +} + +// TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. +// +// Solidity: function tokenOfOwnerByIndex(address _owner, uint256 _index) view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableCallerSession) TokenOfOwnerByIndex(_owner common.Address, _index *big.Int) (*big.Int, error) { + return _IERC721Enumerable.Contract.TokenOfOwnerByIndex(&_IERC721Enumerable.CallOpts, _owner, _index) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IERC721Enumerable.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableSession) TotalSupply() (*big.Int, error) { + return _IERC721Enumerable.Contract.TotalSupply(&_IERC721Enumerable.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IERC721Enumerable *IERC721EnumerableCallerSession) TotalSupply() (*big.Int, error) { + return _IERC721Enumerable.Contract.TotalSupply(&_IERC721Enumerable.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _approved, uint256 _tokenId) payable returns() +func (_IERC721Enumerable *IERC721EnumerableTransactor) Approve(opts *bind.TransactOpts, _approved common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Enumerable.contract.Transact(opts, "approve", _approved, _tokenId) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _approved, uint256 _tokenId) payable returns() +func (_IERC721Enumerable *IERC721EnumerableSession) Approve(_approved common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.Approve(&_IERC721Enumerable.TransactOpts, _approved, _tokenId) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _approved, uint256 _tokenId) payable returns() +func (_IERC721Enumerable *IERC721EnumerableTransactorSession) Approve(_approved common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.Approve(&_IERC721Enumerable.TransactOpts, _approved, _tokenId) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Enumerable *IERC721EnumerableTransactor) SafeTransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Enumerable.contract.Transact(opts, "safeTransferFrom", _from, _to, _tokenId) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Enumerable *IERC721EnumerableSession) SafeTransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.SafeTransferFrom(&_IERC721Enumerable.TransactOpts, _from, _to, _tokenId) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Enumerable *IERC721EnumerableTransactorSession) SafeTransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.SafeTransferFrom(&_IERC721Enumerable.TransactOpts, _from, _to, _tokenId) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) payable returns() +func (_IERC721Enumerable *IERC721EnumerableTransactor) SafeTransferFrom0(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int, data []byte) (*types.Transaction, error) { + return _IERC721Enumerable.contract.Transact(opts, "safeTransferFrom0", _from, _to, _tokenId, data) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) payable returns() +func (_IERC721Enumerable *IERC721EnumerableSession) SafeTransferFrom0(_from common.Address, _to common.Address, _tokenId *big.Int, data []byte) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.SafeTransferFrom0(&_IERC721Enumerable.TransactOpts, _from, _to, _tokenId, data) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) payable returns() +func (_IERC721Enumerable *IERC721EnumerableTransactorSession) SafeTransferFrom0(_from common.Address, _to common.Address, _tokenId *big.Int, data []byte) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.SafeTransferFrom0(&_IERC721Enumerable.TransactOpts, _from, _to, _tokenId, data) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address _operator, bool _approved) returns() +func (_IERC721Enumerable *IERC721EnumerableTransactor) SetApprovalForAll(opts *bind.TransactOpts, _operator common.Address, _approved bool) (*types.Transaction, error) { + return _IERC721Enumerable.contract.Transact(opts, "setApprovalForAll", _operator, _approved) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address _operator, bool _approved) returns() +func (_IERC721Enumerable *IERC721EnumerableSession) SetApprovalForAll(_operator common.Address, _approved bool) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.SetApprovalForAll(&_IERC721Enumerable.TransactOpts, _operator, _approved) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address _operator, bool _approved) returns() +func (_IERC721Enumerable *IERC721EnumerableTransactorSession) SetApprovalForAll(_operator common.Address, _approved bool) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.SetApprovalForAll(&_IERC721Enumerable.TransactOpts, _operator, _approved) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Enumerable *IERC721EnumerableTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Enumerable.contract.Transact(opts, "transferFrom", _from, _to, _tokenId) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Enumerable *IERC721EnumerableSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.TransferFrom(&_IERC721Enumerable.TransactOpts, _from, _to, _tokenId) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Enumerable *IERC721EnumerableTransactorSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Enumerable.Contract.TransferFrom(&_IERC721Enumerable.TransactOpts, _from, _to, _tokenId) +} + +// IERC721EnumerableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC721Enumerable contract. +type IERC721EnumerableApprovalIterator struct { + Event *IERC721EnumerableApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC721EnumerableApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC721EnumerableApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC721EnumerableApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC721EnumerableApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC721EnumerableApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC721EnumerableApproval represents a Approval event raised by the IERC721Enumerable contract. +type IERC721EnumerableApproval struct { + Owner common.Address + Approved common.Address + TokenId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_IERC721Enumerable *IERC721EnumerableFilterer) FilterApproval(opts *bind.FilterOpts, _owner []common.Address, _approved []common.Address, _tokenId []*big.Int) (*IERC721EnumerableApprovalIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _approvedRule []interface{} + for _, _approvedItem := range _approved { + _approvedRule = append(_approvedRule, _approvedItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721Enumerable.contract.FilterLogs(opts, "Approval", _ownerRule, _approvedRule, _tokenIdRule) + if err != nil { + return nil, err + } + return &IERC721EnumerableApprovalIterator{contract: _IERC721Enumerable.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_IERC721Enumerable *IERC721EnumerableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721EnumerableApproval, _owner []common.Address, _approved []common.Address, _tokenId []*big.Int) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _approvedRule []interface{} + for _, _approvedItem := range _approved { + _approvedRule = append(_approvedRule, _approvedItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721Enumerable.contract.WatchLogs(opts, "Approval", _ownerRule, _approvedRule, _tokenIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC721EnumerableApproval) + if err := _IERC721Enumerable.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_IERC721Enumerable *IERC721EnumerableFilterer) ParseApproval(log types.Log) (*IERC721EnumerableApproval, error) { + event := new(IERC721EnumerableApproval) + if err := _IERC721Enumerable.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC721EnumerableApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the IERC721Enumerable contract. +type IERC721EnumerableApprovalForAllIterator struct { + Event *IERC721EnumerableApprovalForAll // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC721EnumerableApprovalForAllIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC721EnumerableApprovalForAll) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC721EnumerableApprovalForAll) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC721EnumerableApprovalForAllIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC721EnumerableApprovalForAllIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC721EnumerableApprovalForAll represents a ApprovalForAll event raised by the IERC721Enumerable contract. +type IERC721EnumerableApprovalForAll struct { + Owner common.Address + Operator common.Address + Approved bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_IERC721Enumerable *IERC721EnumerableFilterer) FilterApprovalForAll(opts *bind.FilterOpts, _owner []common.Address, _operator []common.Address) (*IERC721EnumerableApprovalForAllIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _operatorRule []interface{} + for _, _operatorItem := range _operator { + _operatorRule = append(_operatorRule, _operatorItem) + } + + logs, sub, err := _IERC721Enumerable.contract.FilterLogs(opts, "ApprovalForAll", _ownerRule, _operatorRule) + if err != nil { + return nil, err + } + return &IERC721EnumerableApprovalForAllIterator{contract: _IERC721Enumerable.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil +} + +// WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_IERC721Enumerable *IERC721EnumerableFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721EnumerableApprovalForAll, _owner []common.Address, _operator []common.Address) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _operatorRule []interface{} + for _, _operatorItem := range _operator { + _operatorRule = append(_operatorRule, _operatorItem) + } + + logs, sub, err := _IERC721Enumerable.contract.WatchLogs(opts, "ApprovalForAll", _ownerRule, _operatorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC721EnumerableApprovalForAll) + if err := _IERC721Enumerable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_IERC721Enumerable *IERC721EnumerableFilterer) ParseApprovalForAll(log types.Log) (*IERC721EnumerableApprovalForAll, error) { + event := new(IERC721EnumerableApprovalForAll) + if err := _IERC721Enumerable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC721EnumerableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC721Enumerable contract. +type IERC721EnumerableTransferIterator struct { + Event *IERC721EnumerableTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC721EnumerableTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC721EnumerableTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC721EnumerableTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC721EnumerableTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC721EnumerableTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC721EnumerableTransfer represents a Transfer event raised by the IERC721Enumerable contract. +type IERC721EnumerableTransfer struct { + From common.Address + To common.Address + TokenId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_IERC721Enumerable *IERC721EnumerableFilterer) FilterTransfer(opts *bind.FilterOpts, _from []common.Address, _to []common.Address, _tokenId []*big.Int) (*IERC721EnumerableTransferIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721Enumerable.contract.FilterLogs(opts, "Transfer", _fromRule, _toRule, _tokenIdRule) + if err != nil { + return nil, err + } + return &IERC721EnumerableTransferIterator{contract: _IERC721Enumerable.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_IERC721Enumerable *IERC721EnumerableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721EnumerableTransfer, _from []common.Address, _to []common.Address, _tokenId []*big.Int) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721Enumerable.contract.WatchLogs(opts, "Transfer", _fromRule, _toRule, _tokenIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC721EnumerableTransfer) + if err := _IERC721Enumerable.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_IERC721Enumerable *IERC721EnumerableFilterer) ParseTransfer(log types.Log) (*IERC721EnumerableTransfer, error) { + event := new(IERC721EnumerableTransfer) + if err := _IERC721Enumerable.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/ierc721.sol/ierc721metadata.go b/v2/pkg/ierc721.sol/ierc721metadata.go new file mode 100644 index 00000000..de7732ac --- /dev/null +++ b/v2/pkg/ierc721.sol/ierc721metadata.go @@ -0,0 +1,1012 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc721 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC721MetadataMetaData contains all meta data concerning the IERC721Metadata contract. +var IERC721MetadataMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApproved\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isApprovedForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"_name\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownerOf\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setApprovalForAll\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"_symbol\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tokenURI\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ApprovalForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false}]", +} + +// IERC721MetadataABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC721MetadataMetaData.ABI instead. +var IERC721MetadataABI = IERC721MetadataMetaData.ABI + +// IERC721Metadata is an auto generated Go binding around an Ethereum contract. +type IERC721Metadata struct { + IERC721MetadataCaller // Read-only binding to the contract + IERC721MetadataTransactor // Write-only binding to the contract + IERC721MetadataFilterer // Log filterer for contract events +} + +// IERC721MetadataCaller is an auto generated read-only Go binding around an Ethereum contract. +type IERC721MetadataCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721MetadataTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC721MetadataTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721MetadataFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC721MetadataFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721MetadataSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC721MetadataSession struct { + Contract *IERC721Metadata // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC721MetadataCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC721MetadataCallerSession struct { + Contract *IERC721MetadataCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC721MetadataTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC721MetadataTransactorSession struct { + Contract *IERC721MetadataTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC721MetadataRaw is an auto generated low-level Go binding around an Ethereum contract. +type IERC721MetadataRaw struct { + Contract *IERC721Metadata // Generic contract binding to access the raw methods on +} + +// IERC721MetadataCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC721MetadataCallerRaw struct { + Contract *IERC721MetadataCaller // Generic read-only contract binding to access the raw methods on +} + +// IERC721MetadataTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC721MetadataTransactorRaw struct { + Contract *IERC721MetadataTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC721Metadata creates a new instance of IERC721Metadata, bound to a specific deployed contract. +func NewIERC721Metadata(address common.Address, backend bind.ContractBackend) (*IERC721Metadata, error) { + contract, err := bindIERC721Metadata(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC721Metadata{IERC721MetadataCaller: IERC721MetadataCaller{contract: contract}, IERC721MetadataTransactor: IERC721MetadataTransactor{contract: contract}, IERC721MetadataFilterer: IERC721MetadataFilterer{contract: contract}}, nil +} + +// NewIERC721MetadataCaller creates a new read-only instance of IERC721Metadata, bound to a specific deployed contract. +func NewIERC721MetadataCaller(address common.Address, caller bind.ContractCaller) (*IERC721MetadataCaller, error) { + contract, err := bindIERC721Metadata(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC721MetadataCaller{contract: contract}, nil +} + +// NewIERC721MetadataTransactor creates a new write-only instance of IERC721Metadata, bound to a specific deployed contract. +func NewIERC721MetadataTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721MetadataTransactor, error) { + contract, err := bindIERC721Metadata(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC721MetadataTransactor{contract: contract}, nil +} + +// NewIERC721MetadataFilterer creates a new log filterer instance of IERC721Metadata, bound to a specific deployed contract. +func NewIERC721MetadataFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721MetadataFilterer, error) { + contract, err := bindIERC721Metadata(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC721MetadataFilterer{contract: contract}, nil +} + +// bindIERC721Metadata binds a generic wrapper to an already deployed contract. +func bindIERC721Metadata(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC721MetadataMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC721Metadata *IERC721MetadataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC721Metadata.Contract.IERC721MetadataCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC721Metadata *IERC721MetadataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC721Metadata.Contract.IERC721MetadataTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC721Metadata *IERC721MetadataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC721Metadata.Contract.IERC721MetadataTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC721Metadata *IERC721MetadataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC721Metadata.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC721Metadata *IERC721MetadataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC721Metadata.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC721Metadata *IERC721MetadataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC721Metadata.Contract.contract.Transact(opts, method, params...) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address _owner) view returns(uint256) +func (_IERC721Metadata *IERC721MetadataCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) { + var out []interface{} + err := _IERC721Metadata.contract.Call(opts, &out, "balanceOf", _owner) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address _owner) view returns(uint256) +func (_IERC721Metadata *IERC721MetadataSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _IERC721Metadata.Contract.BalanceOf(&_IERC721Metadata.CallOpts, _owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address _owner) view returns(uint256) +func (_IERC721Metadata *IERC721MetadataCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _IERC721Metadata.Contract.BalanceOf(&_IERC721Metadata.CallOpts, _owner) +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 _tokenId) view returns(address) +func (_IERC721Metadata *IERC721MetadataCaller) GetApproved(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) { + var out []interface{} + err := _IERC721Metadata.contract.Call(opts, &out, "getApproved", _tokenId) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 _tokenId) view returns(address) +func (_IERC721Metadata *IERC721MetadataSession) GetApproved(_tokenId *big.Int) (common.Address, error) { + return _IERC721Metadata.Contract.GetApproved(&_IERC721Metadata.CallOpts, _tokenId) +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 _tokenId) view returns(address) +func (_IERC721Metadata *IERC721MetadataCallerSession) GetApproved(_tokenId *big.Int) (common.Address, error) { + return _IERC721Metadata.Contract.GetApproved(&_IERC721Metadata.CallOpts, _tokenId) +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address _owner, address _operator) view returns(bool) +func (_IERC721Metadata *IERC721MetadataCaller) IsApprovedForAll(opts *bind.CallOpts, _owner common.Address, _operator common.Address) (bool, error) { + var out []interface{} + err := _IERC721Metadata.contract.Call(opts, &out, "isApprovedForAll", _owner, _operator) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address _owner, address _operator) view returns(bool) +func (_IERC721Metadata *IERC721MetadataSession) IsApprovedForAll(_owner common.Address, _operator common.Address) (bool, error) { + return _IERC721Metadata.Contract.IsApprovedForAll(&_IERC721Metadata.CallOpts, _owner, _operator) +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address _owner, address _operator) view returns(bool) +func (_IERC721Metadata *IERC721MetadataCallerSession) IsApprovedForAll(_owner common.Address, _operator common.Address) (bool, error) { + return _IERC721Metadata.Contract.IsApprovedForAll(&_IERC721Metadata.CallOpts, _owner, _operator) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string _name) +func (_IERC721Metadata *IERC721MetadataCaller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _IERC721Metadata.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string _name) +func (_IERC721Metadata *IERC721MetadataSession) Name() (string, error) { + return _IERC721Metadata.Contract.Name(&_IERC721Metadata.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string _name) +func (_IERC721Metadata *IERC721MetadataCallerSession) Name() (string, error) { + return _IERC721Metadata.Contract.Name(&_IERC721Metadata.CallOpts) +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 _tokenId) view returns(address) +func (_IERC721Metadata *IERC721MetadataCaller) OwnerOf(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) { + var out []interface{} + err := _IERC721Metadata.contract.Call(opts, &out, "ownerOf", _tokenId) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 _tokenId) view returns(address) +func (_IERC721Metadata *IERC721MetadataSession) OwnerOf(_tokenId *big.Int) (common.Address, error) { + return _IERC721Metadata.Contract.OwnerOf(&_IERC721Metadata.CallOpts, _tokenId) +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 _tokenId) view returns(address) +func (_IERC721Metadata *IERC721MetadataCallerSession) OwnerOf(_tokenId *big.Int) (common.Address, error) { + return _IERC721Metadata.Contract.OwnerOf(&_IERC721Metadata.CallOpts, _tokenId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC721Metadata *IERC721MetadataCaller) SupportsInterface(opts *bind.CallOpts, interfaceID [4]byte) (bool, error) { + var out []interface{} + err := _IERC721Metadata.contract.Call(opts, &out, "supportsInterface", interfaceID) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC721Metadata *IERC721MetadataSession) SupportsInterface(interfaceID [4]byte) (bool, error) { + return _IERC721Metadata.Contract.SupportsInterface(&_IERC721Metadata.CallOpts, interfaceID) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceID) view returns(bool) +func (_IERC721Metadata *IERC721MetadataCallerSession) SupportsInterface(interfaceID [4]byte) (bool, error) { + return _IERC721Metadata.Contract.SupportsInterface(&_IERC721Metadata.CallOpts, interfaceID) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string _symbol) +func (_IERC721Metadata *IERC721MetadataCaller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _IERC721Metadata.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string _symbol) +func (_IERC721Metadata *IERC721MetadataSession) Symbol() (string, error) { + return _IERC721Metadata.Contract.Symbol(&_IERC721Metadata.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string _symbol) +func (_IERC721Metadata *IERC721MetadataCallerSession) Symbol() (string, error) { + return _IERC721Metadata.Contract.Symbol(&_IERC721Metadata.CallOpts) +} + +// TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. +// +// Solidity: function tokenURI(uint256 _tokenId) view returns(string) +func (_IERC721Metadata *IERC721MetadataCaller) TokenURI(opts *bind.CallOpts, _tokenId *big.Int) (string, error) { + var out []interface{} + err := _IERC721Metadata.contract.Call(opts, &out, "tokenURI", _tokenId) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. +// +// Solidity: function tokenURI(uint256 _tokenId) view returns(string) +func (_IERC721Metadata *IERC721MetadataSession) TokenURI(_tokenId *big.Int) (string, error) { + return _IERC721Metadata.Contract.TokenURI(&_IERC721Metadata.CallOpts, _tokenId) +} + +// TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. +// +// Solidity: function tokenURI(uint256 _tokenId) view returns(string) +func (_IERC721Metadata *IERC721MetadataCallerSession) TokenURI(_tokenId *big.Int) (string, error) { + return _IERC721Metadata.Contract.TokenURI(&_IERC721Metadata.CallOpts, _tokenId) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _approved, uint256 _tokenId) payable returns() +func (_IERC721Metadata *IERC721MetadataTransactor) Approve(opts *bind.TransactOpts, _approved common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Metadata.contract.Transact(opts, "approve", _approved, _tokenId) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _approved, uint256 _tokenId) payable returns() +func (_IERC721Metadata *IERC721MetadataSession) Approve(_approved common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Metadata.Contract.Approve(&_IERC721Metadata.TransactOpts, _approved, _tokenId) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _approved, uint256 _tokenId) payable returns() +func (_IERC721Metadata *IERC721MetadataTransactorSession) Approve(_approved common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Metadata.Contract.Approve(&_IERC721Metadata.TransactOpts, _approved, _tokenId) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Metadata *IERC721MetadataTransactor) SafeTransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Metadata.contract.Transact(opts, "safeTransferFrom", _from, _to, _tokenId) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Metadata *IERC721MetadataSession) SafeTransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Metadata.Contract.SafeTransferFrom(&_IERC721Metadata.TransactOpts, _from, _to, _tokenId) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Metadata *IERC721MetadataTransactorSession) SafeTransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Metadata.Contract.SafeTransferFrom(&_IERC721Metadata.TransactOpts, _from, _to, _tokenId) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) payable returns() +func (_IERC721Metadata *IERC721MetadataTransactor) SafeTransferFrom0(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int, data []byte) (*types.Transaction, error) { + return _IERC721Metadata.contract.Transact(opts, "safeTransferFrom0", _from, _to, _tokenId, data) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) payable returns() +func (_IERC721Metadata *IERC721MetadataSession) SafeTransferFrom0(_from common.Address, _to common.Address, _tokenId *big.Int, data []byte) (*types.Transaction, error) { + return _IERC721Metadata.Contract.SafeTransferFrom0(&_IERC721Metadata.TransactOpts, _from, _to, _tokenId, data) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) payable returns() +func (_IERC721Metadata *IERC721MetadataTransactorSession) SafeTransferFrom0(_from common.Address, _to common.Address, _tokenId *big.Int, data []byte) (*types.Transaction, error) { + return _IERC721Metadata.Contract.SafeTransferFrom0(&_IERC721Metadata.TransactOpts, _from, _to, _tokenId, data) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address _operator, bool _approved) returns() +func (_IERC721Metadata *IERC721MetadataTransactor) SetApprovalForAll(opts *bind.TransactOpts, _operator common.Address, _approved bool) (*types.Transaction, error) { + return _IERC721Metadata.contract.Transact(opts, "setApprovalForAll", _operator, _approved) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address _operator, bool _approved) returns() +func (_IERC721Metadata *IERC721MetadataSession) SetApprovalForAll(_operator common.Address, _approved bool) (*types.Transaction, error) { + return _IERC721Metadata.Contract.SetApprovalForAll(&_IERC721Metadata.TransactOpts, _operator, _approved) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address _operator, bool _approved) returns() +func (_IERC721Metadata *IERC721MetadataTransactorSession) SetApprovalForAll(_operator common.Address, _approved bool) (*types.Transaction, error) { + return _IERC721Metadata.Contract.SetApprovalForAll(&_IERC721Metadata.TransactOpts, _operator, _approved) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Metadata *IERC721MetadataTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Metadata.contract.Transact(opts, "transferFrom", _from, _to, _tokenId) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Metadata *IERC721MetadataSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Metadata.Contract.TransferFrom(&_IERC721Metadata.TransactOpts, _from, _to, _tokenId) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) payable returns() +func (_IERC721Metadata *IERC721MetadataTransactorSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) { + return _IERC721Metadata.Contract.TransferFrom(&_IERC721Metadata.TransactOpts, _from, _to, _tokenId) +} + +// IERC721MetadataApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC721Metadata contract. +type IERC721MetadataApprovalIterator struct { + Event *IERC721MetadataApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC721MetadataApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC721MetadataApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC721MetadataApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC721MetadataApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC721MetadataApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC721MetadataApproval represents a Approval event raised by the IERC721Metadata contract. +type IERC721MetadataApproval struct { + Owner common.Address + Approved common.Address + TokenId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_IERC721Metadata *IERC721MetadataFilterer) FilterApproval(opts *bind.FilterOpts, _owner []common.Address, _approved []common.Address, _tokenId []*big.Int) (*IERC721MetadataApprovalIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _approvedRule []interface{} + for _, _approvedItem := range _approved { + _approvedRule = append(_approvedRule, _approvedItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "Approval", _ownerRule, _approvedRule, _tokenIdRule) + if err != nil { + return nil, err + } + return &IERC721MetadataApprovalIterator{contract: _IERC721Metadata.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_IERC721Metadata *IERC721MetadataFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721MetadataApproval, _owner []common.Address, _approved []common.Address, _tokenId []*big.Int) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _approvedRule []interface{} + for _, _approvedItem := range _approved { + _approvedRule = append(_approvedRule, _approvedItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "Approval", _ownerRule, _approvedRule, _tokenIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC721MetadataApproval) + if err := _IERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_IERC721Metadata *IERC721MetadataFilterer) ParseApproval(log types.Log) (*IERC721MetadataApproval, error) { + event := new(IERC721MetadataApproval) + if err := _IERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC721MetadataApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the IERC721Metadata contract. +type IERC721MetadataApprovalForAllIterator struct { + Event *IERC721MetadataApprovalForAll // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC721MetadataApprovalForAllIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC721MetadataApprovalForAll) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC721MetadataApprovalForAll) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC721MetadataApprovalForAllIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC721MetadataApprovalForAllIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC721MetadataApprovalForAll represents a ApprovalForAll event raised by the IERC721Metadata contract. +type IERC721MetadataApprovalForAll struct { + Owner common.Address + Operator common.Address + Approved bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_IERC721Metadata *IERC721MetadataFilterer) FilterApprovalForAll(opts *bind.FilterOpts, _owner []common.Address, _operator []common.Address) (*IERC721MetadataApprovalForAllIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _operatorRule []interface{} + for _, _operatorItem := range _operator { + _operatorRule = append(_operatorRule, _operatorItem) + } + + logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "ApprovalForAll", _ownerRule, _operatorRule) + if err != nil { + return nil, err + } + return &IERC721MetadataApprovalForAllIterator{contract: _IERC721Metadata.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil +} + +// WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_IERC721Metadata *IERC721MetadataFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721MetadataApprovalForAll, _owner []common.Address, _operator []common.Address) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _operatorRule []interface{} + for _, _operatorItem := range _operator { + _operatorRule = append(_operatorRule, _operatorItem) + } + + logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "ApprovalForAll", _ownerRule, _operatorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC721MetadataApprovalForAll) + if err := _IERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_IERC721Metadata *IERC721MetadataFilterer) ParseApprovalForAll(log types.Log) (*IERC721MetadataApprovalForAll, error) { + event := new(IERC721MetadataApprovalForAll) + if err := _IERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC721MetadataTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC721Metadata contract. +type IERC721MetadataTransferIterator struct { + Event *IERC721MetadataTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC721MetadataTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC721MetadataTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC721MetadataTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC721MetadataTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC721MetadataTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC721MetadataTransfer represents a Transfer event raised by the IERC721Metadata contract. +type IERC721MetadataTransfer struct { + From common.Address + To common.Address + TokenId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_IERC721Metadata *IERC721MetadataFilterer) FilterTransfer(opts *bind.FilterOpts, _from []common.Address, _to []common.Address, _tokenId []*big.Int) (*IERC721MetadataTransferIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "Transfer", _fromRule, _toRule, _tokenIdRule) + if err != nil { + return nil, err + } + return &IERC721MetadataTransferIterator{contract: _IERC721Metadata.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_IERC721Metadata *IERC721MetadataFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721MetadataTransfer, _from []common.Address, _to []common.Address, _tokenId []*big.Int) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "Transfer", _fromRule, _toRule, _tokenIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IERC721MetadataTransfer) + if err := _IERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_IERC721Metadata *IERC721MetadataFilterer) ParseTransfer(log types.Log) (*IERC721MetadataTransfer, error) { + event := new(IERC721MetadataTransfer) + if err := _IERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/ierc721.sol/ierc721tokenreceiver.go b/v2/pkg/ierc721.sol/ierc721tokenreceiver.go new file mode 100644 index 00000000..e8e1800f --- /dev/null +++ b/v2/pkg/ierc721.sol/ierc721tokenreceiver.go @@ -0,0 +1,202 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc721 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IERC721TokenReceiverMetaData contains all meta data concerning the IERC721TokenReceiver contract. +var IERC721TokenReceiverMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"onERC721Received\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"stateMutability\":\"nonpayable\"}]", +} + +// IERC721TokenReceiverABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC721TokenReceiverMetaData.ABI instead. +var IERC721TokenReceiverABI = IERC721TokenReceiverMetaData.ABI + +// IERC721TokenReceiver is an auto generated Go binding around an Ethereum contract. +type IERC721TokenReceiver struct { + IERC721TokenReceiverCaller // Read-only binding to the contract + IERC721TokenReceiverTransactor // Write-only binding to the contract + IERC721TokenReceiverFilterer // Log filterer for contract events +} + +// IERC721TokenReceiverCaller is an auto generated read-only Go binding around an Ethereum contract. +type IERC721TokenReceiverCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721TokenReceiverTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC721TokenReceiverTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721TokenReceiverFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC721TokenReceiverFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC721TokenReceiverSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC721TokenReceiverSession struct { + Contract *IERC721TokenReceiver // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC721TokenReceiverCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC721TokenReceiverCallerSession struct { + Contract *IERC721TokenReceiverCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC721TokenReceiverTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC721TokenReceiverTransactorSession struct { + Contract *IERC721TokenReceiverTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC721TokenReceiverRaw is an auto generated low-level Go binding around an Ethereum contract. +type IERC721TokenReceiverRaw struct { + Contract *IERC721TokenReceiver // Generic contract binding to access the raw methods on +} + +// IERC721TokenReceiverCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC721TokenReceiverCallerRaw struct { + Contract *IERC721TokenReceiverCaller // Generic read-only contract binding to access the raw methods on +} + +// IERC721TokenReceiverTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC721TokenReceiverTransactorRaw struct { + Contract *IERC721TokenReceiverTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC721TokenReceiver creates a new instance of IERC721TokenReceiver, bound to a specific deployed contract. +func NewIERC721TokenReceiver(address common.Address, backend bind.ContractBackend) (*IERC721TokenReceiver, error) { + contract, err := bindIERC721TokenReceiver(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC721TokenReceiver{IERC721TokenReceiverCaller: IERC721TokenReceiverCaller{contract: contract}, IERC721TokenReceiverTransactor: IERC721TokenReceiverTransactor{contract: contract}, IERC721TokenReceiverFilterer: IERC721TokenReceiverFilterer{contract: contract}}, nil +} + +// NewIERC721TokenReceiverCaller creates a new read-only instance of IERC721TokenReceiver, bound to a specific deployed contract. +func NewIERC721TokenReceiverCaller(address common.Address, caller bind.ContractCaller) (*IERC721TokenReceiverCaller, error) { + contract, err := bindIERC721TokenReceiver(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC721TokenReceiverCaller{contract: contract}, nil +} + +// NewIERC721TokenReceiverTransactor creates a new write-only instance of IERC721TokenReceiver, bound to a specific deployed contract. +func NewIERC721TokenReceiverTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721TokenReceiverTransactor, error) { + contract, err := bindIERC721TokenReceiver(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC721TokenReceiverTransactor{contract: contract}, nil +} + +// NewIERC721TokenReceiverFilterer creates a new log filterer instance of IERC721TokenReceiver, bound to a specific deployed contract. +func NewIERC721TokenReceiverFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721TokenReceiverFilterer, error) { + contract, err := bindIERC721TokenReceiver(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC721TokenReceiverFilterer{contract: contract}, nil +} + +// bindIERC721TokenReceiver binds a generic wrapper to an already deployed contract. +func bindIERC721TokenReceiver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC721TokenReceiverMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC721TokenReceiver *IERC721TokenReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC721TokenReceiver.Contract.IERC721TokenReceiverCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC721TokenReceiver *IERC721TokenReceiverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC721TokenReceiver.Contract.IERC721TokenReceiverTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC721TokenReceiver *IERC721TokenReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC721TokenReceiver.Contract.IERC721TokenReceiverTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IERC721TokenReceiver *IERC721TokenReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC721TokenReceiver.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IERC721TokenReceiver *IERC721TokenReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC721TokenReceiver.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC721TokenReceiver *IERC721TokenReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC721TokenReceiver.Contract.contract.Transact(opts, method, params...) +} + +// OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02. +// +// Solidity: function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes _data) returns(bytes4) +func (_IERC721TokenReceiver *IERC721TokenReceiverTransactor) OnERC721Received(opts *bind.TransactOpts, _operator common.Address, _from common.Address, _tokenId *big.Int, _data []byte) (*types.Transaction, error) { + return _IERC721TokenReceiver.contract.Transact(opts, "onERC721Received", _operator, _from, _tokenId, _data) +} + +// OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02. +// +// Solidity: function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes _data) returns(bytes4) +func (_IERC721TokenReceiver *IERC721TokenReceiverSession) OnERC721Received(_operator common.Address, _from common.Address, _tokenId *big.Int, _data []byte) (*types.Transaction, error) { + return _IERC721TokenReceiver.Contract.OnERC721Received(&_IERC721TokenReceiver.TransactOpts, _operator, _from, _tokenId, _data) +} + +// OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02. +// +// Solidity: function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes _data) returns(bytes4) +func (_IERC721TokenReceiver *IERC721TokenReceiverTransactorSession) OnERC721Received(_operator common.Address, _from common.Address, _tokenId *big.Int, _data []byte) (*types.Transaction, error) { + return _IERC721TokenReceiver.Contract.OnERC721Received(&_IERC721TokenReceiver.TransactOpts, _operator, _from, _tokenId, _data) +} diff --git a/v2/pkg/igatewayevm.sol/igatewayevm.go b/v2/pkg/igatewayevm.sol/igatewayevm.go new file mode 100644 index 00000000..84aee76f --- /dev/null +++ b/v2/pkg/igatewayevm.sol/igatewayevm.go @@ -0,0 +1,244 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package igatewayevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IGatewayEVMMetaData contains all meta data concerning the IGatewayEVM contract. +var IGatewayEVMMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"execute\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"executeWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revertWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", +} + +// IGatewayEVMABI is the input ABI used to generate the binding from. +// Deprecated: Use IGatewayEVMMetaData.ABI instead. +var IGatewayEVMABI = IGatewayEVMMetaData.ABI + +// IGatewayEVM is an auto generated Go binding around an Ethereum contract. +type IGatewayEVM struct { + IGatewayEVMCaller // Read-only binding to the contract + IGatewayEVMTransactor // Write-only binding to the contract + IGatewayEVMFilterer // Log filterer for contract events +} + +// IGatewayEVMCaller is an auto generated read-only Go binding around an Ethereum contract. +type IGatewayEVMCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayEVMTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IGatewayEVMTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayEVMFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IGatewayEVMFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayEVMSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IGatewayEVMSession struct { + Contract *IGatewayEVM // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayEVMCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IGatewayEVMCallerSession struct { + Contract *IGatewayEVMCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IGatewayEVMTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IGatewayEVMTransactorSession struct { + Contract *IGatewayEVMTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayEVMRaw is an auto generated low-level Go binding around an Ethereum contract. +type IGatewayEVMRaw struct { + Contract *IGatewayEVM // Generic contract binding to access the raw methods on +} + +// IGatewayEVMCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IGatewayEVMCallerRaw struct { + Contract *IGatewayEVMCaller // Generic read-only contract binding to access the raw methods on +} + +// IGatewayEVMTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IGatewayEVMTransactorRaw struct { + Contract *IGatewayEVMTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIGatewayEVM creates a new instance of IGatewayEVM, bound to a specific deployed contract. +func NewIGatewayEVM(address common.Address, backend bind.ContractBackend) (*IGatewayEVM, error) { + contract, err := bindIGatewayEVM(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IGatewayEVM{IGatewayEVMCaller: IGatewayEVMCaller{contract: contract}, IGatewayEVMTransactor: IGatewayEVMTransactor{contract: contract}, IGatewayEVMFilterer: IGatewayEVMFilterer{contract: contract}}, nil +} + +// NewIGatewayEVMCaller creates a new read-only instance of IGatewayEVM, bound to a specific deployed contract. +func NewIGatewayEVMCaller(address common.Address, caller bind.ContractCaller) (*IGatewayEVMCaller, error) { + contract, err := bindIGatewayEVM(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IGatewayEVMCaller{contract: contract}, nil +} + +// NewIGatewayEVMTransactor creates a new write-only instance of IGatewayEVM, bound to a specific deployed contract. +func NewIGatewayEVMTransactor(address common.Address, transactor bind.ContractTransactor) (*IGatewayEVMTransactor, error) { + contract, err := bindIGatewayEVM(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IGatewayEVMTransactor{contract: contract}, nil +} + +// NewIGatewayEVMFilterer creates a new log filterer instance of IGatewayEVM, bound to a specific deployed contract. +func NewIGatewayEVMFilterer(address common.Address, filterer bind.ContractFilterer) (*IGatewayEVMFilterer, error) { + contract, err := bindIGatewayEVM(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IGatewayEVMFilterer{contract: contract}, nil +} + +// bindIGatewayEVM binds a generic wrapper to an already deployed contract. +func bindIGatewayEVM(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IGatewayEVMMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayEVM *IGatewayEVMRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayEVM.Contract.IGatewayEVMCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayEVM *IGatewayEVMRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayEVM.Contract.IGatewayEVMTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayEVM *IGatewayEVMRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayEVM.Contract.IGatewayEVMTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayEVM *IGatewayEVMCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayEVM.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayEVM *IGatewayEVMTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayEVM.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayEVM *IGatewayEVMTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayEVM.Contract.contract.Transact(opts, method, params...) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_IGatewayEVM *IGatewayEVMTransactor) Execute(opts *bind.TransactOpts, destination common.Address, data []byte) (*types.Transaction, error) { + return _IGatewayEVM.contract.Transact(opts, "execute", destination, data) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_IGatewayEVM *IGatewayEVMSession) Execute(destination common.Address, data []byte) (*types.Transaction, error) { + return _IGatewayEVM.Contract.Execute(&_IGatewayEVM.TransactOpts, destination, data) +} + +// Execute is a paid mutator transaction binding the contract method 0x1cff79cd. +// +// Solidity: function execute(address destination, bytes data) payable returns(bytes) +func (_IGatewayEVM *IGatewayEVMTransactorSession) Execute(destination common.Address, data []byte) (*types.Transaction, error) { + return _IGatewayEVM.Contract.Execute(&_IGatewayEVM.TransactOpts, destination, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_IGatewayEVM *IGatewayEVMTransactor) ExecuteWithERC20(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IGatewayEVM.contract.Transact(opts, "executeWithERC20", token, to, amount, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_IGatewayEVM *IGatewayEVMSession) ExecuteWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IGatewayEVM.Contract.ExecuteWithERC20(&_IGatewayEVM.TransactOpts, token, to, amount, data) +} + +// ExecuteWithERC20 is a paid mutator transaction binding the contract method 0x5131ab59. +// +// Solidity: function executeWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_IGatewayEVM *IGatewayEVMTransactorSession) ExecuteWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IGatewayEVM.Contract.ExecuteWithERC20(&_IGatewayEVM.TransactOpts, token, to, amount, data) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_IGatewayEVM *IGatewayEVMTransactor) RevertWithERC20(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IGatewayEVM.contract.Transact(opts, "revertWithERC20", token, to, amount, data) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_IGatewayEVM *IGatewayEVMSession) RevertWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IGatewayEVM.Contract.RevertWithERC20(&_IGatewayEVM.TransactOpts, token, to, amount, data) +} + +// RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. +// +// Solidity: function revertWithERC20(address token, address to, uint256 amount, bytes data) returns() +func (_IGatewayEVM *IGatewayEVMTransactorSession) RevertWithERC20(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IGatewayEVM.Contract.RevertWithERC20(&_IGatewayEVM.TransactOpts, token, to, amount, data) +} diff --git a/v2/pkg/igatewayevm.sol/igatewayevmerrors.go b/v2/pkg/igatewayevm.sol/igatewayevmerrors.go new file mode 100644 index 00000000..640eed08 --- /dev/null +++ b/v2/pkg/igatewayevm.sol/igatewayevmerrors.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package igatewayevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IGatewayEVMErrorsMetaData contains all meta data concerning the IGatewayEVMErrors contract. +var IGatewayEVMErrorsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", +} + +// IGatewayEVMErrorsABI is the input ABI used to generate the binding from. +// Deprecated: Use IGatewayEVMErrorsMetaData.ABI instead. +var IGatewayEVMErrorsABI = IGatewayEVMErrorsMetaData.ABI + +// IGatewayEVMErrors is an auto generated Go binding around an Ethereum contract. +type IGatewayEVMErrors struct { + IGatewayEVMErrorsCaller // Read-only binding to the contract + IGatewayEVMErrorsTransactor // Write-only binding to the contract + IGatewayEVMErrorsFilterer // Log filterer for contract events +} + +// IGatewayEVMErrorsCaller is an auto generated read-only Go binding around an Ethereum contract. +type IGatewayEVMErrorsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayEVMErrorsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IGatewayEVMErrorsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayEVMErrorsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IGatewayEVMErrorsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayEVMErrorsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IGatewayEVMErrorsSession struct { + Contract *IGatewayEVMErrors // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayEVMErrorsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IGatewayEVMErrorsCallerSession struct { + Contract *IGatewayEVMErrorsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IGatewayEVMErrorsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IGatewayEVMErrorsTransactorSession struct { + Contract *IGatewayEVMErrorsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayEVMErrorsRaw is an auto generated low-level Go binding around an Ethereum contract. +type IGatewayEVMErrorsRaw struct { + Contract *IGatewayEVMErrors // Generic contract binding to access the raw methods on +} + +// IGatewayEVMErrorsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IGatewayEVMErrorsCallerRaw struct { + Contract *IGatewayEVMErrorsCaller // Generic read-only contract binding to access the raw methods on +} + +// IGatewayEVMErrorsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IGatewayEVMErrorsTransactorRaw struct { + Contract *IGatewayEVMErrorsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIGatewayEVMErrors creates a new instance of IGatewayEVMErrors, bound to a specific deployed contract. +func NewIGatewayEVMErrors(address common.Address, backend bind.ContractBackend) (*IGatewayEVMErrors, error) { + contract, err := bindIGatewayEVMErrors(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IGatewayEVMErrors{IGatewayEVMErrorsCaller: IGatewayEVMErrorsCaller{contract: contract}, IGatewayEVMErrorsTransactor: IGatewayEVMErrorsTransactor{contract: contract}, IGatewayEVMErrorsFilterer: IGatewayEVMErrorsFilterer{contract: contract}}, nil +} + +// NewIGatewayEVMErrorsCaller creates a new read-only instance of IGatewayEVMErrors, bound to a specific deployed contract. +func NewIGatewayEVMErrorsCaller(address common.Address, caller bind.ContractCaller) (*IGatewayEVMErrorsCaller, error) { + contract, err := bindIGatewayEVMErrors(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IGatewayEVMErrorsCaller{contract: contract}, nil +} + +// NewIGatewayEVMErrorsTransactor creates a new write-only instance of IGatewayEVMErrors, bound to a specific deployed contract. +func NewIGatewayEVMErrorsTransactor(address common.Address, transactor bind.ContractTransactor) (*IGatewayEVMErrorsTransactor, error) { + contract, err := bindIGatewayEVMErrors(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IGatewayEVMErrorsTransactor{contract: contract}, nil +} + +// NewIGatewayEVMErrorsFilterer creates a new log filterer instance of IGatewayEVMErrors, bound to a specific deployed contract. +func NewIGatewayEVMErrorsFilterer(address common.Address, filterer bind.ContractFilterer) (*IGatewayEVMErrorsFilterer, error) { + contract, err := bindIGatewayEVMErrors(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IGatewayEVMErrorsFilterer{contract: contract}, nil +} + +// bindIGatewayEVMErrors binds a generic wrapper to an already deployed contract. +func bindIGatewayEVMErrors(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IGatewayEVMErrorsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayEVMErrors *IGatewayEVMErrorsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayEVMErrors.Contract.IGatewayEVMErrorsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayEVMErrors *IGatewayEVMErrorsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayEVMErrors.Contract.IGatewayEVMErrorsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayEVMErrors *IGatewayEVMErrorsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayEVMErrors.Contract.IGatewayEVMErrorsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayEVMErrors *IGatewayEVMErrorsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayEVMErrors.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayEVMErrors *IGatewayEVMErrorsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayEVMErrors.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayEVMErrors *IGatewayEVMErrorsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayEVMErrors.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/igatewayevm.sol/igatewayevmevents.go b/v2/pkg/igatewayevm.sol/igatewayevmevents.go new file mode 100644 index 00000000..18d13c75 --- /dev/null +++ b/v2/pkg/igatewayevm.sol/igatewayevmevents.go @@ -0,0 +1,1093 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package igatewayevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IGatewayEVMEventsMetaData contains all meta data concerning the IGatewayEVMEvents contract. +var IGatewayEVMEventsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Executed\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Reverted\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RevertedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", +} + +// IGatewayEVMEventsABI is the input ABI used to generate the binding from. +// Deprecated: Use IGatewayEVMEventsMetaData.ABI instead. +var IGatewayEVMEventsABI = IGatewayEVMEventsMetaData.ABI + +// IGatewayEVMEvents is an auto generated Go binding around an Ethereum contract. +type IGatewayEVMEvents struct { + IGatewayEVMEventsCaller // Read-only binding to the contract + IGatewayEVMEventsTransactor // Write-only binding to the contract + IGatewayEVMEventsFilterer // Log filterer for contract events +} + +// IGatewayEVMEventsCaller is an auto generated read-only Go binding around an Ethereum contract. +type IGatewayEVMEventsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayEVMEventsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IGatewayEVMEventsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayEVMEventsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IGatewayEVMEventsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayEVMEventsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IGatewayEVMEventsSession struct { + Contract *IGatewayEVMEvents // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayEVMEventsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IGatewayEVMEventsCallerSession struct { + Contract *IGatewayEVMEventsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IGatewayEVMEventsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IGatewayEVMEventsTransactorSession struct { + Contract *IGatewayEVMEventsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayEVMEventsRaw is an auto generated low-level Go binding around an Ethereum contract. +type IGatewayEVMEventsRaw struct { + Contract *IGatewayEVMEvents // Generic contract binding to access the raw methods on +} + +// IGatewayEVMEventsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IGatewayEVMEventsCallerRaw struct { + Contract *IGatewayEVMEventsCaller // Generic read-only contract binding to access the raw methods on +} + +// IGatewayEVMEventsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IGatewayEVMEventsTransactorRaw struct { + Contract *IGatewayEVMEventsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIGatewayEVMEvents creates a new instance of IGatewayEVMEvents, bound to a specific deployed contract. +func NewIGatewayEVMEvents(address common.Address, backend bind.ContractBackend) (*IGatewayEVMEvents, error) { + contract, err := bindIGatewayEVMEvents(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IGatewayEVMEvents{IGatewayEVMEventsCaller: IGatewayEVMEventsCaller{contract: contract}, IGatewayEVMEventsTransactor: IGatewayEVMEventsTransactor{contract: contract}, IGatewayEVMEventsFilterer: IGatewayEVMEventsFilterer{contract: contract}}, nil +} + +// NewIGatewayEVMEventsCaller creates a new read-only instance of IGatewayEVMEvents, bound to a specific deployed contract. +func NewIGatewayEVMEventsCaller(address common.Address, caller bind.ContractCaller) (*IGatewayEVMEventsCaller, error) { + contract, err := bindIGatewayEVMEvents(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IGatewayEVMEventsCaller{contract: contract}, nil +} + +// NewIGatewayEVMEventsTransactor creates a new write-only instance of IGatewayEVMEvents, bound to a specific deployed contract. +func NewIGatewayEVMEventsTransactor(address common.Address, transactor bind.ContractTransactor) (*IGatewayEVMEventsTransactor, error) { + contract, err := bindIGatewayEVMEvents(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IGatewayEVMEventsTransactor{contract: contract}, nil +} + +// NewIGatewayEVMEventsFilterer creates a new log filterer instance of IGatewayEVMEvents, bound to a specific deployed contract. +func NewIGatewayEVMEventsFilterer(address common.Address, filterer bind.ContractFilterer) (*IGatewayEVMEventsFilterer, error) { + contract, err := bindIGatewayEVMEvents(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IGatewayEVMEventsFilterer{contract: contract}, nil +} + +// bindIGatewayEVMEvents binds a generic wrapper to an already deployed contract. +func bindIGatewayEVMEvents(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IGatewayEVMEventsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayEVMEvents *IGatewayEVMEventsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayEVMEvents.Contract.IGatewayEVMEventsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayEVMEvents *IGatewayEVMEventsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayEVMEvents.Contract.IGatewayEVMEventsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayEVMEvents *IGatewayEVMEventsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayEVMEvents.Contract.IGatewayEVMEventsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayEVMEvents *IGatewayEVMEventsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayEVMEvents.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayEVMEvents *IGatewayEVMEventsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayEVMEvents.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayEVMEvents *IGatewayEVMEventsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayEVMEvents.Contract.contract.Transact(opts, method, params...) +} + +// IGatewayEVMEventsCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsCallIterator struct { + Event *IGatewayEVMEventsCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IGatewayEVMEventsCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IGatewayEVMEventsCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IGatewayEVMEventsCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IGatewayEVMEventsCall represents a Call event raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsCall struct { + Sender common.Address + Receiver common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*IGatewayEVMEventsCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.FilterLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &IGatewayEVMEventsCallIterator{contract: _IGatewayEVMEvents.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *IGatewayEVMEventsCall, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IGatewayEVMEventsCall) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) ParseCall(log types.Log) (*IGatewayEVMEventsCall, error) { + event := new(IGatewayEVMEventsCall) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IGatewayEVMEventsDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsDepositIterator struct { + Event *IGatewayEVMEventsDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IGatewayEVMEventsDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IGatewayEVMEventsDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IGatewayEVMEventsDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IGatewayEVMEventsDeposit represents a Deposit event raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsDeposit struct { + Sender common.Address + Receiver common.Address + Amount *big.Int + Asset common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) FilterDeposit(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*IGatewayEVMEventsDepositIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &IGatewayEVMEventsDepositIterator{contract: _IGatewayEVMEvents.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *IGatewayEVMEventsDeposit, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IGatewayEVMEventsDeposit) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) ParseDeposit(log types.Log) (*IGatewayEVMEventsDeposit, error) { + event := new(IGatewayEVMEventsDeposit) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IGatewayEVMEventsExecutedIterator is returned from FilterExecuted and is used to iterate over the raw logs and unpacked data for Executed events raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsExecutedIterator struct { + Event *IGatewayEVMEventsExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IGatewayEVMEventsExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IGatewayEVMEventsExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IGatewayEVMEventsExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IGatewayEVMEventsExecuted represents a Executed event raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsExecuted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*IGatewayEVMEventsExecutedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.FilterLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return &IGatewayEVMEventsExecutedIterator{contract: _IGatewayEVMEvents.contract, event: "Executed", logs: logs, sub: sub}, nil +} + +// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) WatchExecuted(opts *bind.WatchOpts, sink chan<- *IGatewayEVMEventsExecuted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.WatchLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IGatewayEVMEventsExecuted) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "Executed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) ParseExecuted(log types.Log) (*IGatewayEVMEventsExecuted, error) { + event := new(IGatewayEVMEventsExecuted) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "Executed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IGatewayEVMEventsExecutedWithERC20Iterator is returned from FilterExecutedWithERC20 and is used to iterate over the raw logs and unpacked data for ExecutedWithERC20 events raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsExecutedWithERC20Iterator struct { + Event *IGatewayEVMEventsExecutedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IGatewayEVMEventsExecutedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IGatewayEVMEventsExecutedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IGatewayEVMEventsExecutedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IGatewayEVMEventsExecutedWithERC20 represents a ExecutedWithERC20 event raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsExecutedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) FilterExecutedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*IGatewayEVMEventsExecutedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &IGatewayEVMEventsExecutedWithERC20Iterator{contract: _IGatewayEVMEvents.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) WatchExecutedWithERC20(opts *bind.WatchOpts, sink chan<- *IGatewayEVMEventsExecutedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IGatewayEVMEventsExecutedWithERC20) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) ParseExecutedWithERC20(log types.Log) (*IGatewayEVMEventsExecutedWithERC20, error) { + event := new(IGatewayEVMEventsExecutedWithERC20) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IGatewayEVMEventsRevertedIterator is returned from FilterReverted and is used to iterate over the raw logs and unpacked data for Reverted events raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsRevertedIterator struct { + Event *IGatewayEVMEventsReverted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IGatewayEVMEventsRevertedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IGatewayEVMEventsRevertedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IGatewayEVMEventsRevertedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IGatewayEVMEventsReverted represents a Reverted event raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsReverted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*IGatewayEVMEventsRevertedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.FilterLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return &IGatewayEVMEventsRevertedIterator{contract: _IGatewayEVMEvents.contract, event: "Reverted", logs: logs, sub: sub}, nil +} + +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) WatchReverted(opts *bind.WatchOpts, sink chan<- *IGatewayEVMEventsReverted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.WatchLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IGatewayEVMEventsReverted) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "Reverted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) ParseReverted(log types.Log) (*IGatewayEVMEventsReverted, error) { + event := new(IGatewayEVMEventsReverted) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "Reverted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IGatewayEVMEventsRevertedWithERC20Iterator is returned from FilterRevertedWithERC20 and is used to iterate over the raw logs and unpacked data for RevertedWithERC20 events raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsRevertedWithERC20Iterator struct { + Event *IGatewayEVMEventsRevertedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IGatewayEVMEventsRevertedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IGatewayEVMEventsRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IGatewayEVMEventsRevertedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IGatewayEVMEventsRevertedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IGatewayEVMEventsRevertedWithERC20 represents a RevertedWithERC20 event raised by the IGatewayEVMEvents contract. +type IGatewayEVMEventsRevertedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) FilterRevertedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*IGatewayEVMEventsRevertedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &IGatewayEVMEventsRevertedWithERC20Iterator{contract: _IGatewayEVMEvents.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) WatchRevertedWithERC20(opts *bind.WatchOpts, sink chan<- *IGatewayEVMEventsRevertedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IGatewayEVMEvents.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IGatewayEVMEventsRevertedWithERC20) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_IGatewayEVMEvents *IGatewayEVMEventsFilterer) ParseRevertedWithERC20(log types.Log) (*IGatewayEVMEventsRevertedWithERC20, error) { + event := new(IGatewayEVMEventsRevertedWithERC20) + if err := _IGatewayEVMEvents.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/igatewayevm.sol/revertable.go b/v2/pkg/igatewayevm.sol/revertable.go new file mode 100644 index 00000000..5d6caf30 --- /dev/null +++ b/v2/pkg/igatewayevm.sol/revertable.go @@ -0,0 +1,202 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package igatewayevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// RevertableMetaData contains all meta data concerning the Revertable contract. +var RevertableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"onRevert\",\"inputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", +} + +// RevertableABI is the input ABI used to generate the binding from. +// Deprecated: Use RevertableMetaData.ABI instead. +var RevertableABI = RevertableMetaData.ABI + +// Revertable is an auto generated Go binding around an Ethereum contract. +type Revertable struct { + RevertableCaller // Read-only binding to the contract + RevertableTransactor // Write-only binding to the contract + RevertableFilterer // Log filterer for contract events +} + +// RevertableCaller is an auto generated read-only Go binding around an Ethereum contract. +type RevertableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// RevertableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type RevertableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// RevertableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type RevertableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// RevertableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type RevertableSession struct { + Contract *Revertable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// RevertableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type RevertableCallerSession struct { + Contract *RevertableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// RevertableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type RevertableTransactorSession struct { + Contract *RevertableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// RevertableRaw is an auto generated low-level Go binding around an Ethereum contract. +type RevertableRaw struct { + Contract *Revertable // Generic contract binding to access the raw methods on +} + +// RevertableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type RevertableCallerRaw struct { + Contract *RevertableCaller // Generic read-only contract binding to access the raw methods on +} + +// RevertableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type RevertableTransactorRaw struct { + Contract *RevertableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewRevertable creates a new instance of Revertable, bound to a specific deployed contract. +func NewRevertable(address common.Address, backend bind.ContractBackend) (*Revertable, error) { + contract, err := bindRevertable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Revertable{RevertableCaller: RevertableCaller{contract: contract}, RevertableTransactor: RevertableTransactor{contract: contract}, RevertableFilterer: RevertableFilterer{contract: contract}}, nil +} + +// NewRevertableCaller creates a new read-only instance of Revertable, bound to a specific deployed contract. +func NewRevertableCaller(address common.Address, caller bind.ContractCaller) (*RevertableCaller, error) { + contract, err := bindRevertable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &RevertableCaller{contract: contract}, nil +} + +// NewRevertableTransactor creates a new write-only instance of Revertable, bound to a specific deployed contract. +func NewRevertableTransactor(address common.Address, transactor bind.ContractTransactor) (*RevertableTransactor, error) { + contract, err := bindRevertable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &RevertableTransactor{contract: contract}, nil +} + +// NewRevertableFilterer creates a new log filterer instance of Revertable, bound to a specific deployed contract. +func NewRevertableFilterer(address common.Address, filterer bind.ContractFilterer) (*RevertableFilterer, error) { + contract, err := bindRevertable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &RevertableFilterer{contract: contract}, nil +} + +// bindRevertable binds a generic wrapper to an already deployed contract. +func bindRevertable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := RevertableMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Revertable *RevertableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Revertable.Contract.RevertableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Revertable *RevertableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Revertable.Contract.RevertableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Revertable *RevertableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Revertable.Contract.RevertableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Revertable *RevertableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Revertable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Revertable *RevertableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Revertable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Revertable *RevertableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Revertable.Contract.contract.Transact(opts, method, params...) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x8fcaa0b5. +// +// Solidity: function onRevert(bytes data) returns() +func (_Revertable *RevertableTransactor) OnRevert(opts *bind.TransactOpts, data []byte) (*types.Transaction, error) { + return _Revertable.contract.Transact(opts, "onRevert", data) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x8fcaa0b5. +// +// Solidity: function onRevert(bytes data) returns() +func (_Revertable *RevertableSession) OnRevert(data []byte) (*types.Transaction, error) { + return _Revertable.Contract.OnRevert(&_Revertable.TransactOpts, data) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x8fcaa0b5. +// +// Solidity: function onRevert(bytes data) returns() +func (_Revertable *RevertableTransactorSession) OnRevert(data []byte) (*types.Transaction, error) { + return _Revertable.Contract.OnRevert(&_Revertable.TransactOpts, data) +} diff --git a/v2/pkg/igatewayzevm.sol/igatewayzevm.go b/v2/pkg/igatewayzevm.sol/igatewayzevm.go new file mode 100644 index 00000000..9dbc628a --- /dev/null +++ b/v2/pkg/igatewayzevm.sol/igatewayzevm.go @@ -0,0 +1,314 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package igatewayzevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZContext is an auto generated low-level Go binding around an user-defined struct. +type ZContext struct { + Origin []byte + Sender common.Address + ChainID *big.Int +} + +// IGatewayZEVMMetaData contains all meta data concerning the IGatewayZEVM contract. +var IGatewayZEVMMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"call\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositAndCall\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structzContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"execute\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structzContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndCall\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", +} + +// IGatewayZEVMABI is the input ABI used to generate the binding from. +// Deprecated: Use IGatewayZEVMMetaData.ABI instead. +var IGatewayZEVMABI = IGatewayZEVMMetaData.ABI + +// IGatewayZEVM is an auto generated Go binding around an Ethereum contract. +type IGatewayZEVM struct { + IGatewayZEVMCaller // Read-only binding to the contract + IGatewayZEVMTransactor // Write-only binding to the contract + IGatewayZEVMFilterer // Log filterer for contract events +} + +// IGatewayZEVMCaller is an auto generated read-only Go binding around an Ethereum contract. +type IGatewayZEVMCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayZEVMTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IGatewayZEVMTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayZEVMFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IGatewayZEVMFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayZEVMSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IGatewayZEVMSession struct { + Contract *IGatewayZEVM // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayZEVMCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IGatewayZEVMCallerSession struct { + Contract *IGatewayZEVMCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IGatewayZEVMTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IGatewayZEVMTransactorSession struct { + Contract *IGatewayZEVMTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayZEVMRaw is an auto generated low-level Go binding around an Ethereum contract. +type IGatewayZEVMRaw struct { + Contract *IGatewayZEVM // Generic contract binding to access the raw methods on +} + +// IGatewayZEVMCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IGatewayZEVMCallerRaw struct { + Contract *IGatewayZEVMCaller // Generic read-only contract binding to access the raw methods on +} + +// IGatewayZEVMTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IGatewayZEVMTransactorRaw struct { + Contract *IGatewayZEVMTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIGatewayZEVM creates a new instance of IGatewayZEVM, bound to a specific deployed contract. +func NewIGatewayZEVM(address common.Address, backend bind.ContractBackend) (*IGatewayZEVM, error) { + contract, err := bindIGatewayZEVM(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IGatewayZEVM{IGatewayZEVMCaller: IGatewayZEVMCaller{contract: contract}, IGatewayZEVMTransactor: IGatewayZEVMTransactor{contract: contract}, IGatewayZEVMFilterer: IGatewayZEVMFilterer{contract: contract}}, nil +} + +// NewIGatewayZEVMCaller creates a new read-only instance of IGatewayZEVM, bound to a specific deployed contract. +func NewIGatewayZEVMCaller(address common.Address, caller bind.ContractCaller) (*IGatewayZEVMCaller, error) { + contract, err := bindIGatewayZEVM(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IGatewayZEVMCaller{contract: contract}, nil +} + +// NewIGatewayZEVMTransactor creates a new write-only instance of IGatewayZEVM, bound to a specific deployed contract. +func NewIGatewayZEVMTransactor(address common.Address, transactor bind.ContractTransactor) (*IGatewayZEVMTransactor, error) { + contract, err := bindIGatewayZEVM(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IGatewayZEVMTransactor{contract: contract}, nil +} + +// NewIGatewayZEVMFilterer creates a new log filterer instance of IGatewayZEVM, bound to a specific deployed contract. +func NewIGatewayZEVMFilterer(address common.Address, filterer bind.ContractFilterer) (*IGatewayZEVMFilterer, error) { + contract, err := bindIGatewayZEVM(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IGatewayZEVMFilterer{contract: contract}, nil +} + +// bindIGatewayZEVM binds a generic wrapper to an already deployed contract. +func bindIGatewayZEVM(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IGatewayZEVMMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayZEVM *IGatewayZEVMRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayZEVM.Contract.IGatewayZEVMCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayZEVM *IGatewayZEVMRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.IGatewayZEVMTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayZEVM *IGatewayZEVMRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.IGatewayZEVMTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayZEVM *IGatewayZEVMCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayZEVM.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayZEVM *IGatewayZEVMTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayZEVM *IGatewayZEVMTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.contract.Transact(opts, method, params...) +} + +// Call is a paid mutator transaction binding the contract method 0x0ac7c44c. +// +// Solidity: function call(bytes receiver, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactor) Call(opts *bind.TransactOpts, receiver []byte, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.contract.Transact(opts, "call", receiver, message) +} + +// Call is a paid mutator transaction binding the contract method 0x0ac7c44c. +// +// Solidity: function call(bytes receiver, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMSession) Call(receiver []byte, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Call(&_IGatewayZEVM.TransactOpts, receiver, message) +} + +// Call is a paid mutator transaction binding the contract method 0x0ac7c44c. +// +// Solidity: function call(bytes receiver, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactorSession) Call(receiver []byte, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Call(&_IGatewayZEVM.TransactOpts, receiver, message) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address zrc20, uint256 amount, address target) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactor) Deposit(opts *bind.TransactOpts, zrc20 common.Address, amount *big.Int, target common.Address) (*types.Transaction, error) { + return _IGatewayZEVM.contract.Transact(opts, "deposit", zrc20, amount, target) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address zrc20, uint256 amount, address target) returns() +func (_IGatewayZEVM *IGatewayZEVMSession) Deposit(zrc20 common.Address, amount *big.Int, target common.Address) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Deposit(&_IGatewayZEVM.TransactOpts, zrc20, amount, target) +} + +// Deposit is a paid mutator transaction binding the contract method 0xf45346dc. +// +// Solidity: function deposit(address zrc20, uint256 amount, address target) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactorSession) Deposit(zrc20 common.Address, amount *big.Int, target common.Address) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Deposit(&_IGatewayZEVM.TransactOpts, zrc20, amount, target) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0xc39aca37. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactor) DepositAndCall(opts *bind.TransactOpts, context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.contract.Transact(opts, "depositAndCall", context, zrc20, amount, target, message) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0xc39aca37. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMSession) DepositAndCall(context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.DepositAndCall(&_IGatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0xc39aca37. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactorSession) DepositAndCall(context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.DepositAndCall(&_IGatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// Execute is a paid mutator transaction binding the contract method 0xbcf7f32b. +// +// Solidity: function execute((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactor) Execute(opts *bind.TransactOpts, context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.contract.Transact(opts, "execute", context, zrc20, amount, target, message) +} + +// Execute is a paid mutator transaction binding the contract method 0xbcf7f32b. +// +// Solidity: function execute((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMSession) Execute(context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Execute(&_IGatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// Execute is a paid mutator transaction binding the contract method 0xbcf7f32b. +// +// Solidity: function execute((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactorSession) Execute(context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Execute(&_IGatewayZEVM.TransactOpts, context, zrc20, amount, target, message) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x135390f9. +// +// Solidity: function withdraw(bytes receiver, uint256 amount, address zrc20) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactor) Withdraw(opts *bind.TransactOpts, receiver []byte, amount *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _IGatewayZEVM.contract.Transact(opts, "withdraw", receiver, amount, zrc20) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x135390f9. +// +// Solidity: function withdraw(bytes receiver, uint256 amount, address zrc20) returns() +func (_IGatewayZEVM *IGatewayZEVMSession) Withdraw(receiver []byte, amount *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Withdraw(&_IGatewayZEVM.TransactOpts, receiver, amount, zrc20) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x135390f9. +// +// Solidity: function withdraw(bytes receiver, uint256 amount, address zrc20) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactorSession) Withdraw(receiver []byte, amount *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Withdraw(&_IGatewayZEVM.TransactOpts, receiver, amount, zrc20) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x7993c1e0. +// +// Solidity: function withdrawAndCall(bytes receiver, uint256 amount, address zrc20, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactor) WithdrawAndCall(opts *bind.TransactOpts, receiver []byte, amount *big.Int, zrc20 common.Address, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.contract.Transact(opts, "withdrawAndCall", receiver, amount, zrc20, message) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x7993c1e0. +// +// Solidity: function withdrawAndCall(bytes receiver, uint256 amount, address zrc20, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMSession) WithdrawAndCall(receiver []byte, amount *big.Int, zrc20 common.Address, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.WithdrawAndCall(&_IGatewayZEVM.TransactOpts, receiver, amount, zrc20, message) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x7993c1e0. +// +// Solidity: function withdrawAndCall(bytes receiver, uint256 amount, address zrc20, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactorSession) WithdrawAndCall(receiver []byte, amount *big.Int, zrc20 common.Address, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.WithdrawAndCall(&_IGatewayZEVM.TransactOpts, receiver, amount, zrc20, message) +} diff --git a/v2/pkg/igatewayzevm.sol/igatewayzevmerrors.go b/v2/pkg/igatewayzevm.sol/igatewayzevmerrors.go new file mode 100644 index 00000000..cb6c3e73 --- /dev/null +++ b/v2/pkg/igatewayzevm.sol/igatewayzevmerrors.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package igatewayzevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IGatewayZEVMErrorsMetaData contains all meta data concerning the IGatewayZEVMErrors contract. +var IGatewayZEVMErrorsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedZetaSent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GasFeeTransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientZRC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTarget\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyWZETAOrFungible\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZRC20BurnFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZRC20TransferFailed\",\"inputs\":[]}]", +} + +// IGatewayZEVMErrorsABI is the input ABI used to generate the binding from. +// Deprecated: Use IGatewayZEVMErrorsMetaData.ABI instead. +var IGatewayZEVMErrorsABI = IGatewayZEVMErrorsMetaData.ABI + +// IGatewayZEVMErrors is an auto generated Go binding around an Ethereum contract. +type IGatewayZEVMErrors struct { + IGatewayZEVMErrorsCaller // Read-only binding to the contract + IGatewayZEVMErrorsTransactor // Write-only binding to the contract + IGatewayZEVMErrorsFilterer // Log filterer for contract events +} + +// IGatewayZEVMErrorsCaller is an auto generated read-only Go binding around an Ethereum contract. +type IGatewayZEVMErrorsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayZEVMErrorsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IGatewayZEVMErrorsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayZEVMErrorsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IGatewayZEVMErrorsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayZEVMErrorsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IGatewayZEVMErrorsSession struct { + Contract *IGatewayZEVMErrors // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayZEVMErrorsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IGatewayZEVMErrorsCallerSession struct { + Contract *IGatewayZEVMErrorsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IGatewayZEVMErrorsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IGatewayZEVMErrorsTransactorSession struct { + Contract *IGatewayZEVMErrorsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayZEVMErrorsRaw is an auto generated low-level Go binding around an Ethereum contract. +type IGatewayZEVMErrorsRaw struct { + Contract *IGatewayZEVMErrors // Generic contract binding to access the raw methods on +} + +// IGatewayZEVMErrorsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IGatewayZEVMErrorsCallerRaw struct { + Contract *IGatewayZEVMErrorsCaller // Generic read-only contract binding to access the raw methods on +} + +// IGatewayZEVMErrorsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IGatewayZEVMErrorsTransactorRaw struct { + Contract *IGatewayZEVMErrorsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIGatewayZEVMErrors creates a new instance of IGatewayZEVMErrors, bound to a specific deployed contract. +func NewIGatewayZEVMErrors(address common.Address, backend bind.ContractBackend) (*IGatewayZEVMErrors, error) { + contract, err := bindIGatewayZEVMErrors(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IGatewayZEVMErrors{IGatewayZEVMErrorsCaller: IGatewayZEVMErrorsCaller{contract: contract}, IGatewayZEVMErrorsTransactor: IGatewayZEVMErrorsTransactor{contract: contract}, IGatewayZEVMErrorsFilterer: IGatewayZEVMErrorsFilterer{contract: contract}}, nil +} + +// NewIGatewayZEVMErrorsCaller creates a new read-only instance of IGatewayZEVMErrors, bound to a specific deployed contract. +func NewIGatewayZEVMErrorsCaller(address common.Address, caller bind.ContractCaller) (*IGatewayZEVMErrorsCaller, error) { + contract, err := bindIGatewayZEVMErrors(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IGatewayZEVMErrorsCaller{contract: contract}, nil +} + +// NewIGatewayZEVMErrorsTransactor creates a new write-only instance of IGatewayZEVMErrors, bound to a specific deployed contract. +func NewIGatewayZEVMErrorsTransactor(address common.Address, transactor bind.ContractTransactor) (*IGatewayZEVMErrorsTransactor, error) { + contract, err := bindIGatewayZEVMErrors(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IGatewayZEVMErrorsTransactor{contract: contract}, nil +} + +// NewIGatewayZEVMErrorsFilterer creates a new log filterer instance of IGatewayZEVMErrors, bound to a specific deployed contract. +func NewIGatewayZEVMErrorsFilterer(address common.Address, filterer bind.ContractFilterer) (*IGatewayZEVMErrorsFilterer, error) { + contract, err := bindIGatewayZEVMErrors(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IGatewayZEVMErrorsFilterer{contract: contract}, nil +} + +// bindIGatewayZEVMErrors binds a generic wrapper to an already deployed contract. +func bindIGatewayZEVMErrors(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IGatewayZEVMErrorsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayZEVMErrors *IGatewayZEVMErrorsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayZEVMErrors.Contract.IGatewayZEVMErrorsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayZEVMErrors *IGatewayZEVMErrorsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayZEVMErrors.Contract.IGatewayZEVMErrorsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayZEVMErrors *IGatewayZEVMErrorsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayZEVMErrors.Contract.IGatewayZEVMErrorsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayZEVMErrors *IGatewayZEVMErrorsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayZEVMErrors.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayZEVMErrors *IGatewayZEVMErrorsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayZEVMErrors.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayZEVMErrors *IGatewayZEVMErrorsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayZEVMErrors.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/igatewayzevm.sol/igatewayzevmevents.go b/v2/pkg/igatewayzevm.sol/igatewayzevmevents.go new file mode 100644 index 00000000..5c6112f7 --- /dev/null +++ b/v2/pkg/igatewayzevm.sol/igatewayzevmevents.go @@ -0,0 +1,477 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package igatewayzevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IGatewayZEVMEventsMetaData contains all meta data concerning the IGatewayZEVMEvents contract. +var IGatewayZEVMEventsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"zrc20\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"gasfee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"protocolFlatFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", +} + +// IGatewayZEVMEventsABI is the input ABI used to generate the binding from. +// Deprecated: Use IGatewayZEVMEventsMetaData.ABI instead. +var IGatewayZEVMEventsABI = IGatewayZEVMEventsMetaData.ABI + +// IGatewayZEVMEvents is an auto generated Go binding around an Ethereum contract. +type IGatewayZEVMEvents struct { + IGatewayZEVMEventsCaller // Read-only binding to the contract + IGatewayZEVMEventsTransactor // Write-only binding to the contract + IGatewayZEVMEventsFilterer // Log filterer for contract events +} + +// IGatewayZEVMEventsCaller is an auto generated read-only Go binding around an Ethereum contract. +type IGatewayZEVMEventsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayZEVMEventsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IGatewayZEVMEventsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayZEVMEventsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IGatewayZEVMEventsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IGatewayZEVMEventsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IGatewayZEVMEventsSession struct { + Contract *IGatewayZEVMEvents // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayZEVMEventsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IGatewayZEVMEventsCallerSession struct { + Contract *IGatewayZEVMEventsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IGatewayZEVMEventsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IGatewayZEVMEventsTransactorSession struct { + Contract *IGatewayZEVMEventsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IGatewayZEVMEventsRaw is an auto generated low-level Go binding around an Ethereum contract. +type IGatewayZEVMEventsRaw struct { + Contract *IGatewayZEVMEvents // Generic contract binding to access the raw methods on +} + +// IGatewayZEVMEventsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IGatewayZEVMEventsCallerRaw struct { + Contract *IGatewayZEVMEventsCaller // Generic read-only contract binding to access the raw methods on +} + +// IGatewayZEVMEventsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IGatewayZEVMEventsTransactorRaw struct { + Contract *IGatewayZEVMEventsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIGatewayZEVMEvents creates a new instance of IGatewayZEVMEvents, bound to a specific deployed contract. +func NewIGatewayZEVMEvents(address common.Address, backend bind.ContractBackend) (*IGatewayZEVMEvents, error) { + contract, err := bindIGatewayZEVMEvents(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IGatewayZEVMEvents{IGatewayZEVMEventsCaller: IGatewayZEVMEventsCaller{contract: contract}, IGatewayZEVMEventsTransactor: IGatewayZEVMEventsTransactor{contract: contract}, IGatewayZEVMEventsFilterer: IGatewayZEVMEventsFilterer{contract: contract}}, nil +} + +// NewIGatewayZEVMEventsCaller creates a new read-only instance of IGatewayZEVMEvents, bound to a specific deployed contract. +func NewIGatewayZEVMEventsCaller(address common.Address, caller bind.ContractCaller) (*IGatewayZEVMEventsCaller, error) { + contract, err := bindIGatewayZEVMEvents(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IGatewayZEVMEventsCaller{contract: contract}, nil +} + +// NewIGatewayZEVMEventsTransactor creates a new write-only instance of IGatewayZEVMEvents, bound to a specific deployed contract. +func NewIGatewayZEVMEventsTransactor(address common.Address, transactor bind.ContractTransactor) (*IGatewayZEVMEventsTransactor, error) { + contract, err := bindIGatewayZEVMEvents(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IGatewayZEVMEventsTransactor{contract: contract}, nil +} + +// NewIGatewayZEVMEventsFilterer creates a new log filterer instance of IGatewayZEVMEvents, bound to a specific deployed contract. +func NewIGatewayZEVMEventsFilterer(address common.Address, filterer bind.ContractFilterer) (*IGatewayZEVMEventsFilterer, error) { + contract, err := bindIGatewayZEVMEvents(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IGatewayZEVMEventsFilterer{contract: contract}, nil +} + +// bindIGatewayZEVMEvents binds a generic wrapper to an already deployed contract. +func bindIGatewayZEVMEvents(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IGatewayZEVMEventsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayZEVMEvents *IGatewayZEVMEventsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayZEVMEvents.Contract.IGatewayZEVMEventsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayZEVMEvents *IGatewayZEVMEventsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayZEVMEvents.Contract.IGatewayZEVMEventsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayZEVMEvents *IGatewayZEVMEventsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayZEVMEvents.Contract.IGatewayZEVMEventsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IGatewayZEVMEvents *IGatewayZEVMEventsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IGatewayZEVMEvents.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IGatewayZEVMEvents *IGatewayZEVMEventsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IGatewayZEVMEvents.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IGatewayZEVMEvents *IGatewayZEVMEventsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IGatewayZEVMEvents.Contract.contract.Transact(opts, method, params...) +} + +// IGatewayZEVMEventsCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the IGatewayZEVMEvents contract. +type IGatewayZEVMEventsCallIterator struct { + Event *IGatewayZEVMEventsCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IGatewayZEVMEventsCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IGatewayZEVMEventsCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IGatewayZEVMEventsCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IGatewayZEVMEventsCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IGatewayZEVMEventsCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IGatewayZEVMEventsCall represents a Call event raised by the IGatewayZEVMEvents contract. +type IGatewayZEVMEventsCall struct { + Sender common.Address + Receiver []byte + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address) (*IGatewayZEVMEventsCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _IGatewayZEVMEvents.contract.FilterLogs(opts, "Call", senderRule) + if err != nil { + return nil, err + } + return &IGatewayZEVMEventsCallIterator{contract: _IGatewayZEVMEvents.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *IGatewayZEVMEventsCall, sender []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _IGatewayZEVMEvents.contract.WatchLogs(opts, "Call", senderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IGatewayZEVMEventsCall) + if err := _IGatewayZEVMEvents.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// +// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) ParseCall(log types.Log) (*IGatewayZEVMEventsCall, error) { + event := new(IGatewayZEVMEventsCall) + if err := _IGatewayZEVMEvents.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IGatewayZEVMEventsWithdrawalIterator is returned from FilterWithdrawal and is used to iterate over the raw logs and unpacked data for Withdrawal events raised by the IGatewayZEVMEvents contract. +type IGatewayZEVMEventsWithdrawalIterator struct { + Event *IGatewayZEVMEventsWithdrawal // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IGatewayZEVMEventsWithdrawalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IGatewayZEVMEventsWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IGatewayZEVMEventsWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IGatewayZEVMEventsWithdrawalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IGatewayZEVMEventsWithdrawalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IGatewayZEVMEventsWithdrawal represents a Withdrawal event raised by the IGatewayZEVMEvents contract. +type IGatewayZEVMEventsWithdrawal struct { + From common.Address + Zrc20 common.Address + To []byte + Value *big.Int + Gasfee *big.Int + ProtocolFlatFee *big.Int + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawal is a free log retrieval operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) FilterWithdrawal(opts *bind.FilterOpts, from []common.Address) (*IGatewayZEVMEventsWithdrawalIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _IGatewayZEVMEvents.contract.FilterLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return &IGatewayZEVMEventsWithdrawalIterator{contract: _IGatewayZEVMEvents.contract, event: "Withdrawal", logs: logs, sub: sub}, nil +} + +// WatchWithdrawal is a free log subscription operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *IGatewayZEVMEventsWithdrawal, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _IGatewayZEVMEvents.contract.WatchLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IGatewayZEVMEventsWithdrawal) + if err := _IGatewayZEVMEvents.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawal is a log parse operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// +// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) ParseWithdrawal(log types.Log) (*IGatewayZEVMEventsWithdrawal, error) { + event := new(IGatewayZEVMEventsWithdrawal) + if err := _IGatewayZEVMEvents.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/imulticall3.sol/imulticall3.go b/v2/pkg/imulticall3.sol/imulticall3.go new file mode 100644 index 00000000..186e69d1 --- /dev/null +++ b/v2/pkg/imulticall3.sol/imulticall3.go @@ -0,0 +1,644 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package imulticall3 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IMulticall3Call is an auto generated low-level Go binding around an user-defined struct. +type IMulticall3Call struct { + Target common.Address + CallData []byte +} + +// IMulticall3Call3 is an auto generated low-level Go binding around an user-defined struct. +type IMulticall3Call3 struct { + Target common.Address + AllowFailure bool + CallData []byte +} + +// IMulticall3Call3Value is an auto generated low-level Go binding around an user-defined struct. +type IMulticall3Call3Value struct { + Target common.Address + AllowFailure bool + Value *big.Int + CallData []byte +} + +// IMulticall3Result is an auto generated low-level Go binding around an user-defined struct. +type IMulticall3Result struct { + Success bool + ReturnData []byte +} + +// IMulticall3MetaData contains all meta data concerning the IMulticall3 contract. +var IMulticall3MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"aggregate\",\"inputs\":[{\"name\":\"calls\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Call[]\",\"components\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"callData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"returnData\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"aggregate3\",\"inputs\":[{\"name\":\"calls\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Call3[]\",\"components\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowFailure\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"callData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"returnData\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Result[]\",\"components\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"returnData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"aggregate3Value\",\"inputs\":[{\"name\":\"calls\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Call3Value[]\",\"components\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowFailure\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"callData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"returnData\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Result[]\",\"components\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"returnData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"blockAndAggregate\",\"inputs\":[{\"name\":\"calls\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Call[]\",\"components\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"callData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"blockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"returnData\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Result[]\",\"components\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"returnData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"getBasefee\",\"inputs\":[],\"outputs\":[{\"name\":\"basefee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlockHash\",\"inputs\":[{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"blockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getChainId\",\"inputs\":[],\"outputs\":[{\"name\":\"chainid\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentBlockCoinbase\",\"inputs\":[],\"outputs\":[{\"name\":\"coinbase\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentBlockDifficulty\",\"inputs\":[],\"outputs\":[{\"name\":\"difficulty\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentBlockGasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"gaslimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentBlockTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"timestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getEthBalance\",\"inputs\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLastBlockHash\",\"inputs\":[],\"outputs\":[{\"name\":\"blockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tryAggregate\",\"inputs\":[{\"name\":\"requireSuccess\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"calls\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Call[]\",\"components\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"callData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"returnData\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Result[]\",\"components\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"returnData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"tryBlockAndAggregate\",\"inputs\":[{\"name\":\"requireSuccess\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"calls\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Call[]\",\"components\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"callData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"blockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"returnData\",\"type\":\"tuple[]\",\"internalType\":\"structIMulticall3.Result[]\",\"components\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"returnData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"payable\"}]", +} + +// IMulticall3ABI is the input ABI used to generate the binding from. +// Deprecated: Use IMulticall3MetaData.ABI instead. +var IMulticall3ABI = IMulticall3MetaData.ABI + +// IMulticall3 is an auto generated Go binding around an Ethereum contract. +type IMulticall3 struct { + IMulticall3Caller // Read-only binding to the contract + IMulticall3Transactor // Write-only binding to the contract + IMulticall3Filterer // Log filterer for contract events +} + +// IMulticall3Caller is an auto generated read-only Go binding around an Ethereum contract. +type IMulticall3Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IMulticall3Transactor is an auto generated write-only Go binding around an Ethereum contract. +type IMulticall3Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IMulticall3Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IMulticall3Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IMulticall3Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IMulticall3Session struct { + Contract *IMulticall3 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IMulticall3CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IMulticall3CallerSession struct { + Contract *IMulticall3Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IMulticall3TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IMulticall3TransactorSession struct { + Contract *IMulticall3Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IMulticall3Raw is an auto generated low-level Go binding around an Ethereum contract. +type IMulticall3Raw struct { + Contract *IMulticall3 // Generic contract binding to access the raw methods on +} + +// IMulticall3CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IMulticall3CallerRaw struct { + Contract *IMulticall3Caller // Generic read-only contract binding to access the raw methods on +} + +// IMulticall3TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IMulticall3TransactorRaw struct { + Contract *IMulticall3Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewIMulticall3 creates a new instance of IMulticall3, bound to a specific deployed contract. +func NewIMulticall3(address common.Address, backend bind.ContractBackend) (*IMulticall3, error) { + contract, err := bindIMulticall3(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IMulticall3{IMulticall3Caller: IMulticall3Caller{contract: contract}, IMulticall3Transactor: IMulticall3Transactor{contract: contract}, IMulticall3Filterer: IMulticall3Filterer{contract: contract}}, nil +} + +// NewIMulticall3Caller creates a new read-only instance of IMulticall3, bound to a specific deployed contract. +func NewIMulticall3Caller(address common.Address, caller bind.ContractCaller) (*IMulticall3Caller, error) { + contract, err := bindIMulticall3(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IMulticall3Caller{contract: contract}, nil +} + +// NewIMulticall3Transactor creates a new write-only instance of IMulticall3, bound to a specific deployed contract. +func NewIMulticall3Transactor(address common.Address, transactor bind.ContractTransactor) (*IMulticall3Transactor, error) { + contract, err := bindIMulticall3(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IMulticall3Transactor{contract: contract}, nil +} + +// NewIMulticall3Filterer creates a new log filterer instance of IMulticall3, bound to a specific deployed contract. +func NewIMulticall3Filterer(address common.Address, filterer bind.ContractFilterer) (*IMulticall3Filterer, error) { + contract, err := bindIMulticall3(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IMulticall3Filterer{contract: contract}, nil +} + +// bindIMulticall3 binds a generic wrapper to an already deployed contract. +func bindIMulticall3(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IMulticall3MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IMulticall3 *IMulticall3Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IMulticall3.Contract.IMulticall3Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IMulticall3 *IMulticall3Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IMulticall3.Contract.IMulticall3Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IMulticall3 *IMulticall3Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IMulticall3.Contract.IMulticall3Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IMulticall3 *IMulticall3CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IMulticall3.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IMulticall3 *IMulticall3TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IMulticall3.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IMulticall3 *IMulticall3TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IMulticall3.Contract.contract.Transact(opts, method, params...) +} + +// GetBasefee is a free data retrieval call binding the contract method 0x3e64a696. +// +// Solidity: function getBasefee() view returns(uint256 basefee) +func (_IMulticall3 *IMulticall3Caller) GetBasefee(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IMulticall3.contract.Call(opts, &out, "getBasefee") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetBasefee is a free data retrieval call binding the contract method 0x3e64a696. +// +// Solidity: function getBasefee() view returns(uint256 basefee) +func (_IMulticall3 *IMulticall3Session) GetBasefee() (*big.Int, error) { + return _IMulticall3.Contract.GetBasefee(&_IMulticall3.CallOpts) +} + +// GetBasefee is a free data retrieval call binding the contract method 0x3e64a696. +// +// Solidity: function getBasefee() view returns(uint256 basefee) +func (_IMulticall3 *IMulticall3CallerSession) GetBasefee() (*big.Int, error) { + return _IMulticall3.Contract.GetBasefee(&_IMulticall3.CallOpts) +} + +// GetBlockHash is a free data retrieval call binding the contract method 0xee82ac5e. +// +// Solidity: function getBlockHash(uint256 blockNumber) view returns(bytes32 blockHash) +func (_IMulticall3 *IMulticall3Caller) GetBlockHash(opts *bind.CallOpts, blockNumber *big.Int) ([32]byte, error) { + var out []interface{} + err := _IMulticall3.contract.Call(opts, &out, "getBlockHash", blockNumber) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetBlockHash is a free data retrieval call binding the contract method 0xee82ac5e. +// +// Solidity: function getBlockHash(uint256 blockNumber) view returns(bytes32 blockHash) +func (_IMulticall3 *IMulticall3Session) GetBlockHash(blockNumber *big.Int) ([32]byte, error) { + return _IMulticall3.Contract.GetBlockHash(&_IMulticall3.CallOpts, blockNumber) +} + +// GetBlockHash is a free data retrieval call binding the contract method 0xee82ac5e. +// +// Solidity: function getBlockHash(uint256 blockNumber) view returns(bytes32 blockHash) +func (_IMulticall3 *IMulticall3CallerSession) GetBlockHash(blockNumber *big.Int) ([32]byte, error) { + return _IMulticall3.Contract.GetBlockHash(&_IMulticall3.CallOpts, blockNumber) +} + +// GetBlockNumber is a free data retrieval call binding the contract method 0x42cbb15c. +// +// Solidity: function getBlockNumber() view returns(uint256 blockNumber) +func (_IMulticall3 *IMulticall3Caller) GetBlockNumber(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IMulticall3.contract.Call(opts, &out, "getBlockNumber") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetBlockNumber is a free data retrieval call binding the contract method 0x42cbb15c. +// +// Solidity: function getBlockNumber() view returns(uint256 blockNumber) +func (_IMulticall3 *IMulticall3Session) GetBlockNumber() (*big.Int, error) { + return _IMulticall3.Contract.GetBlockNumber(&_IMulticall3.CallOpts) +} + +// GetBlockNumber is a free data retrieval call binding the contract method 0x42cbb15c. +// +// Solidity: function getBlockNumber() view returns(uint256 blockNumber) +func (_IMulticall3 *IMulticall3CallerSession) GetBlockNumber() (*big.Int, error) { + return _IMulticall3.Contract.GetBlockNumber(&_IMulticall3.CallOpts) +} + +// GetChainId is a free data retrieval call binding the contract method 0x3408e470. +// +// Solidity: function getChainId() view returns(uint256 chainid) +func (_IMulticall3 *IMulticall3Caller) GetChainId(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IMulticall3.contract.Call(opts, &out, "getChainId") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetChainId is a free data retrieval call binding the contract method 0x3408e470. +// +// Solidity: function getChainId() view returns(uint256 chainid) +func (_IMulticall3 *IMulticall3Session) GetChainId() (*big.Int, error) { + return _IMulticall3.Contract.GetChainId(&_IMulticall3.CallOpts) +} + +// GetChainId is a free data retrieval call binding the contract method 0x3408e470. +// +// Solidity: function getChainId() view returns(uint256 chainid) +func (_IMulticall3 *IMulticall3CallerSession) GetChainId() (*big.Int, error) { + return _IMulticall3.Contract.GetChainId(&_IMulticall3.CallOpts) +} + +// GetCurrentBlockCoinbase is a free data retrieval call binding the contract method 0xa8b0574e. +// +// Solidity: function getCurrentBlockCoinbase() view returns(address coinbase) +func (_IMulticall3 *IMulticall3Caller) GetCurrentBlockCoinbase(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _IMulticall3.contract.Call(opts, &out, "getCurrentBlockCoinbase") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetCurrentBlockCoinbase is a free data retrieval call binding the contract method 0xa8b0574e. +// +// Solidity: function getCurrentBlockCoinbase() view returns(address coinbase) +func (_IMulticall3 *IMulticall3Session) GetCurrentBlockCoinbase() (common.Address, error) { + return _IMulticall3.Contract.GetCurrentBlockCoinbase(&_IMulticall3.CallOpts) +} + +// GetCurrentBlockCoinbase is a free data retrieval call binding the contract method 0xa8b0574e. +// +// Solidity: function getCurrentBlockCoinbase() view returns(address coinbase) +func (_IMulticall3 *IMulticall3CallerSession) GetCurrentBlockCoinbase() (common.Address, error) { + return _IMulticall3.Contract.GetCurrentBlockCoinbase(&_IMulticall3.CallOpts) +} + +// GetCurrentBlockDifficulty is a free data retrieval call binding the contract method 0x72425d9d. +// +// Solidity: function getCurrentBlockDifficulty() view returns(uint256 difficulty) +func (_IMulticall3 *IMulticall3Caller) GetCurrentBlockDifficulty(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IMulticall3.contract.Call(opts, &out, "getCurrentBlockDifficulty") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetCurrentBlockDifficulty is a free data retrieval call binding the contract method 0x72425d9d. +// +// Solidity: function getCurrentBlockDifficulty() view returns(uint256 difficulty) +func (_IMulticall3 *IMulticall3Session) GetCurrentBlockDifficulty() (*big.Int, error) { + return _IMulticall3.Contract.GetCurrentBlockDifficulty(&_IMulticall3.CallOpts) +} + +// GetCurrentBlockDifficulty is a free data retrieval call binding the contract method 0x72425d9d. +// +// Solidity: function getCurrentBlockDifficulty() view returns(uint256 difficulty) +func (_IMulticall3 *IMulticall3CallerSession) GetCurrentBlockDifficulty() (*big.Int, error) { + return _IMulticall3.Contract.GetCurrentBlockDifficulty(&_IMulticall3.CallOpts) +} + +// GetCurrentBlockGasLimit is a free data retrieval call binding the contract method 0x86d516e8. +// +// Solidity: function getCurrentBlockGasLimit() view returns(uint256 gaslimit) +func (_IMulticall3 *IMulticall3Caller) GetCurrentBlockGasLimit(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IMulticall3.contract.Call(opts, &out, "getCurrentBlockGasLimit") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetCurrentBlockGasLimit is a free data retrieval call binding the contract method 0x86d516e8. +// +// Solidity: function getCurrentBlockGasLimit() view returns(uint256 gaslimit) +func (_IMulticall3 *IMulticall3Session) GetCurrentBlockGasLimit() (*big.Int, error) { + return _IMulticall3.Contract.GetCurrentBlockGasLimit(&_IMulticall3.CallOpts) +} + +// GetCurrentBlockGasLimit is a free data retrieval call binding the contract method 0x86d516e8. +// +// Solidity: function getCurrentBlockGasLimit() view returns(uint256 gaslimit) +func (_IMulticall3 *IMulticall3CallerSession) GetCurrentBlockGasLimit() (*big.Int, error) { + return _IMulticall3.Contract.GetCurrentBlockGasLimit(&_IMulticall3.CallOpts) +} + +// GetCurrentBlockTimestamp is a free data retrieval call binding the contract method 0x0f28c97d. +// +// Solidity: function getCurrentBlockTimestamp() view returns(uint256 timestamp) +func (_IMulticall3 *IMulticall3Caller) GetCurrentBlockTimestamp(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IMulticall3.contract.Call(opts, &out, "getCurrentBlockTimestamp") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetCurrentBlockTimestamp is a free data retrieval call binding the contract method 0x0f28c97d. +// +// Solidity: function getCurrentBlockTimestamp() view returns(uint256 timestamp) +func (_IMulticall3 *IMulticall3Session) GetCurrentBlockTimestamp() (*big.Int, error) { + return _IMulticall3.Contract.GetCurrentBlockTimestamp(&_IMulticall3.CallOpts) +} + +// GetCurrentBlockTimestamp is a free data retrieval call binding the contract method 0x0f28c97d. +// +// Solidity: function getCurrentBlockTimestamp() view returns(uint256 timestamp) +func (_IMulticall3 *IMulticall3CallerSession) GetCurrentBlockTimestamp() (*big.Int, error) { + return _IMulticall3.Contract.GetCurrentBlockTimestamp(&_IMulticall3.CallOpts) +} + +// GetEthBalance is a free data retrieval call binding the contract method 0x4d2301cc. +// +// Solidity: function getEthBalance(address addr) view returns(uint256 balance) +func (_IMulticall3 *IMulticall3Caller) GetEthBalance(opts *bind.CallOpts, addr common.Address) (*big.Int, error) { + var out []interface{} + err := _IMulticall3.contract.Call(opts, &out, "getEthBalance", addr) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetEthBalance is a free data retrieval call binding the contract method 0x4d2301cc. +// +// Solidity: function getEthBalance(address addr) view returns(uint256 balance) +func (_IMulticall3 *IMulticall3Session) GetEthBalance(addr common.Address) (*big.Int, error) { + return _IMulticall3.Contract.GetEthBalance(&_IMulticall3.CallOpts, addr) +} + +// GetEthBalance is a free data retrieval call binding the contract method 0x4d2301cc. +// +// Solidity: function getEthBalance(address addr) view returns(uint256 balance) +func (_IMulticall3 *IMulticall3CallerSession) GetEthBalance(addr common.Address) (*big.Int, error) { + return _IMulticall3.Contract.GetEthBalance(&_IMulticall3.CallOpts, addr) +} + +// GetLastBlockHash is a free data retrieval call binding the contract method 0x27e86d6e. +// +// Solidity: function getLastBlockHash() view returns(bytes32 blockHash) +func (_IMulticall3 *IMulticall3Caller) GetLastBlockHash(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _IMulticall3.contract.Call(opts, &out, "getLastBlockHash") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetLastBlockHash is a free data retrieval call binding the contract method 0x27e86d6e. +// +// Solidity: function getLastBlockHash() view returns(bytes32 blockHash) +func (_IMulticall3 *IMulticall3Session) GetLastBlockHash() ([32]byte, error) { + return _IMulticall3.Contract.GetLastBlockHash(&_IMulticall3.CallOpts) +} + +// GetLastBlockHash is a free data retrieval call binding the contract method 0x27e86d6e. +// +// Solidity: function getLastBlockHash() view returns(bytes32 blockHash) +func (_IMulticall3 *IMulticall3CallerSession) GetLastBlockHash() ([32]byte, error) { + return _IMulticall3.Contract.GetLastBlockHash(&_IMulticall3.CallOpts) +} + +// Aggregate is a paid mutator transaction binding the contract method 0x252dba42. +// +// Solidity: function aggregate((address,bytes)[] calls) payable returns(uint256 blockNumber, bytes[] returnData) +func (_IMulticall3 *IMulticall3Transactor) Aggregate(opts *bind.TransactOpts, calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.contract.Transact(opts, "aggregate", calls) +} + +// Aggregate is a paid mutator transaction binding the contract method 0x252dba42. +// +// Solidity: function aggregate((address,bytes)[] calls) payable returns(uint256 blockNumber, bytes[] returnData) +func (_IMulticall3 *IMulticall3Session) Aggregate(calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.Contract.Aggregate(&_IMulticall3.TransactOpts, calls) +} + +// Aggregate is a paid mutator transaction binding the contract method 0x252dba42. +// +// Solidity: function aggregate((address,bytes)[] calls) payable returns(uint256 blockNumber, bytes[] returnData) +func (_IMulticall3 *IMulticall3TransactorSession) Aggregate(calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.Contract.Aggregate(&_IMulticall3.TransactOpts, calls) +} + +// Aggregate3 is a paid mutator transaction binding the contract method 0x82ad56cb. +// +// Solidity: function aggregate3((address,bool,bytes)[] calls) payable returns((bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3Transactor) Aggregate3(opts *bind.TransactOpts, calls []IMulticall3Call3) (*types.Transaction, error) { + return _IMulticall3.contract.Transact(opts, "aggregate3", calls) +} + +// Aggregate3 is a paid mutator transaction binding the contract method 0x82ad56cb. +// +// Solidity: function aggregate3((address,bool,bytes)[] calls) payable returns((bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3Session) Aggregate3(calls []IMulticall3Call3) (*types.Transaction, error) { + return _IMulticall3.Contract.Aggregate3(&_IMulticall3.TransactOpts, calls) +} + +// Aggregate3 is a paid mutator transaction binding the contract method 0x82ad56cb. +// +// Solidity: function aggregate3((address,bool,bytes)[] calls) payable returns((bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3TransactorSession) Aggregate3(calls []IMulticall3Call3) (*types.Transaction, error) { + return _IMulticall3.Contract.Aggregate3(&_IMulticall3.TransactOpts, calls) +} + +// Aggregate3Value is a paid mutator transaction binding the contract method 0x174dea71. +// +// Solidity: function aggregate3Value((address,bool,uint256,bytes)[] calls) payable returns((bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3Transactor) Aggregate3Value(opts *bind.TransactOpts, calls []IMulticall3Call3Value) (*types.Transaction, error) { + return _IMulticall3.contract.Transact(opts, "aggregate3Value", calls) +} + +// Aggregate3Value is a paid mutator transaction binding the contract method 0x174dea71. +// +// Solidity: function aggregate3Value((address,bool,uint256,bytes)[] calls) payable returns((bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3Session) Aggregate3Value(calls []IMulticall3Call3Value) (*types.Transaction, error) { + return _IMulticall3.Contract.Aggregate3Value(&_IMulticall3.TransactOpts, calls) +} + +// Aggregate3Value is a paid mutator transaction binding the contract method 0x174dea71. +// +// Solidity: function aggregate3Value((address,bool,uint256,bytes)[] calls) payable returns((bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3TransactorSession) Aggregate3Value(calls []IMulticall3Call3Value) (*types.Transaction, error) { + return _IMulticall3.Contract.Aggregate3Value(&_IMulticall3.TransactOpts, calls) +} + +// BlockAndAggregate is a paid mutator transaction binding the contract method 0xc3077fa9. +// +// Solidity: function blockAndAggregate((address,bytes)[] calls) payable returns(uint256 blockNumber, bytes32 blockHash, (bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3Transactor) BlockAndAggregate(opts *bind.TransactOpts, calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.contract.Transact(opts, "blockAndAggregate", calls) +} + +// BlockAndAggregate is a paid mutator transaction binding the contract method 0xc3077fa9. +// +// Solidity: function blockAndAggregate((address,bytes)[] calls) payable returns(uint256 blockNumber, bytes32 blockHash, (bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3Session) BlockAndAggregate(calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.Contract.BlockAndAggregate(&_IMulticall3.TransactOpts, calls) +} + +// BlockAndAggregate is a paid mutator transaction binding the contract method 0xc3077fa9. +// +// Solidity: function blockAndAggregate((address,bytes)[] calls) payable returns(uint256 blockNumber, bytes32 blockHash, (bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3TransactorSession) BlockAndAggregate(calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.Contract.BlockAndAggregate(&_IMulticall3.TransactOpts, calls) +} + +// TryAggregate is a paid mutator transaction binding the contract method 0xbce38bd7. +// +// Solidity: function tryAggregate(bool requireSuccess, (address,bytes)[] calls) payable returns((bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3Transactor) TryAggregate(opts *bind.TransactOpts, requireSuccess bool, calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.contract.Transact(opts, "tryAggregate", requireSuccess, calls) +} + +// TryAggregate is a paid mutator transaction binding the contract method 0xbce38bd7. +// +// Solidity: function tryAggregate(bool requireSuccess, (address,bytes)[] calls) payable returns((bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3Session) TryAggregate(requireSuccess bool, calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.Contract.TryAggregate(&_IMulticall3.TransactOpts, requireSuccess, calls) +} + +// TryAggregate is a paid mutator transaction binding the contract method 0xbce38bd7. +// +// Solidity: function tryAggregate(bool requireSuccess, (address,bytes)[] calls) payable returns((bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3TransactorSession) TryAggregate(requireSuccess bool, calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.Contract.TryAggregate(&_IMulticall3.TransactOpts, requireSuccess, calls) +} + +// TryBlockAndAggregate is a paid mutator transaction binding the contract method 0x399542e9. +// +// Solidity: function tryBlockAndAggregate(bool requireSuccess, (address,bytes)[] calls) payable returns(uint256 blockNumber, bytes32 blockHash, (bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3Transactor) TryBlockAndAggregate(opts *bind.TransactOpts, requireSuccess bool, calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.contract.Transact(opts, "tryBlockAndAggregate", requireSuccess, calls) +} + +// TryBlockAndAggregate is a paid mutator transaction binding the contract method 0x399542e9. +// +// Solidity: function tryBlockAndAggregate(bool requireSuccess, (address,bytes)[] calls) payable returns(uint256 blockNumber, bytes32 blockHash, (bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3Session) TryBlockAndAggregate(requireSuccess bool, calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.Contract.TryBlockAndAggregate(&_IMulticall3.TransactOpts, requireSuccess, calls) +} + +// TryBlockAndAggregate is a paid mutator transaction binding the contract method 0x399542e9. +// +// Solidity: function tryBlockAndAggregate(bool requireSuccess, (address,bytes)[] calls) payable returns(uint256 blockNumber, bytes32 blockHash, (bool,bytes)[] returnData) +func (_IMulticall3 *IMulticall3TransactorSession) TryBlockAndAggregate(requireSuccess bool, calls []IMulticall3Call) (*types.Transaction, error) { + return _IMulticall3.Contract.TryBlockAndAggregate(&_IMulticall3.TransactOpts, requireSuccess, calls) +} diff --git a/v2/pkg/initializable.sol/initializable.go b/v2/pkg/initializable.sol/initializable.go new file mode 100644 index 00000000..dd76f00b --- /dev/null +++ b/v2/pkg/initializable.sol/initializable.go @@ -0,0 +1,315 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package initializable + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// InitializableMetaData contains all meta data concerning the Initializable contract. +var InitializableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]}]", +} + +// InitializableABI is the input ABI used to generate the binding from. +// Deprecated: Use InitializableMetaData.ABI instead. +var InitializableABI = InitializableMetaData.ABI + +// Initializable is an auto generated Go binding around an Ethereum contract. +type Initializable struct { + InitializableCaller // Read-only binding to the contract + InitializableTransactor // Write-only binding to the contract + InitializableFilterer // Log filterer for contract events +} + +// InitializableCaller is an auto generated read-only Go binding around an Ethereum contract. +type InitializableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// InitializableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type InitializableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// InitializableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type InitializableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// InitializableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type InitializableSession struct { + Contract *Initializable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// InitializableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type InitializableCallerSession struct { + Contract *InitializableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// InitializableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type InitializableTransactorSession struct { + Contract *InitializableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// InitializableRaw is an auto generated low-level Go binding around an Ethereum contract. +type InitializableRaw struct { + Contract *Initializable // Generic contract binding to access the raw methods on +} + +// InitializableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type InitializableCallerRaw struct { + Contract *InitializableCaller // Generic read-only contract binding to access the raw methods on +} + +// InitializableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type InitializableTransactorRaw struct { + Contract *InitializableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewInitializable creates a new instance of Initializable, bound to a specific deployed contract. +func NewInitializable(address common.Address, backend bind.ContractBackend) (*Initializable, error) { + contract, err := bindInitializable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Initializable{InitializableCaller: InitializableCaller{contract: contract}, InitializableTransactor: InitializableTransactor{contract: contract}, InitializableFilterer: InitializableFilterer{contract: contract}}, nil +} + +// NewInitializableCaller creates a new read-only instance of Initializable, bound to a specific deployed contract. +func NewInitializableCaller(address common.Address, caller bind.ContractCaller) (*InitializableCaller, error) { + contract, err := bindInitializable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &InitializableCaller{contract: contract}, nil +} + +// NewInitializableTransactor creates a new write-only instance of Initializable, bound to a specific deployed contract. +func NewInitializableTransactor(address common.Address, transactor bind.ContractTransactor) (*InitializableTransactor, error) { + contract, err := bindInitializable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &InitializableTransactor{contract: contract}, nil +} + +// NewInitializableFilterer creates a new log filterer instance of Initializable, bound to a specific deployed contract. +func NewInitializableFilterer(address common.Address, filterer bind.ContractFilterer) (*InitializableFilterer, error) { + contract, err := bindInitializable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &InitializableFilterer{contract: contract}, nil +} + +// bindInitializable binds a generic wrapper to an already deployed contract. +func bindInitializable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := InitializableMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Initializable *InitializableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Initializable.Contract.InitializableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Initializable *InitializableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Initializable.Contract.InitializableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Initializable *InitializableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Initializable.Contract.InitializableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Initializable *InitializableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Initializable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Initializable *InitializableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Initializable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Initializable *InitializableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Initializable.Contract.contract.Transact(opts, method, params...) +} + +// InitializableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the Initializable contract. +type InitializableInitializedIterator struct { + Event *InitializableInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *InitializableInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(InitializableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(InitializableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *InitializableInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *InitializableInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// InitializableInitialized represents a Initialized event raised by the Initializable contract. +type InitializableInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_Initializable *InitializableFilterer) FilterInitialized(opts *bind.FilterOpts) (*InitializableInitializedIterator, error) { + + logs, sub, err := _Initializable.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &InitializableInitializedIterator{contract: _Initializable.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_Initializable *InitializableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *InitializableInitialized) (event.Subscription, error) { + + logs, sub, err := _Initializable.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(InitializableInitialized) + if err := _Initializable.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_Initializable *InitializableFilterer) ParseInitialized(log types.Log) (*InitializableInitialized, error) { + event := new(InitializableInitialized) + if err := _Initializable.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/iproxyadmin.sol/iproxyadmin.go b/v2/pkg/iproxyadmin.sol/iproxyadmin.go new file mode 100644 index 00000000..bc71f79d --- /dev/null +++ b/v2/pkg/iproxyadmin.sol/iproxyadmin.go @@ -0,0 +1,223 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package iproxyadmin + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IProxyAdminMetaData contains all meta data concerning the IProxyAdmin contract. +var IProxyAdminMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"upgrade\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgradeAndCall\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"}]", +} + +// IProxyAdminABI is the input ABI used to generate the binding from. +// Deprecated: Use IProxyAdminMetaData.ABI instead. +var IProxyAdminABI = IProxyAdminMetaData.ABI + +// IProxyAdmin is an auto generated Go binding around an Ethereum contract. +type IProxyAdmin struct { + IProxyAdminCaller // Read-only binding to the contract + IProxyAdminTransactor // Write-only binding to the contract + IProxyAdminFilterer // Log filterer for contract events +} + +// IProxyAdminCaller is an auto generated read-only Go binding around an Ethereum contract. +type IProxyAdminCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IProxyAdminTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IProxyAdminTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IProxyAdminFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IProxyAdminFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IProxyAdminSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IProxyAdminSession struct { + Contract *IProxyAdmin // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IProxyAdminCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IProxyAdminCallerSession struct { + Contract *IProxyAdminCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IProxyAdminTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IProxyAdminTransactorSession struct { + Contract *IProxyAdminTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IProxyAdminRaw is an auto generated low-level Go binding around an Ethereum contract. +type IProxyAdminRaw struct { + Contract *IProxyAdmin // Generic contract binding to access the raw methods on +} + +// IProxyAdminCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IProxyAdminCallerRaw struct { + Contract *IProxyAdminCaller // Generic read-only contract binding to access the raw methods on +} + +// IProxyAdminTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IProxyAdminTransactorRaw struct { + Contract *IProxyAdminTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIProxyAdmin creates a new instance of IProxyAdmin, bound to a specific deployed contract. +func NewIProxyAdmin(address common.Address, backend bind.ContractBackend) (*IProxyAdmin, error) { + contract, err := bindIProxyAdmin(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IProxyAdmin{IProxyAdminCaller: IProxyAdminCaller{contract: contract}, IProxyAdminTransactor: IProxyAdminTransactor{contract: contract}, IProxyAdminFilterer: IProxyAdminFilterer{contract: contract}}, nil +} + +// NewIProxyAdminCaller creates a new read-only instance of IProxyAdmin, bound to a specific deployed contract. +func NewIProxyAdminCaller(address common.Address, caller bind.ContractCaller) (*IProxyAdminCaller, error) { + contract, err := bindIProxyAdmin(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IProxyAdminCaller{contract: contract}, nil +} + +// NewIProxyAdminTransactor creates a new write-only instance of IProxyAdmin, bound to a specific deployed contract. +func NewIProxyAdminTransactor(address common.Address, transactor bind.ContractTransactor) (*IProxyAdminTransactor, error) { + contract, err := bindIProxyAdmin(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IProxyAdminTransactor{contract: contract}, nil +} + +// NewIProxyAdminFilterer creates a new log filterer instance of IProxyAdmin, bound to a specific deployed contract. +func NewIProxyAdminFilterer(address common.Address, filterer bind.ContractFilterer) (*IProxyAdminFilterer, error) { + contract, err := bindIProxyAdmin(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IProxyAdminFilterer{contract: contract}, nil +} + +// bindIProxyAdmin binds a generic wrapper to an already deployed contract. +func bindIProxyAdmin(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IProxyAdminMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IProxyAdmin *IProxyAdminRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IProxyAdmin.Contract.IProxyAdminCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IProxyAdmin *IProxyAdminRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IProxyAdmin.Contract.IProxyAdminTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IProxyAdmin *IProxyAdminRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IProxyAdmin.Contract.IProxyAdminTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IProxyAdmin *IProxyAdminCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IProxyAdmin.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IProxyAdmin *IProxyAdminTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IProxyAdmin.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IProxyAdmin *IProxyAdminTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IProxyAdmin.Contract.contract.Transact(opts, method, params...) +} + +// Upgrade is a paid mutator transaction binding the contract method 0x99a88ec4. +// +// Solidity: function upgrade(address , address ) returns() +func (_IProxyAdmin *IProxyAdminTransactor) Upgrade(opts *bind.TransactOpts, arg0 common.Address, arg1 common.Address) (*types.Transaction, error) { + return _IProxyAdmin.contract.Transact(opts, "upgrade", arg0, arg1) +} + +// Upgrade is a paid mutator transaction binding the contract method 0x99a88ec4. +// +// Solidity: function upgrade(address , address ) returns() +func (_IProxyAdmin *IProxyAdminSession) Upgrade(arg0 common.Address, arg1 common.Address) (*types.Transaction, error) { + return _IProxyAdmin.Contract.Upgrade(&_IProxyAdmin.TransactOpts, arg0, arg1) +} + +// Upgrade is a paid mutator transaction binding the contract method 0x99a88ec4. +// +// Solidity: function upgrade(address , address ) returns() +func (_IProxyAdmin *IProxyAdminTransactorSession) Upgrade(arg0 common.Address, arg1 common.Address) (*types.Transaction, error) { + return _IProxyAdmin.Contract.Upgrade(&_IProxyAdmin.TransactOpts, arg0, arg1) +} + +// UpgradeAndCall is a paid mutator transaction binding the contract method 0x9623609d. +// +// Solidity: function upgradeAndCall(address , address , bytes ) payable returns() +func (_IProxyAdmin *IProxyAdminTransactor) UpgradeAndCall(opts *bind.TransactOpts, arg0 common.Address, arg1 common.Address, arg2 []byte) (*types.Transaction, error) { + return _IProxyAdmin.contract.Transact(opts, "upgradeAndCall", arg0, arg1, arg2) +} + +// UpgradeAndCall is a paid mutator transaction binding the contract method 0x9623609d. +// +// Solidity: function upgradeAndCall(address , address , bytes ) payable returns() +func (_IProxyAdmin *IProxyAdminSession) UpgradeAndCall(arg0 common.Address, arg1 common.Address, arg2 []byte) (*types.Transaction, error) { + return _IProxyAdmin.Contract.UpgradeAndCall(&_IProxyAdmin.TransactOpts, arg0, arg1, arg2) +} + +// UpgradeAndCall is a paid mutator transaction binding the contract method 0x9623609d. +// +// Solidity: function upgradeAndCall(address , address , bytes ) payable returns() +func (_IProxyAdmin *IProxyAdminTransactorSession) UpgradeAndCall(arg0 common.Address, arg1 common.Address, arg2 []byte) (*types.Transaction, error) { + return _IProxyAdmin.Contract.UpgradeAndCall(&_IProxyAdmin.TransactOpts, arg0, arg1, arg2) +} diff --git a/v2/pkg/ireceiverevm.sol/ireceiverevmevents.go b/v2/pkg/ireceiverevm.sol/ireceiverevmevents.go new file mode 100644 index 00000000..decd72f2 --- /dev/null +++ b/v2/pkg/ireceiverevm.sol/ireceiverevmevents.go @@ -0,0 +1,862 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ireceiverevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IReceiverEVMEventsMetaData contains all meta data concerning the IReceiverEVMEvents contract. +var IReceiverEVMEventsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"ReceivedERC20\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNoParams\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNonPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strs\",\"type\":\"string[]\",\"indexed\":false,\"internalType\":\"string[]\"},{\"name\":\"nums\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"str\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedRevert\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", +} + +// IReceiverEVMEventsABI is the input ABI used to generate the binding from. +// Deprecated: Use IReceiverEVMEventsMetaData.ABI instead. +var IReceiverEVMEventsABI = IReceiverEVMEventsMetaData.ABI + +// IReceiverEVMEvents is an auto generated Go binding around an Ethereum contract. +type IReceiverEVMEvents struct { + IReceiverEVMEventsCaller // Read-only binding to the contract + IReceiverEVMEventsTransactor // Write-only binding to the contract + IReceiverEVMEventsFilterer // Log filterer for contract events +} + +// IReceiverEVMEventsCaller is an auto generated read-only Go binding around an Ethereum contract. +type IReceiverEVMEventsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IReceiverEVMEventsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IReceiverEVMEventsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IReceiverEVMEventsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IReceiverEVMEventsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IReceiverEVMEventsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IReceiverEVMEventsSession struct { + Contract *IReceiverEVMEvents // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IReceiverEVMEventsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IReceiverEVMEventsCallerSession struct { + Contract *IReceiverEVMEventsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IReceiverEVMEventsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IReceiverEVMEventsTransactorSession struct { + Contract *IReceiverEVMEventsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IReceiverEVMEventsRaw is an auto generated low-level Go binding around an Ethereum contract. +type IReceiverEVMEventsRaw struct { + Contract *IReceiverEVMEvents // Generic contract binding to access the raw methods on +} + +// IReceiverEVMEventsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IReceiverEVMEventsCallerRaw struct { + Contract *IReceiverEVMEventsCaller // Generic read-only contract binding to access the raw methods on +} + +// IReceiverEVMEventsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IReceiverEVMEventsTransactorRaw struct { + Contract *IReceiverEVMEventsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIReceiverEVMEvents creates a new instance of IReceiverEVMEvents, bound to a specific deployed contract. +func NewIReceiverEVMEvents(address common.Address, backend bind.ContractBackend) (*IReceiverEVMEvents, error) { + contract, err := bindIReceiverEVMEvents(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IReceiverEVMEvents{IReceiverEVMEventsCaller: IReceiverEVMEventsCaller{contract: contract}, IReceiverEVMEventsTransactor: IReceiverEVMEventsTransactor{contract: contract}, IReceiverEVMEventsFilterer: IReceiverEVMEventsFilterer{contract: contract}}, nil +} + +// NewIReceiverEVMEventsCaller creates a new read-only instance of IReceiverEVMEvents, bound to a specific deployed contract. +func NewIReceiverEVMEventsCaller(address common.Address, caller bind.ContractCaller) (*IReceiverEVMEventsCaller, error) { + contract, err := bindIReceiverEVMEvents(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IReceiverEVMEventsCaller{contract: contract}, nil +} + +// NewIReceiverEVMEventsTransactor creates a new write-only instance of IReceiverEVMEvents, bound to a specific deployed contract. +func NewIReceiverEVMEventsTransactor(address common.Address, transactor bind.ContractTransactor) (*IReceiverEVMEventsTransactor, error) { + contract, err := bindIReceiverEVMEvents(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IReceiverEVMEventsTransactor{contract: contract}, nil +} + +// NewIReceiverEVMEventsFilterer creates a new log filterer instance of IReceiverEVMEvents, bound to a specific deployed contract. +func NewIReceiverEVMEventsFilterer(address common.Address, filterer bind.ContractFilterer) (*IReceiverEVMEventsFilterer, error) { + contract, err := bindIReceiverEVMEvents(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IReceiverEVMEventsFilterer{contract: contract}, nil +} + +// bindIReceiverEVMEvents binds a generic wrapper to an already deployed contract. +func bindIReceiverEVMEvents(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IReceiverEVMEventsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IReceiverEVMEvents *IReceiverEVMEventsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IReceiverEVMEvents.Contract.IReceiverEVMEventsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IReceiverEVMEvents *IReceiverEVMEventsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IReceiverEVMEvents.Contract.IReceiverEVMEventsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IReceiverEVMEvents *IReceiverEVMEventsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IReceiverEVMEvents.Contract.IReceiverEVMEventsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IReceiverEVMEvents *IReceiverEVMEventsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IReceiverEVMEvents.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IReceiverEVMEvents *IReceiverEVMEventsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IReceiverEVMEvents.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IReceiverEVMEvents *IReceiverEVMEventsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IReceiverEVMEvents.Contract.contract.Transact(opts, method, params...) +} + +// IReceiverEVMEventsReceivedERC20Iterator is returned from FilterReceivedERC20 and is used to iterate over the raw logs and unpacked data for ReceivedERC20 events raised by the IReceiverEVMEvents contract. +type IReceiverEVMEventsReceivedERC20Iterator struct { + Event *IReceiverEVMEventsReceivedERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IReceiverEVMEventsReceivedERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IReceiverEVMEventsReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IReceiverEVMEventsReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IReceiverEVMEventsReceivedERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IReceiverEVMEventsReceivedERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IReceiverEVMEventsReceivedERC20 represents a ReceivedERC20 event raised by the IReceiverEVMEvents contract. +type IReceiverEVMEventsReceivedERC20 struct { + Sender common.Address + Amount *big.Int + Token common.Address + Destination common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedERC20 is a free log retrieval operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) FilterReceivedERC20(opts *bind.FilterOpts) (*IReceiverEVMEventsReceivedERC20Iterator, error) { + + logs, sub, err := _IReceiverEVMEvents.contract.FilterLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return &IReceiverEVMEventsReceivedERC20Iterator{contract: _IReceiverEVMEvents.contract, event: "ReceivedERC20", logs: logs, sub: sub}, nil +} + +// WatchReceivedERC20 is a free log subscription operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) WatchReceivedERC20(opts *bind.WatchOpts, sink chan<- *IReceiverEVMEventsReceivedERC20) (event.Subscription, error) { + + logs, sub, err := _IReceiverEVMEvents.contract.WatchLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IReceiverEVMEventsReceivedERC20) + if err := _IReceiverEVMEvents.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedERC20 is a log parse operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) ParseReceivedERC20(log types.Log) (*IReceiverEVMEventsReceivedERC20, error) { + event := new(IReceiverEVMEventsReceivedERC20) + if err := _IReceiverEVMEvents.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IReceiverEVMEventsReceivedNoParamsIterator is returned from FilterReceivedNoParams and is used to iterate over the raw logs and unpacked data for ReceivedNoParams events raised by the IReceiverEVMEvents contract. +type IReceiverEVMEventsReceivedNoParamsIterator struct { + Event *IReceiverEVMEventsReceivedNoParams // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IReceiverEVMEventsReceivedNoParamsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IReceiverEVMEventsReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IReceiverEVMEventsReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IReceiverEVMEventsReceivedNoParamsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IReceiverEVMEventsReceivedNoParamsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IReceiverEVMEventsReceivedNoParams represents a ReceivedNoParams event raised by the IReceiverEVMEvents contract. +type IReceiverEVMEventsReceivedNoParams struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNoParams is a free log retrieval operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) FilterReceivedNoParams(opts *bind.FilterOpts) (*IReceiverEVMEventsReceivedNoParamsIterator, error) { + + logs, sub, err := _IReceiverEVMEvents.contract.FilterLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return &IReceiverEVMEventsReceivedNoParamsIterator{contract: _IReceiverEVMEvents.contract, event: "ReceivedNoParams", logs: logs, sub: sub}, nil +} + +// WatchReceivedNoParams is a free log subscription operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) WatchReceivedNoParams(opts *bind.WatchOpts, sink chan<- *IReceiverEVMEventsReceivedNoParams) (event.Subscription, error) { + + logs, sub, err := _IReceiverEVMEvents.contract.WatchLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IReceiverEVMEventsReceivedNoParams) + if err := _IReceiverEVMEvents.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNoParams is a log parse operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) ParseReceivedNoParams(log types.Log) (*IReceiverEVMEventsReceivedNoParams, error) { + event := new(IReceiverEVMEventsReceivedNoParams) + if err := _IReceiverEVMEvents.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IReceiverEVMEventsReceivedNonPayableIterator is returned from FilterReceivedNonPayable and is used to iterate over the raw logs and unpacked data for ReceivedNonPayable events raised by the IReceiverEVMEvents contract. +type IReceiverEVMEventsReceivedNonPayableIterator struct { + Event *IReceiverEVMEventsReceivedNonPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IReceiverEVMEventsReceivedNonPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IReceiverEVMEventsReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IReceiverEVMEventsReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IReceiverEVMEventsReceivedNonPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IReceiverEVMEventsReceivedNonPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IReceiverEVMEventsReceivedNonPayable represents a ReceivedNonPayable event raised by the IReceiverEVMEvents contract. +type IReceiverEVMEventsReceivedNonPayable struct { + Sender common.Address + Strs []string + Nums []*big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNonPayable is a free log retrieval operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) FilterReceivedNonPayable(opts *bind.FilterOpts) (*IReceiverEVMEventsReceivedNonPayableIterator, error) { + + logs, sub, err := _IReceiverEVMEvents.contract.FilterLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return &IReceiverEVMEventsReceivedNonPayableIterator{contract: _IReceiverEVMEvents.contract, event: "ReceivedNonPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedNonPayable is a free log subscription operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) WatchReceivedNonPayable(opts *bind.WatchOpts, sink chan<- *IReceiverEVMEventsReceivedNonPayable) (event.Subscription, error) { + + logs, sub, err := _IReceiverEVMEvents.contract.WatchLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IReceiverEVMEventsReceivedNonPayable) + if err := _IReceiverEVMEvents.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNonPayable is a log parse operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) ParseReceivedNonPayable(log types.Log) (*IReceiverEVMEventsReceivedNonPayable, error) { + event := new(IReceiverEVMEventsReceivedNonPayable) + if err := _IReceiverEVMEvents.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IReceiverEVMEventsReceivedPayableIterator is returned from FilterReceivedPayable and is used to iterate over the raw logs and unpacked data for ReceivedPayable events raised by the IReceiverEVMEvents contract. +type IReceiverEVMEventsReceivedPayableIterator struct { + Event *IReceiverEVMEventsReceivedPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IReceiverEVMEventsReceivedPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IReceiverEVMEventsReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IReceiverEVMEventsReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IReceiverEVMEventsReceivedPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IReceiverEVMEventsReceivedPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IReceiverEVMEventsReceivedPayable represents a ReceivedPayable event raised by the IReceiverEVMEvents contract. +type IReceiverEVMEventsReceivedPayable struct { + Sender common.Address + Value *big.Int + Str string + Num *big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedPayable is a free log retrieval operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) FilterReceivedPayable(opts *bind.FilterOpts) (*IReceiverEVMEventsReceivedPayableIterator, error) { + + logs, sub, err := _IReceiverEVMEvents.contract.FilterLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return &IReceiverEVMEventsReceivedPayableIterator{contract: _IReceiverEVMEvents.contract, event: "ReceivedPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedPayable is a free log subscription operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) WatchReceivedPayable(opts *bind.WatchOpts, sink chan<- *IReceiverEVMEventsReceivedPayable) (event.Subscription, error) { + + logs, sub, err := _IReceiverEVMEvents.contract.WatchLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IReceiverEVMEventsReceivedPayable) + if err := _IReceiverEVMEvents.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedPayable is a log parse operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) ParseReceivedPayable(log types.Log) (*IReceiverEVMEventsReceivedPayable, error) { + event := new(IReceiverEVMEventsReceivedPayable) + if err := _IReceiverEVMEvents.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IReceiverEVMEventsReceivedRevertIterator is returned from FilterReceivedRevert and is used to iterate over the raw logs and unpacked data for ReceivedRevert events raised by the IReceiverEVMEvents contract. +type IReceiverEVMEventsReceivedRevertIterator struct { + Event *IReceiverEVMEventsReceivedRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IReceiverEVMEventsReceivedRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IReceiverEVMEventsReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IReceiverEVMEventsReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IReceiverEVMEventsReceivedRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IReceiverEVMEventsReceivedRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IReceiverEVMEventsReceivedRevert represents a ReceivedRevert event raised by the IReceiverEVMEvents contract. +type IReceiverEVMEventsReceivedRevert struct { + Sender common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedRevert is a free log retrieval operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) FilterReceivedRevert(opts *bind.FilterOpts) (*IReceiverEVMEventsReceivedRevertIterator, error) { + + logs, sub, err := _IReceiverEVMEvents.contract.FilterLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return &IReceiverEVMEventsReceivedRevertIterator{contract: _IReceiverEVMEvents.contract, event: "ReceivedRevert", logs: logs, sub: sub}, nil +} + +// WatchReceivedRevert is a free log subscription operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) WatchReceivedRevert(opts *bind.WatchOpts, sink chan<- *IReceiverEVMEventsReceivedRevert) (event.Subscription, error) { + + logs, sub, err := _IReceiverEVMEvents.contract.WatchLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IReceiverEVMEventsReceivedRevert) + if err := _IReceiverEVMEvents.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedRevert is a log parse operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_IReceiverEVMEvents *IReceiverEVMEventsFilterer) ParseReceivedRevert(log types.Log) (*IReceiverEVMEventsReceivedRevert, error) { + event := new(IReceiverEVMEventsReceivedRevert) + if err := _IReceiverEVMEvents.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/isystem.sol/isystem.go b/v2/pkg/isystem.sol/isystem.go new file mode 100644 index 00000000..5d61819b --- /dev/null +++ b/v2/pkg/isystem.sol/isystem.go @@ -0,0 +1,367 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package isystem + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ISystemMetaData contains all meta data concerning the ISystem contract. +var ISystemMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"FUNGIBLE_MODULE_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gasCoinZRC20ByChainId\",\"inputs\":[{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gasPriceByChainId\",\"inputs\":[{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gasZetaPoolByChainId\",\"inputs\":[{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"uniswapv2FactoryAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"wZetaContractAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"}]", +} + +// ISystemABI is the input ABI used to generate the binding from. +// Deprecated: Use ISystemMetaData.ABI instead. +var ISystemABI = ISystemMetaData.ABI + +// ISystem is an auto generated Go binding around an Ethereum contract. +type ISystem struct { + ISystemCaller // Read-only binding to the contract + ISystemTransactor // Write-only binding to the contract + ISystemFilterer // Log filterer for contract events +} + +// ISystemCaller is an auto generated read-only Go binding around an Ethereum contract. +type ISystemCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ISystemTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ISystemTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ISystemFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ISystemFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ISystemSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ISystemSession struct { + Contract *ISystem // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ISystemCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ISystemCallerSession struct { + Contract *ISystemCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ISystemTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ISystemTransactorSession struct { + Contract *ISystemTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ISystemRaw is an auto generated low-level Go binding around an Ethereum contract. +type ISystemRaw struct { + Contract *ISystem // Generic contract binding to access the raw methods on +} + +// ISystemCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ISystemCallerRaw struct { + Contract *ISystemCaller // Generic read-only contract binding to access the raw methods on +} + +// ISystemTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ISystemTransactorRaw struct { + Contract *ISystemTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewISystem creates a new instance of ISystem, bound to a specific deployed contract. +func NewISystem(address common.Address, backend bind.ContractBackend) (*ISystem, error) { + contract, err := bindISystem(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ISystem{ISystemCaller: ISystemCaller{contract: contract}, ISystemTransactor: ISystemTransactor{contract: contract}, ISystemFilterer: ISystemFilterer{contract: contract}}, nil +} + +// NewISystemCaller creates a new read-only instance of ISystem, bound to a specific deployed contract. +func NewISystemCaller(address common.Address, caller bind.ContractCaller) (*ISystemCaller, error) { + contract, err := bindISystem(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ISystemCaller{contract: contract}, nil +} + +// NewISystemTransactor creates a new write-only instance of ISystem, bound to a specific deployed contract. +func NewISystemTransactor(address common.Address, transactor bind.ContractTransactor) (*ISystemTransactor, error) { + contract, err := bindISystem(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ISystemTransactor{contract: contract}, nil +} + +// NewISystemFilterer creates a new log filterer instance of ISystem, bound to a specific deployed contract. +func NewISystemFilterer(address common.Address, filterer bind.ContractFilterer) (*ISystemFilterer, error) { + contract, err := bindISystem(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ISystemFilterer{contract: contract}, nil +} + +// bindISystem binds a generic wrapper to an already deployed contract. +func bindISystem(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ISystemMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ISystem *ISystemRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ISystem.Contract.ISystemCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ISystem *ISystemRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ISystem.Contract.ISystemTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ISystem *ISystemRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ISystem.Contract.ISystemTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ISystem *ISystemCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ISystem.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ISystem *ISystemTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ISystem.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ISystem *ISystemTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ISystem.Contract.contract.Transact(opts, method, params...) +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_ISystem *ISystemCaller) FUNGIBLEMODULEADDRESS(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ISystem.contract.Call(opts, &out, "FUNGIBLE_MODULE_ADDRESS") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_ISystem *ISystemSession) FUNGIBLEMODULEADDRESS() (common.Address, error) { + return _ISystem.Contract.FUNGIBLEMODULEADDRESS(&_ISystem.CallOpts) +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_ISystem *ISystemCallerSession) FUNGIBLEMODULEADDRESS() (common.Address, error) { + return _ISystem.Contract.FUNGIBLEMODULEADDRESS(&_ISystem.CallOpts) +} + +// GasCoinZRC20ByChainId is a free data retrieval call binding the contract method 0x0be15547. +// +// Solidity: function gasCoinZRC20ByChainId(uint256 chainID) view returns(address) +func (_ISystem *ISystemCaller) GasCoinZRC20ByChainId(opts *bind.CallOpts, chainID *big.Int) (common.Address, error) { + var out []interface{} + err := _ISystem.contract.Call(opts, &out, "gasCoinZRC20ByChainId", chainID) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GasCoinZRC20ByChainId is a free data retrieval call binding the contract method 0x0be15547. +// +// Solidity: function gasCoinZRC20ByChainId(uint256 chainID) view returns(address) +func (_ISystem *ISystemSession) GasCoinZRC20ByChainId(chainID *big.Int) (common.Address, error) { + return _ISystem.Contract.GasCoinZRC20ByChainId(&_ISystem.CallOpts, chainID) +} + +// GasCoinZRC20ByChainId is a free data retrieval call binding the contract method 0x0be15547. +// +// Solidity: function gasCoinZRC20ByChainId(uint256 chainID) view returns(address) +func (_ISystem *ISystemCallerSession) GasCoinZRC20ByChainId(chainID *big.Int) (common.Address, error) { + return _ISystem.Contract.GasCoinZRC20ByChainId(&_ISystem.CallOpts, chainID) +} + +// GasPriceByChainId is a free data retrieval call binding the contract method 0xd7fd7afb. +// +// Solidity: function gasPriceByChainId(uint256 chainID) view returns(uint256) +func (_ISystem *ISystemCaller) GasPriceByChainId(opts *bind.CallOpts, chainID *big.Int) (*big.Int, error) { + var out []interface{} + err := _ISystem.contract.Call(opts, &out, "gasPriceByChainId", chainID) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GasPriceByChainId is a free data retrieval call binding the contract method 0xd7fd7afb. +// +// Solidity: function gasPriceByChainId(uint256 chainID) view returns(uint256) +func (_ISystem *ISystemSession) GasPriceByChainId(chainID *big.Int) (*big.Int, error) { + return _ISystem.Contract.GasPriceByChainId(&_ISystem.CallOpts, chainID) +} + +// GasPriceByChainId is a free data retrieval call binding the contract method 0xd7fd7afb. +// +// Solidity: function gasPriceByChainId(uint256 chainID) view returns(uint256) +func (_ISystem *ISystemCallerSession) GasPriceByChainId(chainID *big.Int) (*big.Int, error) { + return _ISystem.Contract.GasPriceByChainId(&_ISystem.CallOpts, chainID) +} + +// GasZetaPoolByChainId is a free data retrieval call binding the contract method 0x513a9c05. +// +// Solidity: function gasZetaPoolByChainId(uint256 chainID) view returns(address) +func (_ISystem *ISystemCaller) GasZetaPoolByChainId(opts *bind.CallOpts, chainID *big.Int) (common.Address, error) { + var out []interface{} + err := _ISystem.contract.Call(opts, &out, "gasZetaPoolByChainId", chainID) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GasZetaPoolByChainId is a free data retrieval call binding the contract method 0x513a9c05. +// +// Solidity: function gasZetaPoolByChainId(uint256 chainID) view returns(address) +func (_ISystem *ISystemSession) GasZetaPoolByChainId(chainID *big.Int) (common.Address, error) { + return _ISystem.Contract.GasZetaPoolByChainId(&_ISystem.CallOpts, chainID) +} + +// GasZetaPoolByChainId is a free data retrieval call binding the contract method 0x513a9c05. +// +// Solidity: function gasZetaPoolByChainId(uint256 chainID) view returns(address) +func (_ISystem *ISystemCallerSession) GasZetaPoolByChainId(chainID *big.Int) (common.Address, error) { + return _ISystem.Contract.GasZetaPoolByChainId(&_ISystem.CallOpts, chainID) +} + +// Uniswapv2FactoryAddress is a free data retrieval call binding the contract method 0xd936a012. +// +// Solidity: function uniswapv2FactoryAddress() view returns(address) +func (_ISystem *ISystemCaller) Uniswapv2FactoryAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ISystem.contract.Call(opts, &out, "uniswapv2FactoryAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Uniswapv2FactoryAddress is a free data retrieval call binding the contract method 0xd936a012. +// +// Solidity: function uniswapv2FactoryAddress() view returns(address) +func (_ISystem *ISystemSession) Uniswapv2FactoryAddress() (common.Address, error) { + return _ISystem.Contract.Uniswapv2FactoryAddress(&_ISystem.CallOpts) +} + +// Uniswapv2FactoryAddress is a free data retrieval call binding the contract method 0xd936a012. +// +// Solidity: function uniswapv2FactoryAddress() view returns(address) +func (_ISystem *ISystemCallerSession) Uniswapv2FactoryAddress() (common.Address, error) { + return _ISystem.Contract.Uniswapv2FactoryAddress(&_ISystem.CallOpts) +} + +// WZetaContractAddress is a free data retrieval call binding the contract method 0x569541b9. +// +// Solidity: function wZetaContractAddress() view returns(address) +func (_ISystem *ISystemCaller) WZetaContractAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ISystem.contract.Call(opts, &out, "wZetaContractAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// WZetaContractAddress is a free data retrieval call binding the contract method 0x569541b9. +// +// Solidity: function wZetaContractAddress() view returns(address) +func (_ISystem *ISystemSession) WZetaContractAddress() (common.Address, error) { + return _ISystem.Contract.WZetaContractAddress(&_ISystem.CallOpts) +} + +// WZetaContractAddress is a free data retrieval call binding the contract method 0x569541b9. +// +// Solidity: function wZetaContractAddress() view returns(address) +func (_ISystem *ISystemCallerSession) WZetaContractAddress() (common.Address, error) { + return _ISystem.Contract.WZetaContractAddress(&_ISystem.CallOpts) +} diff --git a/v2/pkg/iupgradeablebeacon.sol/iupgradeablebeacon.go b/v2/pkg/iupgradeablebeacon.sol/iupgradeablebeacon.go new file mode 100644 index 00000000..1f1902b9 --- /dev/null +++ b/v2/pkg/iupgradeablebeacon.sol/iupgradeablebeacon.go @@ -0,0 +1,202 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package iupgradeablebeacon + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IUpgradeableBeaconMetaData contains all meta data concerning the IUpgradeableBeacon contract. +var IUpgradeableBeaconMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"upgradeTo\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", +} + +// IUpgradeableBeaconABI is the input ABI used to generate the binding from. +// Deprecated: Use IUpgradeableBeaconMetaData.ABI instead. +var IUpgradeableBeaconABI = IUpgradeableBeaconMetaData.ABI + +// IUpgradeableBeacon is an auto generated Go binding around an Ethereum contract. +type IUpgradeableBeacon struct { + IUpgradeableBeaconCaller // Read-only binding to the contract + IUpgradeableBeaconTransactor // Write-only binding to the contract + IUpgradeableBeaconFilterer // Log filterer for contract events +} + +// IUpgradeableBeaconCaller is an auto generated read-only Go binding around an Ethereum contract. +type IUpgradeableBeaconCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IUpgradeableBeaconTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IUpgradeableBeaconTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IUpgradeableBeaconFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IUpgradeableBeaconFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IUpgradeableBeaconSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IUpgradeableBeaconSession struct { + Contract *IUpgradeableBeacon // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IUpgradeableBeaconCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IUpgradeableBeaconCallerSession struct { + Contract *IUpgradeableBeaconCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IUpgradeableBeaconTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IUpgradeableBeaconTransactorSession struct { + Contract *IUpgradeableBeaconTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IUpgradeableBeaconRaw is an auto generated low-level Go binding around an Ethereum contract. +type IUpgradeableBeaconRaw struct { + Contract *IUpgradeableBeacon // Generic contract binding to access the raw methods on +} + +// IUpgradeableBeaconCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IUpgradeableBeaconCallerRaw struct { + Contract *IUpgradeableBeaconCaller // Generic read-only contract binding to access the raw methods on +} + +// IUpgradeableBeaconTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IUpgradeableBeaconTransactorRaw struct { + Contract *IUpgradeableBeaconTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIUpgradeableBeacon creates a new instance of IUpgradeableBeacon, bound to a specific deployed contract. +func NewIUpgradeableBeacon(address common.Address, backend bind.ContractBackend) (*IUpgradeableBeacon, error) { + contract, err := bindIUpgradeableBeacon(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IUpgradeableBeacon{IUpgradeableBeaconCaller: IUpgradeableBeaconCaller{contract: contract}, IUpgradeableBeaconTransactor: IUpgradeableBeaconTransactor{contract: contract}, IUpgradeableBeaconFilterer: IUpgradeableBeaconFilterer{contract: contract}}, nil +} + +// NewIUpgradeableBeaconCaller creates a new read-only instance of IUpgradeableBeacon, bound to a specific deployed contract. +func NewIUpgradeableBeaconCaller(address common.Address, caller bind.ContractCaller) (*IUpgradeableBeaconCaller, error) { + contract, err := bindIUpgradeableBeacon(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IUpgradeableBeaconCaller{contract: contract}, nil +} + +// NewIUpgradeableBeaconTransactor creates a new write-only instance of IUpgradeableBeacon, bound to a specific deployed contract. +func NewIUpgradeableBeaconTransactor(address common.Address, transactor bind.ContractTransactor) (*IUpgradeableBeaconTransactor, error) { + contract, err := bindIUpgradeableBeacon(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IUpgradeableBeaconTransactor{contract: contract}, nil +} + +// NewIUpgradeableBeaconFilterer creates a new log filterer instance of IUpgradeableBeacon, bound to a specific deployed contract. +func NewIUpgradeableBeaconFilterer(address common.Address, filterer bind.ContractFilterer) (*IUpgradeableBeaconFilterer, error) { + contract, err := bindIUpgradeableBeacon(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IUpgradeableBeaconFilterer{contract: contract}, nil +} + +// bindIUpgradeableBeacon binds a generic wrapper to an already deployed contract. +func bindIUpgradeableBeacon(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IUpgradeableBeaconMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IUpgradeableBeacon *IUpgradeableBeaconRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IUpgradeableBeacon.Contract.IUpgradeableBeaconCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IUpgradeableBeacon *IUpgradeableBeaconRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IUpgradeableBeacon.Contract.IUpgradeableBeaconTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IUpgradeableBeacon *IUpgradeableBeaconRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IUpgradeableBeacon.Contract.IUpgradeableBeaconTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IUpgradeableBeacon *IUpgradeableBeaconCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IUpgradeableBeacon.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IUpgradeableBeacon *IUpgradeableBeaconTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IUpgradeableBeacon.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IUpgradeableBeacon *IUpgradeableBeaconTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IUpgradeableBeacon.Contract.contract.Transact(opts, method, params...) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address ) returns() +func (_IUpgradeableBeacon *IUpgradeableBeaconTransactor) UpgradeTo(opts *bind.TransactOpts, arg0 common.Address) (*types.Transaction, error) { + return _IUpgradeableBeacon.contract.Transact(opts, "upgradeTo", arg0) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address ) returns() +func (_IUpgradeableBeacon *IUpgradeableBeaconSession) UpgradeTo(arg0 common.Address) (*types.Transaction, error) { + return _IUpgradeableBeacon.Contract.UpgradeTo(&_IUpgradeableBeacon.TransactOpts, arg0) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address ) returns() +func (_IUpgradeableBeacon *IUpgradeableBeaconTransactorSession) UpgradeTo(arg0 common.Address) (*types.Transaction, error) { + return _IUpgradeableBeacon.Contract.UpgradeTo(&_IUpgradeableBeacon.TransactOpts, arg0) +} diff --git a/v2/pkg/iupgradeableproxy.sol/iupgradeableproxy.go b/v2/pkg/iupgradeableproxy.sol/iupgradeableproxy.go new file mode 100644 index 00000000..3f95657e --- /dev/null +++ b/v2/pkg/iupgradeableproxy.sol/iupgradeableproxy.go @@ -0,0 +1,223 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package iupgradeableproxy + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IUpgradeableProxyMetaData contains all meta data concerning the IUpgradeableProxy contract. +var IUpgradeableProxyMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"upgradeTo\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgradeToAndCall\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"}]", +} + +// IUpgradeableProxyABI is the input ABI used to generate the binding from. +// Deprecated: Use IUpgradeableProxyMetaData.ABI instead. +var IUpgradeableProxyABI = IUpgradeableProxyMetaData.ABI + +// IUpgradeableProxy is an auto generated Go binding around an Ethereum contract. +type IUpgradeableProxy struct { + IUpgradeableProxyCaller // Read-only binding to the contract + IUpgradeableProxyTransactor // Write-only binding to the contract + IUpgradeableProxyFilterer // Log filterer for contract events +} + +// IUpgradeableProxyCaller is an auto generated read-only Go binding around an Ethereum contract. +type IUpgradeableProxyCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IUpgradeableProxyTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IUpgradeableProxyTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IUpgradeableProxyFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IUpgradeableProxyFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IUpgradeableProxySession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IUpgradeableProxySession struct { + Contract *IUpgradeableProxy // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IUpgradeableProxyCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IUpgradeableProxyCallerSession struct { + Contract *IUpgradeableProxyCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IUpgradeableProxyTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IUpgradeableProxyTransactorSession struct { + Contract *IUpgradeableProxyTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IUpgradeableProxyRaw is an auto generated low-level Go binding around an Ethereum contract. +type IUpgradeableProxyRaw struct { + Contract *IUpgradeableProxy // Generic contract binding to access the raw methods on +} + +// IUpgradeableProxyCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IUpgradeableProxyCallerRaw struct { + Contract *IUpgradeableProxyCaller // Generic read-only contract binding to access the raw methods on +} + +// IUpgradeableProxyTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IUpgradeableProxyTransactorRaw struct { + Contract *IUpgradeableProxyTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIUpgradeableProxy creates a new instance of IUpgradeableProxy, bound to a specific deployed contract. +func NewIUpgradeableProxy(address common.Address, backend bind.ContractBackend) (*IUpgradeableProxy, error) { + contract, err := bindIUpgradeableProxy(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IUpgradeableProxy{IUpgradeableProxyCaller: IUpgradeableProxyCaller{contract: contract}, IUpgradeableProxyTransactor: IUpgradeableProxyTransactor{contract: contract}, IUpgradeableProxyFilterer: IUpgradeableProxyFilterer{contract: contract}}, nil +} + +// NewIUpgradeableProxyCaller creates a new read-only instance of IUpgradeableProxy, bound to a specific deployed contract. +func NewIUpgradeableProxyCaller(address common.Address, caller bind.ContractCaller) (*IUpgradeableProxyCaller, error) { + contract, err := bindIUpgradeableProxy(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IUpgradeableProxyCaller{contract: contract}, nil +} + +// NewIUpgradeableProxyTransactor creates a new write-only instance of IUpgradeableProxy, bound to a specific deployed contract. +func NewIUpgradeableProxyTransactor(address common.Address, transactor bind.ContractTransactor) (*IUpgradeableProxyTransactor, error) { + contract, err := bindIUpgradeableProxy(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IUpgradeableProxyTransactor{contract: contract}, nil +} + +// NewIUpgradeableProxyFilterer creates a new log filterer instance of IUpgradeableProxy, bound to a specific deployed contract. +func NewIUpgradeableProxyFilterer(address common.Address, filterer bind.ContractFilterer) (*IUpgradeableProxyFilterer, error) { + contract, err := bindIUpgradeableProxy(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IUpgradeableProxyFilterer{contract: contract}, nil +} + +// bindIUpgradeableProxy binds a generic wrapper to an already deployed contract. +func bindIUpgradeableProxy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IUpgradeableProxyMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IUpgradeableProxy *IUpgradeableProxyRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IUpgradeableProxy.Contract.IUpgradeableProxyCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IUpgradeableProxy *IUpgradeableProxyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IUpgradeableProxy.Contract.IUpgradeableProxyTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IUpgradeableProxy *IUpgradeableProxyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IUpgradeableProxy.Contract.IUpgradeableProxyTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IUpgradeableProxy *IUpgradeableProxyCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IUpgradeableProxy.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IUpgradeableProxy *IUpgradeableProxyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IUpgradeableProxy.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IUpgradeableProxy *IUpgradeableProxyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IUpgradeableProxy.Contract.contract.Transact(opts, method, params...) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address ) returns() +func (_IUpgradeableProxy *IUpgradeableProxyTransactor) UpgradeTo(opts *bind.TransactOpts, arg0 common.Address) (*types.Transaction, error) { + return _IUpgradeableProxy.contract.Transact(opts, "upgradeTo", arg0) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address ) returns() +func (_IUpgradeableProxy *IUpgradeableProxySession) UpgradeTo(arg0 common.Address) (*types.Transaction, error) { + return _IUpgradeableProxy.Contract.UpgradeTo(&_IUpgradeableProxy.TransactOpts, arg0) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address ) returns() +func (_IUpgradeableProxy *IUpgradeableProxyTransactorSession) UpgradeTo(arg0 common.Address) (*types.Transaction, error) { + return _IUpgradeableProxy.Contract.UpgradeTo(&_IUpgradeableProxy.TransactOpts, arg0) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address , bytes ) payable returns() +func (_IUpgradeableProxy *IUpgradeableProxyTransactor) UpgradeToAndCall(opts *bind.TransactOpts, arg0 common.Address, arg1 []byte) (*types.Transaction, error) { + return _IUpgradeableProxy.contract.Transact(opts, "upgradeToAndCall", arg0, arg1) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address , bytes ) payable returns() +func (_IUpgradeableProxy *IUpgradeableProxySession) UpgradeToAndCall(arg0 common.Address, arg1 []byte) (*types.Transaction, error) { + return _IUpgradeableProxy.Contract.UpgradeToAndCall(&_IUpgradeableProxy.TransactOpts, arg0, arg1) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address , bytes ) payable returns() +func (_IUpgradeableProxy *IUpgradeableProxyTransactorSession) UpgradeToAndCall(arg0 common.Address, arg1 []byte) (*types.Transaction, error) { + return _IUpgradeableProxy.Contract.UpgradeToAndCall(&_IUpgradeableProxy.TransactOpts, arg0, arg1) +} diff --git a/v2/pkg/iwzeta.sol/iweth9.go b/v2/pkg/iwzeta.sol/iweth9.go new file mode 100644 index 00000000..060122f3 --- /dev/null +++ b/v2/pkg/iwzeta.sol/iweth9.go @@ -0,0 +1,977 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package iwzeta + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IWETH9MetaData contains all meta data concerning the IWETH9 contract. +var IWETH9MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"wad\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", +} + +// IWETH9ABI is the input ABI used to generate the binding from. +// Deprecated: Use IWETH9MetaData.ABI instead. +var IWETH9ABI = IWETH9MetaData.ABI + +// IWETH9 is an auto generated Go binding around an Ethereum contract. +type IWETH9 struct { + IWETH9Caller // Read-only binding to the contract + IWETH9Transactor // Write-only binding to the contract + IWETH9Filterer // Log filterer for contract events +} + +// IWETH9Caller is an auto generated read-only Go binding around an Ethereum contract. +type IWETH9Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IWETH9Transactor is an auto generated write-only Go binding around an Ethereum contract. +type IWETH9Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IWETH9Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IWETH9Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IWETH9Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IWETH9Session struct { + Contract *IWETH9 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IWETH9CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IWETH9CallerSession struct { + Contract *IWETH9Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IWETH9TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IWETH9TransactorSession struct { + Contract *IWETH9Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IWETH9Raw is an auto generated low-level Go binding around an Ethereum contract. +type IWETH9Raw struct { + Contract *IWETH9 // Generic contract binding to access the raw methods on +} + +// IWETH9CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IWETH9CallerRaw struct { + Contract *IWETH9Caller // Generic read-only contract binding to access the raw methods on +} + +// IWETH9TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IWETH9TransactorRaw struct { + Contract *IWETH9Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewIWETH9 creates a new instance of IWETH9, bound to a specific deployed contract. +func NewIWETH9(address common.Address, backend bind.ContractBackend) (*IWETH9, error) { + contract, err := bindIWETH9(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IWETH9{IWETH9Caller: IWETH9Caller{contract: contract}, IWETH9Transactor: IWETH9Transactor{contract: contract}, IWETH9Filterer: IWETH9Filterer{contract: contract}}, nil +} + +// NewIWETH9Caller creates a new read-only instance of IWETH9, bound to a specific deployed contract. +func NewIWETH9Caller(address common.Address, caller bind.ContractCaller) (*IWETH9Caller, error) { + contract, err := bindIWETH9(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IWETH9Caller{contract: contract}, nil +} + +// NewIWETH9Transactor creates a new write-only instance of IWETH9, bound to a specific deployed contract. +func NewIWETH9Transactor(address common.Address, transactor bind.ContractTransactor) (*IWETH9Transactor, error) { + contract, err := bindIWETH9(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IWETH9Transactor{contract: contract}, nil +} + +// NewIWETH9Filterer creates a new log filterer instance of IWETH9, bound to a specific deployed contract. +func NewIWETH9Filterer(address common.Address, filterer bind.ContractFilterer) (*IWETH9Filterer, error) { + contract, err := bindIWETH9(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IWETH9Filterer{contract: contract}, nil +} + +// bindIWETH9 binds a generic wrapper to an already deployed contract. +func bindIWETH9(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IWETH9MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IWETH9 *IWETH9Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IWETH9.Contract.IWETH9Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IWETH9 *IWETH9Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IWETH9.Contract.IWETH9Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IWETH9 *IWETH9Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IWETH9.Contract.IWETH9Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IWETH9 *IWETH9CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IWETH9.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IWETH9 *IWETH9TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IWETH9.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IWETH9 *IWETH9TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IWETH9.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IWETH9 *IWETH9Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _IWETH9.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IWETH9 *IWETH9Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IWETH9.Contract.Allowance(&_IWETH9.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IWETH9 *IWETH9CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IWETH9.Contract.Allowance(&_IWETH9.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address owner) view returns(uint256) +func (_IWETH9 *IWETH9Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { + var out []interface{} + err := _IWETH9.contract.Call(opts, &out, "balanceOf", owner) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address owner) view returns(uint256) +func (_IWETH9 *IWETH9Session) BalanceOf(owner common.Address) (*big.Int, error) { + return _IWETH9.Contract.BalanceOf(&_IWETH9.CallOpts, owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address owner) view returns(uint256) +func (_IWETH9 *IWETH9CallerSession) BalanceOf(owner common.Address) (*big.Int, error) { + return _IWETH9.Contract.BalanceOf(&_IWETH9.CallOpts, owner) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IWETH9 *IWETH9Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IWETH9.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IWETH9 *IWETH9Session) TotalSupply() (*big.Int, error) { + return _IWETH9.Contract.TotalSupply(&_IWETH9.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IWETH9 *IWETH9CallerSession) TotalSupply() (*big.Int, error) { + return _IWETH9.Contract.TotalSupply(&_IWETH9.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 wad) returns(bool) +func (_IWETH9 *IWETH9Transactor) Approve(opts *bind.TransactOpts, spender common.Address, wad *big.Int) (*types.Transaction, error) { + return _IWETH9.contract.Transact(opts, "approve", spender, wad) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 wad) returns(bool) +func (_IWETH9 *IWETH9Session) Approve(spender common.Address, wad *big.Int) (*types.Transaction, error) { + return _IWETH9.Contract.Approve(&_IWETH9.TransactOpts, spender, wad) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 wad) returns(bool) +func (_IWETH9 *IWETH9TransactorSession) Approve(spender common.Address, wad *big.Int) (*types.Transaction, error) { + return _IWETH9.Contract.Approve(&_IWETH9.TransactOpts, spender, wad) +} + +// Deposit is a paid mutator transaction binding the contract method 0xd0e30db0. +// +// Solidity: function deposit() payable returns() +func (_IWETH9 *IWETH9Transactor) Deposit(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IWETH9.contract.Transact(opts, "deposit") +} + +// Deposit is a paid mutator transaction binding the contract method 0xd0e30db0. +// +// Solidity: function deposit() payable returns() +func (_IWETH9 *IWETH9Session) Deposit() (*types.Transaction, error) { + return _IWETH9.Contract.Deposit(&_IWETH9.TransactOpts) +} + +// Deposit is a paid mutator transaction binding the contract method 0xd0e30db0. +// +// Solidity: function deposit() payable returns() +func (_IWETH9 *IWETH9TransactorSession) Deposit() (*types.Transaction, error) { + return _IWETH9.Contract.Deposit(&_IWETH9.TransactOpts) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 wad) returns(bool) +func (_IWETH9 *IWETH9Transactor) Transfer(opts *bind.TransactOpts, to common.Address, wad *big.Int) (*types.Transaction, error) { + return _IWETH9.contract.Transact(opts, "transfer", to, wad) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 wad) returns(bool) +func (_IWETH9 *IWETH9Session) Transfer(to common.Address, wad *big.Int) (*types.Transaction, error) { + return _IWETH9.Contract.Transfer(&_IWETH9.TransactOpts, to, wad) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 wad) returns(bool) +func (_IWETH9 *IWETH9TransactorSession) Transfer(to common.Address, wad *big.Int) (*types.Transaction, error) { + return _IWETH9.Contract.Transfer(&_IWETH9.TransactOpts, to, wad) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 wad) returns(bool) +func (_IWETH9 *IWETH9Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, wad *big.Int) (*types.Transaction, error) { + return _IWETH9.contract.Transact(opts, "transferFrom", from, to, wad) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 wad) returns(bool) +func (_IWETH9 *IWETH9Session) TransferFrom(from common.Address, to common.Address, wad *big.Int) (*types.Transaction, error) { + return _IWETH9.Contract.TransferFrom(&_IWETH9.TransactOpts, from, to, wad) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 wad) returns(bool) +func (_IWETH9 *IWETH9TransactorSession) TransferFrom(from common.Address, to common.Address, wad *big.Int) (*types.Transaction, error) { + return _IWETH9.Contract.TransferFrom(&_IWETH9.TransactOpts, from, to, wad) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 wad) returns() +func (_IWETH9 *IWETH9Transactor) Withdraw(opts *bind.TransactOpts, wad *big.Int) (*types.Transaction, error) { + return _IWETH9.contract.Transact(opts, "withdraw", wad) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 wad) returns() +func (_IWETH9 *IWETH9Session) Withdraw(wad *big.Int) (*types.Transaction, error) { + return _IWETH9.Contract.Withdraw(&_IWETH9.TransactOpts, wad) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 wad) returns() +func (_IWETH9 *IWETH9TransactorSession) Withdraw(wad *big.Int) (*types.Transaction, error) { + return _IWETH9.Contract.Withdraw(&_IWETH9.TransactOpts, wad) +} + +// IWETH9ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IWETH9 contract. +type IWETH9ApprovalIterator struct { + Event *IWETH9Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IWETH9ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IWETH9Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IWETH9Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IWETH9ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IWETH9ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IWETH9Approval represents a Approval event raised by the IWETH9 contract. +type IWETH9Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IWETH9 *IWETH9Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*IWETH9ApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _IWETH9.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &IWETH9ApprovalIterator{contract: _IWETH9.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IWETH9 *IWETH9Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IWETH9Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _IWETH9.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IWETH9Approval) + if err := _IWETH9.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IWETH9 *IWETH9Filterer) ParseApproval(log types.Log) (*IWETH9Approval, error) { + event := new(IWETH9Approval) + if err := _IWETH9.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IWETH9DepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the IWETH9 contract. +type IWETH9DepositIterator struct { + Event *IWETH9Deposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IWETH9DepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IWETH9Deposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IWETH9Deposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IWETH9DepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IWETH9DepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IWETH9Deposit represents a Deposit event raised by the IWETH9 contract. +type IWETH9Deposit struct { + Dst common.Address + Wad *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed dst, uint256 wad) +func (_IWETH9 *IWETH9Filterer) FilterDeposit(opts *bind.FilterOpts, dst []common.Address) (*IWETH9DepositIterator, error) { + + var dstRule []interface{} + for _, dstItem := range dst { + dstRule = append(dstRule, dstItem) + } + + logs, sub, err := _IWETH9.contract.FilterLogs(opts, "Deposit", dstRule) + if err != nil { + return nil, err + } + return &IWETH9DepositIterator{contract: _IWETH9.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed dst, uint256 wad) +func (_IWETH9 *IWETH9Filterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *IWETH9Deposit, dst []common.Address) (event.Subscription, error) { + + var dstRule []interface{} + for _, dstItem := range dst { + dstRule = append(dstRule, dstItem) + } + + logs, sub, err := _IWETH9.contract.WatchLogs(opts, "Deposit", dstRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IWETH9Deposit) + if err := _IWETH9.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed dst, uint256 wad) +func (_IWETH9 *IWETH9Filterer) ParseDeposit(log types.Log) (*IWETH9Deposit, error) { + event := new(IWETH9Deposit) + if err := _IWETH9.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IWETH9TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IWETH9 contract. +type IWETH9TransferIterator struct { + Event *IWETH9Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IWETH9TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IWETH9Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IWETH9Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IWETH9TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IWETH9TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IWETH9Transfer represents a Transfer event raised by the IWETH9 contract. +type IWETH9Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IWETH9 *IWETH9Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*IWETH9TransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IWETH9.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &IWETH9TransferIterator{contract: _IWETH9.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IWETH9 *IWETH9Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IWETH9Transfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IWETH9.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IWETH9Transfer) + if err := _IWETH9.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IWETH9 *IWETH9Filterer) ParseTransfer(log types.Log) (*IWETH9Transfer, error) { + event := new(IWETH9Transfer) + if err := _IWETH9.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IWETH9WithdrawalIterator is returned from FilterWithdrawal and is used to iterate over the raw logs and unpacked data for Withdrawal events raised by the IWETH9 contract. +type IWETH9WithdrawalIterator struct { + Event *IWETH9Withdrawal // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IWETH9WithdrawalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IWETH9Withdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IWETH9Withdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IWETH9WithdrawalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IWETH9WithdrawalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IWETH9Withdrawal represents a Withdrawal event raised by the IWETH9 contract. +type IWETH9Withdrawal struct { + Src common.Address + Wad *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawal is a free log retrieval operation binding the contract event 0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65. +// +// Solidity: event Withdrawal(address indexed src, uint256 wad) +func (_IWETH9 *IWETH9Filterer) FilterWithdrawal(opts *bind.FilterOpts, src []common.Address) (*IWETH9WithdrawalIterator, error) { + + var srcRule []interface{} + for _, srcItem := range src { + srcRule = append(srcRule, srcItem) + } + + logs, sub, err := _IWETH9.contract.FilterLogs(opts, "Withdrawal", srcRule) + if err != nil { + return nil, err + } + return &IWETH9WithdrawalIterator{contract: _IWETH9.contract, event: "Withdrawal", logs: logs, sub: sub}, nil +} + +// WatchWithdrawal is a free log subscription operation binding the contract event 0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65. +// +// Solidity: event Withdrawal(address indexed src, uint256 wad) +func (_IWETH9 *IWETH9Filterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *IWETH9Withdrawal, src []common.Address) (event.Subscription, error) { + + var srcRule []interface{} + for _, srcItem := range src { + srcRule = append(srcRule, srcItem) + } + + logs, sub, err := _IWETH9.contract.WatchLogs(opts, "Withdrawal", srcRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IWETH9Withdrawal) + if err := _IWETH9.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawal is a log parse operation binding the contract event 0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65. +// +// Solidity: event Withdrawal(address indexed src, uint256 wad) +func (_IWETH9 *IWETH9Filterer) ParseWithdrawal(log types.Log) (*IWETH9Withdrawal, error) { + event := new(IWETH9Withdrawal) + if err := _IWETH9.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/izetaconnector.sol/izetaconnectorevents.go b/v2/pkg/izetaconnector.sol/izetaconnectorevents.go new file mode 100644 index 00000000..e466571b --- /dev/null +++ b/v2/pkg/izetaconnector.sol/izetaconnectorevents.go @@ -0,0 +1,618 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package izetaconnector + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IZetaConnectorEventsMetaData contains all meta data concerning the IZetaConnectorEvents contract. +var IZetaConnectorEventsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndCall\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndRevert\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", +} + +// IZetaConnectorEventsABI is the input ABI used to generate the binding from. +// Deprecated: Use IZetaConnectorEventsMetaData.ABI instead. +var IZetaConnectorEventsABI = IZetaConnectorEventsMetaData.ABI + +// IZetaConnectorEvents is an auto generated Go binding around an Ethereum contract. +type IZetaConnectorEvents struct { + IZetaConnectorEventsCaller // Read-only binding to the contract + IZetaConnectorEventsTransactor // Write-only binding to the contract + IZetaConnectorEventsFilterer // Log filterer for contract events +} + +// IZetaConnectorEventsCaller is an auto generated read-only Go binding around an Ethereum contract. +type IZetaConnectorEventsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZetaConnectorEventsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IZetaConnectorEventsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZetaConnectorEventsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IZetaConnectorEventsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZetaConnectorEventsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IZetaConnectorEventsSession struct { + Contract *IZetaConnectorEvents // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IZetaConnectorEventsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IZetaConnectorEventsCallerSession struct { + Contract *IZetaConnectorEventsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IZetaConnectorEventsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IZetaConnectorEventsTransactorSession struct { + Contract *IZetaConnectorEventsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IZetaConnectorEventsRaw is an auto generated low-level Go binding around an Ethereum contract. +type IZetaConnectorEventsRaw struct { + Contract *IZetaConnectorEvents // Generic contract binding to access the raw methods on +} + +// IZetaConnectorEventsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IZetaConnectorEventsCallerRaw struct { + Contract *IZetaConnectorEventsCaller // Generic read-only contract binding to access the raw methods on +} + +// IZetaConnectorEventsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IZetaConnectorEventsTransactorRaw struct { + Contract *IZetaConnectorEventsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIZetaConnectorEvents creates a new instance of IZetaConnectorEvents, bound to a specific deployed contract. +func NewIZetaConnectorEvents(address common.Address, backend bind.ContractBackend) (*IZetaConnectorEvents, error) { + contract, err := bindIZetaConnectorEvents(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IZetaConnectorEvents{IZetaConnectorEventsCaller: IZetaConnectorEventsCaller{contract: contract}, IZetaConnectorEventsTransactor: IZetaConnectorEventsTransactor{contract: contract}, IZetaConnectorEventsFilterer: IZetaConnectorEventsFilterer{contract: contract}}, nil +} + +// NewIZetaConnectorEventsCaller creates a new read-only instance of IZetaConnectorEvents, bound to a specific deployed contract. +func NewIZetaConnectorEventsCaller(address common.Address, caller bind.ContractCaller) (*IZetaConnectorEventsCaller, error) { + contract, err := bindIZetaConnectorEvents(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IZetaConnectorEventsCaller{contract: contract}, nil +} + +// NewIZetaConnectorEventsTransactor creates a new write-only instance of IZetaConnectorEvents, bound to a specific deployed contract. +func NewIZetaConnectorEventsTransactor(address common.Address, transactor bind.ContractTransactor) (*IZetaConnectorEventsTransactor, error) { + contract, err := bindIZetaConnectorEvents(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IZetaConnectorEventsTransactor{contract: contract}, nil +} + +// NewIZetaConnectorEventsFilterer creates a new log filterer instance of IZetaConnectorEvents, bound to a specific deployed contract. +func NewIZetaConnectorEventsFilterer(address common.Address, filterer bind.ContractFilterer) (*IZetaConnectorEventsFilterer, error) { + contract, err := bindIZetaConnectorEvents(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IZetaConnectorEventsFilterer{contract: contract}, nil +} + +// bindIZetaConnectorEvents binds a generic wrapper to an already deployed contract. +func bindIZetaConnectorEvents(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IZetaConnectorEventsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IZetaConnectorEvents *IZetaConnectorEventsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IZetaConnectorEvents.Contract.IZetaConnectorEventsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IZetaConnectorEvents *IZetaConnectorEventsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IZetaConnectorEvents.Contract.IZetaConnectorEventsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IZetaConnectorEvents *IZetaConnectorEventsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IZetaConnectorEvents.Contract.IZetaConnectorEventsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IZetaConnectorEvents *IZetaConnectorEventsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IZetaConnectorEvents.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IZetaConnectorEvents *IZetaConnectorEventsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IZetaConnectorEvents.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IZetaConnectorEvents *IZetaConnectorEventsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IZetaConnectorEvents.Contract.contract.Transact(opts, method, params...) +} + +// IZetaConnectorEventsWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the IZetaConnectorEvents contract. +type IZetaConnectorEventsWithdrawIterator struct { + Event *IZetaConnectorEventsWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IZetaConnectorEventsWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IZetaConnectorEventsWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IZetaConnectorEventsWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IZetaConnectorEventsWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IZetaConnectorEventsWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IZetaConnectorEventsWithdraw represents a Withdraw event raised by the IZetaConnectorEvents contract. +type IZetaConnectorEventsWithdraw struct { + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_IZetaConnectorEvents *IZetaConnectorEventsFilterer) FilterWithdraw(opts *bind.FilterOpts, to []common.Address) (*IZetaConnectorEventsWithdrawIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IZetaConnectorEvents.contract.FilterLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return &IZetaConnectorEventsWithdrawIterator{contract: _IZetaConnectorEvents.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_IZetaConnectorEvents *IZetaConnectorEventsFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *IZetaConnectorEventsWithdraw, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IZetaConnectorEvents.contract.WatchLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IZetaConnectorEventsWithdraw) + if err := _IZetaConnectorEvents.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_IZetaConnectorEvents *IZetaConnectorEventsFilterer) ParseWithdraw(log types.Log) (*IZetaConnectorEventsWithdraw, error) { + event := new(IZetaConnectorEventsWithdraw) + if err := _IZetaConnectorEvents.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IZetaConnectorEventsWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the IZetaConnectorEvents contract. +type IZetaConnectorEventsWithdrawAndCallIterator struct { + Event *IZetaConnectorEventsWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IZetaConnectorEventsWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IZetaConnectorEventsWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IZetaConnectorEventsWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IZetaConnectorEventsWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IZetaConnectorEventsWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IZetaConnectorEventsWithdrawAndCall represents a WithdrawAndCall event raised by the IZetaConnectorEvents contract. +type IZetaConnectorEventsWithdrawAndCall struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndCall is a free log retrieval operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_IZetaConnectorEvents *IZetaConnectorEventsFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, to []common.Address) (*IZetaConnectorEventsWithdrawAndCallIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IZetaConnectorEvents.contract.FilterLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return &IZetaConnectorEventsWithdrawAndCallIterator{contract: _IZetaConnectorEvents.contract, event: "WithdrawAndCall", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndCall is a free log subscription operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_IZetaConnectorEvents *IZetaConnectorEventsFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *IZetaConnectorEventsWithdrawAndCall, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IZetaConnectorEvents.contract.WatchLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IZetaConnectorEventsWithdrawAndCall) + if err := _IZetaConnectorEvents.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndCall is a log parse operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_IZetaConnectorEvents *IZetaConnectorEventsFilterer) ParseWithdrawAndCall(log types.Log) (*IZetaConnectorEventsWithdrawAndCall, error) { + event := new(IZetaConnectorEventsWithdrawAndCall) + if err := _IZetaConnectorEvents.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IZetaConnectorEventsWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the IZetaConnectorEvents contract. +type IZetaConnectorEventsWithdrawAndRevertIterator struct { + Event *IZetaConnectorEventsWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IZetaConnectorEventsWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IZetaConnectorEventsWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IZetaConnectorEventsWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IZetaConnectorEventsWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IZetaConnectorEventsWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IZetaConnectorEventsWithdrawAndRevert represents a WithdrawAndRevert event raised by the IZetaConnectorEvents contract. +type IZetaConnectorEventsWithdrawAndRevert struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndRevert is a free log retrieval operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_IZetaConnectorEvents *IZetaConnectorEventsFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, to []common.Address) (*IZetaConnectorEventsWithdrawAndRevertIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IZetaConnectorEvents.contract.FilterLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return &IZetaConnectorEventsWithdrawAndRevertIterator{contract: _IZetaConnectorEvents.contract, event: "WithdrawAndRevert", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndRevert is a free log subscription operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_IZetaConnectorEvents *IZetaConnectorEventsFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *IZetaConnectorEventsWithdrawAndRevert, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IZetaConnectorEvents.contract.WatchLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IZetaConnectorEventsWithdrawAndRevert) + if err := _IZetaConnectorEvents.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndRevert is a log parse operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_IZetaConnectorEvents *IZetaConnectorEventsFilterer) ParseWithdrawAndRevert(log types.Log) (*IZetaConnectorEventsWithdrawAndRevert, error) { + event := new(IZetaConnectorEventsWithdrawAndRevert) + if err := _IZetaConnectorEvents.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/izetanonethnew.sol/izetanonethnew.go b/v2/pkg/izetanonethnew.sol/izetanonethnew.go new file mode 100644 index 00000000..2c049e89 --- /dev/null +++ b/v2/pkg/izetanonethnew.sol/izetanonethnew.go @@ -0,0 +1,687 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package izetanonethnew + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IZetaNonEthNewMetaData contains all meta data concerning the IZetaNonEthNew contract. +var IZetaNonEthNewMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burnFrom\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"mintee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", +} + +// IZetaNonEthNewABI is the input ABI used to generate the binding from. +// Deprecated: Use IZetaNonEthNewMetaData.ABI instead. +var IZetaNonEthNewABI = IZetaNonEthNewMetaData.ABI + +// IZetaNonEthNew is an auto generated Go binding around an Ethereum contract. +type IZetaNonEthNew struct { + IZetaNonEthNewCaller // Read-only binding to the contract + IZetaNonEthNewTransactor // Write-only binding to the contract + IZetaNonEthNewFilterer // Log filterer for contract events +} + +// IZetaNonEthNewCaller is an auto generated read-only Go binding around an Ethereum contract. +type IZetaNonEthNewCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZetaNonEthNewTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IZetaNonEthNewTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZetaNonEthNewFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IZetaNonEthNewFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZetaNonEthNewSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IZetaNonEthNewSession struct { + Contract *IZetaNonEthNew // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IZetaNonEthNewCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IZetaNonEthNewCallerSession struct { + Contract *IZetaNonEthNewCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IZetaNonEthNewTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IZetaNonEthNewTransactorSession struct { + Contract *IZetaNonEthNewTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IZetaNonEthNewRaw is an auto generated low-level Go binding around an Ethereum contract. +type IZetaNonEthNewRaw struct { + Contract *IZetaNonEthNew // Generic contract binding to access the raw methods on +} + +// IZetaNonEthNewCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IZetaNonEthNewCallerRaw struct { + Contract *IZetaNonEthNewCaller // Generic read-only contract binding to access the raw methods on +} + +// IZetaNonEthNewTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IZetaNonEthNewTransactorRaw struct { + Contract *IZetaNonEthNewTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIZetaNonEthNew creates a new instance of IZetaNonEthNew, bound to a specific deployed contract. +func NewIZetaNonEthNew(address common.Address, backend bind.ContractBackend) (*IZetaNonEthNew, error) { + contract, err := bindIZetaNonEthNew(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IZetaNonEthNew{IZetaNonEthNewCaller: IZetaNonEthNewCaller{contract: contract}, IZetaNonEthNewTransactor: IZetaNonEthNewTransactor{contract: contract}, IZetaNonEthNewFilterer: IZetaNonEthNewFilterer{contract: contract}}, nil +} + +// NewIZetaNonEthNewCaller creates a new read-only instance of IZetaNonEthNew, bound to a specific deployed contract. +func NewIZetaNonEthNewCaller(address common.Address, caller bind.ContractCaller) (*IZetaNonEthNewCaller, error) { + contract, err := bindIZetaNonEthNew(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IZetaNonEthNewCaller{contract: contract}, nil +} + +// NewIZetaNonEthNewTransactor creates a new write-only instance of IZetaNonEthNew, bound to a specific deployed contract. +func NewIZetaNonEthNewTransactor(address common.Address, transactor bind.ContractTransactor) (*IZetaNonEthNewTransactor, error) { + contract, err := bindIZetaNonEthNew(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IZetaNonEthNewTransactor{contract: contract}, nil +} + +// NewIZetaNonEthNewFilterer creates a new log filterer instance of IZetaNonEthNew, bound to a specific deployed contract. +func NewIZetaNonEthNewFilterer(address common.Address, filterer bind.ContractFilterer) (*IZetaNonEthNewFilterer, error) { + contract, err := bindIZetaNonEthNew(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IZetaNonEthNewFilterer{contract: contract}, nil +} + +// bindIZetaNonEthNew binds a generic wrapper to an already deployed contract. +func bindIZetaNonEthNew(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IZetaNonEthNewMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IZetaNonEthNew *IZetaNonEthNewRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IZetaNonEthNew.Contract.IZetaNonEthNewCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IZetaNonEthNew *IZetaNonEthNewRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.IZetaNonEthNewTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IZetaNonEthNew *IZetaNonEthNewRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.IZetaNonEthNewTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IZetaNonEthNew *IZetaNonEthNewCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IZetaNonEthNew.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IZetaNonEthNew *IZetaNonEthNewTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IZetaNonEthNew *IZetaNonEthNewTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IZetaNonEthNew *IZetaNonEthNewCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _IZetaNonEthNew.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IZetaNonEthNew *IZetaNonEthNewSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IZetaNonEthNew.Contract.Allowance(&_IZetaNonEthNew.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IZetaNonEthNew *IZetaNonEthNewCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IZetaNonEthNew.Contract.Allowance(&_IZetaNonEthNew.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IZetaNonEthNew *IZetaNonEthNewCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _IZetaNonEthNew.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IZetaNonEthNew *IZetaNonEthNewSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IZetaNonEthNew.Contract.BalanceOf(&_IZetaNonEthNew.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IZetaNonEthNew *IZetaNonEthNewCallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IZetaNonEthNew.Contract.BalanceOf(&_IZetaNonEthNew.CallOpts, account) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IZetaNonEthNew *IZetaNonEthNewCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IZetaNonEthNew.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IZetaNonEthNew *IZetaNonEthNewSession) TotalSupply() (*big.Int, error) { + return _IZetaNonEthNew.Contract.TotalSupply(&_IZetaNonEthNew.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IZetaNonEthNew *IZetaNonEthNewCallerSession) TotalSupply() (*big.Int, error) { + return _IZetaNonEthNew.Contract.TotalSupply(&_IZetaNonEthNew.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_IZetaNonEthNew *IZetaNonEthNewTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.contract.Transact(opts, "approve", spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_IZetaNonEthNew *IZetaNonEthNewSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.Approve(&_IZetaNonEthNew.TransactOpts, spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_IZetaNonEthNew *IZetaNonEthNewTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.Approve(&_IZetaNonEthNew.TransactOpts, spender, value) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 amount) returns() +func (_IZetaNonEthNew *IZetaNonEthNewTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.contract.Transact(opts, "burnFrom", account, amount) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 amount) returns() +func (_IZetaNonEthNew *IZetaNonEthNewSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.BurnFrom(&_IZetaNonEthNew.TransactOpts, account, amount) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 amount) returns() +func (_IZetaNonEthNew *IZetaNonEthNewTransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.BurnFrom(&_IZetaNonEthNew.TransactOpts, account, amount) +} + +// Mint is a paid mutator transaction binding the contract method 0x1e458bee. +// +// Solidity: function mint(address mintee, uint256 value, bytes32 internalSendHash) returns() +func (_IZetaNonEthNew *IZetaNonEthNewTransactor) Mint(opts *bind.TransactOpts, mintee common.Address, value *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _IZetaNonEthNew.contract.Transact(opts, "mint", mintee, value, internalSendHash) +} + +// Mint is a paid mutator transaction binding the contract method 0x1e458bee. +// +// Solidity: function mint(address mintee, uint256 value, bytes32 internalSendHash) returns() +func (_IZetaNonEthNew *IZetaNonEthNewSession) Mint(mintee common.Address, value *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.Mint(&_IZetaNonEthNew.TransactOpts, mintee, value, internalSendHash) +} + +// Mint is a paid mutator transaction binding the contract method 0x1e458bee. +// +// Solidity: function mint(address mintee, uint256 value, bytes32 internalSendHash) returns() +func (_IZetaNonEthNew *IZetaNonEthNewTransactorSession) Mint(mintee common.Address, value *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.Mint(&_IZetaNonEthNew.TransactOpts, mintee, value, internalSendHash) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_IZetaNonEthNew *IZetaNonEthNewTransactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.contract.Transact(opts, "transfer", to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_IZetaNonEthNew *IZetaNonEthNewSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.Transfer(&_IZetaNonEthNew.TransactOpts, to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_IZetaNonEthNew *IZetaNonEthNewTransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.Transfer(&_IZetaNonEthNew.TransactOpts, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_IZetaNonEthNew *IZetaNonEthNewTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.contract.Transact(opts, "transferFrom", from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_IZetaNonEthNew *IZetaNonEthNewSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.TransferFrom(&_IZetaNonEthNew.TransactOpts, from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_IZetaNonEthNew *IZetaNonEthNewTransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _IZetaNonEthNew.Contract.TransferFrom(&_IZetaNonEthNew.TransactOpts, from, to, value) +} + +// IZetaNonEthNewApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IZetaNonEthNew contract. +type IZetaNonEthNewApprovalIterator struct { + Event *IZetaNonEthNewApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IZetaNonEthNewApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IZetaNonEthNewApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IZetaNonEthNewApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IZetaNonEthNewApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IZetaNonEthNewApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IZetaNonEthNewApproval represents a Approval event raised by the IZetaNonEthNew contract. +type IZetaNonEthNewApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IZetaNonEthNew *IZetaNonEthNewFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*IZetaNonEthNewApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _IZetaNonEthNew.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &IZetaNonEthNewApprovalIterator{contract: _IZetaNonEthNew.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IZetaNonEthNew *IZetaNonEthNewFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IZetaNonEthNewApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _IZetaNonEthNew.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IZetaNonEthNewApproval) + if err := _IZetaNonEthNew.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_IZetaNonEthNew *IZetaNonEthNewFilterer) ParseApproval(log types.Log) (*IZetaNonEthNewApproval, error) { + event := new(IZetaNonEthNewApproval) + if err := _IZetaNonEthNew.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IZetaNonEthNewTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IZetaNonEthNew contract. +type IZetaNonEthNewTransferIterator struct { + Event *IZetaNonEthNewTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IZetaNonEthNewTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IZetaNonEthNewTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IZetaNonEthNewTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IZetaNonEthNewTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IZetaNonEthNewTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IZetaNonEthNewTransfer represents a Transfer event raised by the IZetaNonEthNew contract. +type IZetaNonEthNewTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IZetaNonEthNew *IZetaNonEthNewFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*IZetaNonEthNewTransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IZetaNonEthNew.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &IZetaNonEthNewTransferIterator{contract: _IZetaNonEthNew.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IZetaNonEthNew *IZetaNonEthNewFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IZetaNonEthNewTransfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _IZetaNonEthNew.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IZetaNonEthNewTransfer) + if err := _IZetaNonEthNew.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_IZetaNonEthNew *IZetaNonEthNewFilterer) ParseTransfer(log types.Log) (*IZetaNonEthNewTransfer, error) { + event := new(IZetaNonEthNewTransfer) + if err := _IZetaNonEthNew.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/izrc20.sol/izrc20.go b/v2/pkg/izrc20.sol/izrc20.go new file mode 100644 index 00000000..bac67017 --- /dev/null +++ b/v2/pkg/izrc20.sol/izrc20.go @@ -0,0 +1,463 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package izrc20 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IZRC20MetaData contains all meta data concerning the IZRC20 contract. +var IZRC20MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"PROTOCOL_FLAT_FEE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawGasFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"}]", +} + +// IZRC20ABI is the input ABI used to generate the binding from. +// Deprecated: Use IZRC20MetaData.ABI instead. +var IZRC20ABI = IZRC20MetaData.ABI + +// IZRC20 is an auto generated Go binding around an Ethereum contract. +type IZRC20 struct { + IZRC20Caller // Read-only binding to the contract + IZRC20Transactor // Write-only binding to the contract + IZRC20Filterer // Log filterer for contract events +} + +// IZRC20Caller is an auto generated read-only Go binding around an Ethereum contract. +type IZRC20Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZRC20Transactor is an auto generated write-only Go binding around an Ethereum contract. +type IZRC20Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZRC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IZRC20Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZRC20Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IZRC20Session struct { + Contract *IZRC20 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IZRC20CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IZRC20CallerSession struct { + Contract *IZRC20Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IZRC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IZRC20TransactorSession struct { + Contract *IZRC20Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IZRC20Raw is an auto generated low-level Go binding around an Ethereum contract. +type IZRC20Raw struct { + Contract *IZRC20 // Generic contract binding to access the raw methods on +} + +// IZRC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IZRC20CallerRaw struct { + Contract *IZRC20Caller // Generic read-only contract binding to access the raw methods on +} + +// IZRC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IZRC20TransactorRaw struct { + Contract *IZRC20Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewIZRC20 creates a new instance of IZRC20, bound to a specific deployed contract. +func NewIZRC20(address common.Address, backend bind.ContractBackend) (*IZRC20, error) { + contract, err := bindIZRC20(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IZRC20{IZRC20Caller: IZRC20Caller{contract: contract}, IZRC20Transactor: IZRC20Transactor{contract: contract}, IZRC20Filterer: IZRC20Filterer{contract: contract}}, nil +} + +// NewIZRC20Caller creates a new read-only instance of IZRC20, bound to a specific deployed contract. +func NewIZRC20Caller(address common.Address, caller bind.ContractCaller) (*IZRC20Caller, error) { + contract, err := bindIZRC20(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IZRC20Caller{contract: contract}, nil +} + +// NewIZRC20Transactor creates a new write-only instance of IZRC20, bound to a specific deployed contract. +func NewIZRC20Transactor(address common.Address, transactor bind.ContractTransactor) (*IZRC20Transactor, error) { + contract, err := bindIZRC20(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IZRC20Transactor{contract: contract}, nil +} + +// NewIZRC20Filterer creates a new log filterer instance of IZRC20, bound to a specific deployed contract. +func NewIZRC20Filterer(address common.Address, filterer bind.ContractFilterer) (*IZRC20Filterer, error) { + contract, err := bindIZRC20(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IZRC20Filterer{contract: contract}, nil +} + +// bindIZRC20 binds a generic wrapper to an already deployed contract. +func bindIZRC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IZRC20MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IZRC20 *IZRC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IZRC20.Contract.IZRC20Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IZRC20 *IZRC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IZRC20.Contract.IZRC20Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IZRC20 *IZRC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IZRC20.Contract.IZRC20Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IZRC20 *IZRC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IZRC20.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IZRC20 *IZRC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IZRC20.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IZRC20 *IZRC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IZRC20.Contract.contract.Transact(opts, method, params...) +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_IZRC20 *IZRC20Caller) PROTOCOLFLATFEE(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IZRC20.contract.Call(opts, &out, "PROTOCOL_FLAT_FEE") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_IZRC20 *IZRC20Session) PROTOCOLFLATFEE() (*big.Int, error) { + return _IZRC20.Contract.PROTOCOLFLATFEE(&_IZRC20.CallOpts) +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_IZRC20 *IZRC20CallerSession) PROTOCOLFLATFEE() (*big.Int, error) { + return _IZRC20.Contract.PROTOCOLFLATFEE(&_IZRC20.CallOpts) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IZRC20 *IZRC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _IZRC20.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IZRC20 *IZRC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IZRC20.Contract.Allowance(&_IZRC20.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IZRC20 *IZRC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IZRC20.Contract.Allowance(&_IZRC20.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IZRC20 *IZRC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _IZRC20.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IZRC20 *IZRC20Session) BalanceOf(account common.Address) (*big.Int, error) { + return _IZRC20.Contract.BalanceOf(&_IZRC20.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IZRC20 *IZRC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IZRC20.Contract.BalanceOf(&_IZRC20.CallOpts, account) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IZRC20 *IZRC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IZRC20.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IZRC20 *IZRC20Session) TotalSupply() (*big.Int, error) { + return _IZRC20.Contract.TotalSupply(&_IZRC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IZRC20 *IZRC20CallerSession) TotalSupply() (*big.Int, error) { + return _IZRC20.Contract.TotalSupply(&_IZRC20.CallOpts) +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_IZRC20 *IZRC20Caller) WithdrawGasFee(opts *bind.CallOpts) (common.Address, *big.Int, error) { + var out []interface{} + err := _IZRC20.contract.Call(opts, &out, "withdrawGasFee") + + if err != nil { + return *new(common.Address), *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + out1 := *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) + + return out0, out1, err + +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_IZRC20 *IZRC20Session) WithdrawGasFee() (common.Address, *big.Int, error) { + return _IZRC20.Contract.WithdrawGasFee(&_IZRC20.CallOpts) +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_IZRC20 *IZRC20CallerSession) WithdrawGasFee() (common.Address, *big.Int, error) { + return _IZRC20.Contract.WithdrawGasFee(&_IZRC20.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.contract.Transact(opts, "approve", spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.Approve(&_IZRC20.TransactOpts, spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.Approve(&_IZRC20.TransactOpts, spender, amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Transactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.contract.Transact(opts, "burn", amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Session) Burn(amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.Burn(&_IZRC20.TransactOpts, amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_IZRC20 *IZRC20TransactorSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.Burn(&_IZRC20.TransactOpts, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Transactor) Deposit(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.contract.Transact(opts, "deposit", to, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Session) Deposit(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.Deposit(&_IZRC20.TransactOpts, to, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20TransactorSession) Deposit(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.Deposit(&_IZRC20.TransactOpts, to, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.contract.Transact(opts, "transfer", recipient, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.Transfer(&_IZRC20.TransactOpts, recipient, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.Transfer(&_IZRC20.TransactOpts, recipient, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.contract.Transact(opts, "transferFrom", sender, recipient, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.TransferFrom(&_IZRC20.TransactOpts, sender, recipient, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.TransferFrom(&_IZRC20.TransactOpts, sender, recipient, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Transactor) Withdraw(opts *bind.TransactOpts, to []byte, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.contract.Transact(opts, "withdraw", to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20Session) Withdraw(to []byte, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.Withdraw(&_IZRC20.TransactOpts, to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_IZRC20 *IZRC20TransactorSession) Withdraw(to []byte, amount *big.Int) (*types.Transaction, error) { + return _IZRC20.Contract.Withdraw(&_IZRC20.TransactOpts, to, amount) +} diff --git a/v2/pkg/izrc20.sol/izrc20metadata.go b/v2/pkg/izrc20.sol/izrc20metadata.go new file mode 100644 index 00000000..b153b402 --- /dev/null +++ b/v2/pkg/izrc20.sol/izrc20metadata.go @@ -0,0 +1,556 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package izrc20 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IZRC20MetadataMetaData contains all meta data concerning the IZRC20Metadata contract. +var IZRC20MetadataMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"PROTOCOL_FLAT_FEE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawGasFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"}]", +} + +// IZRC20MetadataABI is the input ABI used to generate the binding from. +// Deprecated: Use IZRC20MetadataMetaData.ABI instead. +var IZRC20MetadataABI = IZRC20MetadataMetaData.ABI + +// IZRC20Metadata is an auto generated Go binding around an Ethereum contract. +type IZRC20Metadata struct { + IZRC20MetadataCaller // Read-only binding to the contract + IZRC20MetadataTransactor // Write-only binding to the contract + IZRC20MetadataFilterer // Log filterer for contract events +} + +// IZRC20MetadataCaller is an auto generated read-only Go binding around an Ethereum contract. +type IZRC20MetadataCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZRC20MetadataTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IZRC20MetadataTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZRC20MetadataFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IZRC20MetadataFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IZRC20MetadataSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IZRC20MetadataSession struct { + Contract *IZRC20Metadata // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IZRC20MetadataCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IZRC20MetadataCallerSession struct { + Contract *IZRC20MetadataCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IZRC20MetadataTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IZRC20MetadataTransactorSession struct { + Contract *IZRC20MetadataTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IZRC20MetadataRaw is an auto generated low-level Go binding around an Ethereum contract. +type IZRC20MetadataRaw struct { + Contract *IZRC20Metadata // Generic contract binding to access the raw methods on +} + +// IZRC20MetadataCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IZRC20MetadataCallerRaw struct { + Contract *IZRC20MetadataCaller // Generic read-only contract binding to access the raw methods on +} + +// IZRC20MetadataTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IZRC20MetadataTransactorRaw struct { + Contract *IZRC20MetadataTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIZRC20Metadata creates a new instance of IZRC20Metadata, bound to a specific deployed contract. +func NewIZRC20Metadata(address common.Address, backend bind.ContractBackend) (*IZRC20Metadata, error) { + contract, err := bindIZRC20Metadata(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IZRC20Metadata{IZRC20MetadataCaller: IZRC20MetadataCaller{contract: contract}, IZRC20MetadataTransactor: IZRC20MetadataTransactor{contract: contract}, IZRC20MetadataFilterer: IZRC20MetadataFilterer{contract: contract}}, nil +} + +// NewIZRC20MetadataCaller creates a new read-only instance of IZRC20Metadata, bound to a specific deployed contract. +func NewIZRC20MetadataCaller(address common.Address, caller bind.ContractCaller) (*IZRC20MetadataCaller, error) { + contract, err := bindIZRC20Metadata(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IZRC20MetadataCaller{contract: contract}, nil +} + +// NewIZRC20MetadataTransactor creates a new write-only instance of IZRC20Metadata, bound to a specific deployed contract. +func NewIZRC20MetadataTransactor(address common.Address, transactor bind.ContractTransactor) (*IZRC20MetadataTransactor, error) { + contract, err := bindIZRC20Metadata(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IZRC20MetadataTransactor{contract: contract}, nil +} + +// NewIZRC20MetadataFilterer creates a new log filterer instance of IZRC20Metadata, bound to a specific deployed contract. +func NewIZRC20MetadataFilterer(address common.Address, filterer bind.ContractFilterer) (*IZRC20MetadataFilterer, error) { + contract, err := bindIZRC20Metadata(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IZRC20MetadataFilterer{contract: contract}, nil +} + +// bindIZRC20Metadata binds a generic wrapper to an already deployed contract. +func bindIZRC20Metadata(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IZRC20MetadataMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IZRC20Metadata *IZRC20MetadataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IZRC20Metadata.Contract.IZRC20MetadataCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IZRC20Metadata *IZRC20MetadataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.IZRC20MetadataTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IZRC20Metadata *IZRC20MetadataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.IZRC20MetadataTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IZRC20Metadata *IZRC20MetadataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IZRC20Metadata.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IZRC20Metadata *IZRC20MetadataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IZRC20Metadata *IZRC20MetadataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.contract.Transact(opts, method, params...) +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataCaller) PROTOCOLFLATFEE(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IZRC20Metadata.contract.Call(opts, &out, "PROTOCOL_FLAT_FEE") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataSession) PROTOCOLFLATFEE() (*big.Int, error) { + return _IZRC20Metadata.Contract.PROTOCOLFLATFEE(&_IZRC20Metadata.CallOpts) +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataCallerSession) PROTOCOLFLATFEE() (*big.Int, error) { + return _IZRC20Metadata.Contract.PROTOCOLFLATFEE(&_IZRC20Metadata.CallOpts) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _IZRC20Metadata.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IZRC20Metadata.Contract.Allowance(&_IZRC20Metadata.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _IZRC20Metadata.Contract.Allowance(&_IZRC20Metadata.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _IZRC20Metadata.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IZRC20Metadata.Contract.BalanceOf(&_IZRC20Metadata.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataCallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IZRC20Metadata.Contract.BalanceOf(&_IZRC20Metadata.CallOpts, account) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_IZRC20Metadata *IZRC20MetadataCaller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _IZRC20Metadata.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_IZRC20Metadata *IZRC20MetadataSession) Decimals() (uint8, error) { + return _IZRC20Metadata.Contract.Decimals(&_IZRC20Metadata.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_IZRC20Metadata *IZRC20MetadataCallerSession) Decimals() (uint8, error) { + return _IZRC20Metadata.Contract.Decimals(&_IZRC20Metadata.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_IZRC20Metadata *IZRC20MetadataCaller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _IZRC20Metadata.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_IZRC20Metadata *IZRC20MetadataSession) Name() (string, error) { + return _IZRC20Metadata.Contract.Name(&_IZRC20Metadata.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_IZRC20Metadata *IZRC20MetadataCallerSession) Name() (string, error) { + return _IZRC20Metadata.Contract.Name(&_IZRC20Metadata.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_IZRC20Metadata *IZRC20MetadataCaller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _IZRC20Metadata.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_IZRC20Metadata *IZRC20MetadataSession) Symbol() (string, error) { + return _IZRC20Metadata.Contract.Symbol(&_IZRC20Metadata.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_IZRC20Metadata *IZRC20MetadataCallerSession) Symbol() (string, error) { + return _IZRC20Metadata.Contract.Symbol(&_IZRC20Metadata.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IZRC20Metadata.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataSession) TotalSupply() (*big.Int, error) { + return _IZRC20Metadata.Contract.TotalSupply(&_IZRC20Metadata.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_IZRC20Metadata *IZRC20MetadataCallerSession) TotalSupply() (*big.Int, error) { + return _IZRC20Metadata.Contract.TotalSupply(&_IZRC20Metadata.CallOpts) +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_IZRC20Metadata *IZRC20MetadataCaller) WithdrawGasFee(opts *bind.CallOpts) (common.Address, *big.Int, error) { + var out []interface{} + err := _IZRC20Metadata.contract.Call(opts, &out, "withdrawGasFee") + + if err != nil { + return *new(common.Address), *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + out1 := *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) + + return out0, out1, err + +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_IZRC20Metadata *IZRC20MetadataSession) WithdrawGasFee() (common.Address, *big.Int, error) { + return _IZRC20Metadata.Contract.WithdrawGasFee(&_IZRC20Metadata.CallOpts) +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_IZRC20Metadata *IZRC20MetadataCallerSession) WithdrawGasFee() (common.Address, *big.Int, error) { + return _IZRC20Metadata.Contract.WithdrawGasFee(&_IZRC20Metadata.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.contract.Transact(opts, "approve", spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.Approve(&_IZRC20Metadata.TransactOpts, spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.Approve(&_IZRC20Metadata.TransactOpts, spender, amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.contract.Transact(opts, "burn", amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.Burn(&_IZRC20Metadata.TransactOpts, amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactorSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.Burn(&_IZRC20Metadata.TransactOpts, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactor) Deposit(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.contract.Transact(opts, "deposit", to, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataSession) Deposit(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.Deposit(&_IZRC20Metadata.TransactOpts, to, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactorSession) Deposit(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.Deposit(&_IZRC20Metadata.TransactOpts, to, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.contract.Transact(opts, "transfer", recipient, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.Transfer(&_IZRC20Metadata.TransactOpts, recipient, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.Transfer(&_IZRC20Metadata.TransactOpts, recipient, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.contract.Transact(opts, "transferFrom", sender, recipient, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.TransferFrom(&_IZRC20Metadata.TransactOpts, sender, recipient, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.TransferFrom(&_IZRC20Metadata.TransactOpts, sender, recipient, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactor) Withdraw(opts *bind.TransactOpts, to []byte, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.contract.Transact(opts, "withdraw", to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataSession) Withdraw(to []byte, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.Withdraw(&_IZRC20Metadata.TransactOpts, to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_IZRC20Metadata *IZRC20MetadataTransactorSession) Withdraw(to []byte, amount *big.Int) (*types.Transaction, error) { + return _IZRC20Metadata.Contract.Withdraw(&_IZRC20Metadata.TransactOpts, to, amount) +} diff --git a/v2/pkg/izrc20.sol/zrc20events.go b/v2/pkg/izrc20.sol/zrc20events.go new file mode 100644 index 00000000..76f02207 --- /dev/null +++ b/v2/pkg/izrc20.sol/zrc20events.go @@ -0,0 +1,1185 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package izrc20 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZRC20EventsMetaData contains all meta data concerning the ZRC20Events contract. +var ZRC20EventsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"from\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UpdatedGasLimit\",\"inputs\":[{\"name\":\"gasLimit\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UpdatedProtocolFlatFee\",\"inputs\":[{\"name\":\"protocolFlatFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UpdatedSystemContract\",\"inputs\":[{\"name\":\"systemContract\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"gasFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"protocolFlatFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", +} + +// ZRC20EventsABI is the input ABI used to generate the binding from. +// Deprecated: Use ZRC20EventsMetaData.ABI instead. +var ZRC20EventsABI = ZRC20EventsMetaData.ABI + +// ZRC20Events is an auto generated Go binding around an Ethereum contract. +type ZRC20Events struct { + ZRC20EventsCaller // Read-only binding to the contract + ZRC20EventsTransactor // Write-only binding to the contract + ZRC20EventsFilterer // Log filterer for contract events +} + +// ZRC20EventsCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZRC20EventsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20EventsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZRC20EventsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20EventsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZRC20EventsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20EventsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZRC20EventsSession struct { + Contract *ZRC20Events // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZRC20EventsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZRC20EventsCallerSession struct { + Contract *ZRC20EventsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZRC20EventsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZRC20EventsTransactorSession struct { + Contract *ZRC20EventsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZRC20EventsRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZRC20EventsRaw struct { + Contract *ZRC20Events // Generic contract binding to access the raw methods on +} + +// ZRC20EventsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZRC20EventsCallerRaw struct { + Contract *ZRC20EventsCaller // Generic read-only contract binding to access the raw methods on +} + +// ZRC20EventsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZRC20EventsTransactorRaw struct { + Contract *ZRC20EventsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZRC20Events creates a new instance of ZRC20Events, bound to a specific deployed contract. +func NewZRC20Events(address common.Address, backend bind.ContractBackend) (*ZRC20Events, error) { + contract, err := bindZRC20Events(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZRC20Events{ZRC20EventsCaller: ZRC20EventsCaller{contract: contract}, ZRC20EventsTransactor: ZRC20EventsTransactor{contract: contract}, ZRC20EventsFilterer: ZRC20EventsFilterer{contract: contract}}, nil +} + +// NewZRC20EventsCaller creates a new read-only instance of ZRC20Events, bound to a specific deployed contract. +func NewZRC20EventsCaller(address common.Address, caller bind.ContractCaller) (*ZRC20EventsCaller, error) { + contract, err := bindZRC20Events(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZRC20EventsCaller{contract: contract}, nil +} + +// NewZRC20EventsTransactor creates a new write-only instance of ZRC20Events, bound to a specific deployed contract. +func NewZRC20EventsTransactor(address common.Address, transactor bind.ContractTransactor) (*ZRC20EventsTransactor, error) { + contract, err := bindZRC20Events(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZRC20EventsTransactor{contract: contract}, nil +} + +// NewZRC20EventsFilterer creates a new log filterer instance of ZRC20Events, bound to a specific deployed contract. +func NewZRC20EventsFilterer(address common.Address, filterer bind.ContractFilterer) (*ZRC20EventsFilterer, error) { + contract, err := bindZRC20Events(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZRC20EventsFilterer{contract: contract}, nil +} + +// bindZRC20Events binds a generic wrapper to an already deployed contract. +func bindZRC20Events(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZRC20EventsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZRC20Events *ZRC20EventsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZRC20Events.Contract.ZRC20EventsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZRC20Events *ZRC20EventsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZRC20Events.Contract.ZRC20EventsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZRC20Events *ZRC20EventsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZRC20Events.Contract.ZRC20EventsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZRC20Events *ZRC20EventsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZRC20Events.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZRC20Events *ZRC20EventsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZRC20Events.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZRC20Events *ZRC20EventsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZRC20Events.Contract.contract.Transact(opts, method, params...) +} + +// ZRC20EventsApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ZRC20Events contract. +type ZRC20EventsApprovalIterator struct { + Event *ZRC20EventsApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20EventsApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20EventsApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20EventsApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20EventsApproval represents a Approval event raised by the ZRC20Events contract. +type ZRC20EventsApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZRC20Events *ZRC20EventsFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ZRC20EventsApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ZRC20Events.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &ZRC20EventsApprovalIterator{contract: _ZRC20Events.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZRC20Events *ZRC20EventsFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ZRC20EventsApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ZRC20Events.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20EventsApproval) + if err := _ZRC20Events.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZRC20Events *ZRC20EventsFilterer) ParseApproval(log types.Log) (*ZRC20EventsApproval, error) { + event := new(ZRC20EventsApproval) + if err := _ZRC20Events.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20EventsDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the ZRC20Events contract. +type ZRC20EventsDepositIterator struct { + Event *ZRC20EventsDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20EventsDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20EventsDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20EventsDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20EventsDeposit represents a Deposit event raised by the ZRC20Events contract. +type ZRC20EventsDeposit struct { + From []byte + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3. +// +// Solidity: event Deposit(bytes from, address indexed to, uint256 value) +func (_ZRC20Events *ZRC20EventsFilterer) FilterDeposit(opts *bind.FilterOpts, to []common.Address) (*ZRC20EventsDepositIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZRC20Events.contract.FilterLogs(opts, "Deposit", toRule) + if err != nil { + return nil, err + } + return &ZRC20EventsDepositIterator{contract: _ZRC20Events.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3. +// +// Solidity: event Deposit(bytes from, address indexed to, uint256 value) +func (_ZRC20Events *ZRC20EventsFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *ZRC20EventsDeposit, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZRC20Events.contract.WatchLogs(opts, "Deposit", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20EventsDeposit) + if err := _ZRC20Events.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3. +// +// Solidity: event Deposit(bytes from, address indexed to, uint256 value) +func (_ZRC20Events *ZRC20EventsFilterer) ParseDeposit(log types.Log) (*ZRC20EventsDeposit, error) { + event := new(ZRC20EventsDeposit) + if err := _ZRC20Events.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20EventsTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ZRC20Events contract. +type ZRC20EventsTransferIterator struct { + Event *ZRC20EventsTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20EventsTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20EventsTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20EventsTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20EventsTransfer represents a Transfer event raised by the ZRC20Events contract. +type ZRC20EventsTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZRC20Events *ZRC20EventsFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ZRC20EventsTransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZRC20Events.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &ZRC20EventsTransferIterator{contract: _ZRC20Events.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZRC20Events *ZRC20EventsFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ZRC20EventsTransfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZRC20Events.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20EventsTransfer) + if err := _ZRC20Events.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZRC20Events *ZRC20EventsFilterer) ParseTransfer(log types.Log) (*ZRC20EventsTransfer, error) { + event := new(ZRC20EventsTransfer) + if err := _ZRC20Events.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20EventsUpdatedGasLimitIterator is returned from FilterUpdatedGasLimit and is used to iterate over the raw logs and unpacked data for UpdatedGasLimit events raised by the ZRC20Events contract. +type ZRC20EventsUpdatedGasLimitIterator struct { + Event *ZRC20EventsUpdatedGasLimit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20EventsUpdatedGasLimitIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsUpdatedGasLimit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsUpdatedGasLimit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20EventsUpdatedGasLimitIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20EventsUpdatedGasLimitIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20EventsUpdatedGasLimit represents a UpdatedGasLimit event raised by the ZRC20Events contract. +type ZRC20EventsUpdatedGasLimit struct { + GasLimit *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpdatedGasLimit is a free log retrieval operation binding the contract event 0xff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a. +// +// Solidity: event UpdatedGasLimit(uint256 gasLimit) +func (_ZRC20Events *ZRC20EventsFilterer) FilterUpdatedGasLimit(opts *bind.FilterOpts) (*ZRC20EventsUpdatedGasLimitIterator, error) { + + logs, sub, err := _ZRC20Events.contract.FilterLogs(opts, "UpdatedGasLimit") + if err != nil { + return nil, err + } + return &ZRC20EventsUpdatedGasLimitIterator{contract: _ZRC20Events.contract, event: "UpdatedGasLimit", logs: logs, sub: sub}, nil +} + +// WatchUpdatedGasLimit is a free log subscription operation binding the contract event 0xff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a. +// +// Solidity: event UpdatedGasLimit(uint256 gasLimit) +func (_ZRC20Events *ZRC20EventsFilterer) WatchUpdatedGasLimit(opts *bind.WatchOpts, sink chan<- *ZRC20EventsUpdatedGasLimit) (event.Subscription, error) { + + logs, sub, err := _ZRC20Events.contract.WatchLogs(opts, "UpdatedGasLimit") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20EventsUpdatedGasLimit) + if err := _ZRC20Events.contract.UnpackLog(event, "UpdatedGasLimit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpdatedGasLimit is a log parse operation binding the contract event 0xff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a. +// +// Solidity: event UpdatedGasLimit(uint256 gasLimit) +func (_ZRC20Events *ZRC20EventsFilterer) ParseUpdatedGasLimit(log types.Log) (*ZRC20EventsUpdatedGasLimit, error) { + event := new(ZRC20EventsUpdatedGasLimit) + if err := _ZRC20Events.contract.UnpackLog(event, "UpdatedGasLimit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20EventsUpdatedProtocolFlatFeeIterator is returned from FilterUpdatedProtocolFlatFee and is used to iterate over the raw logs and unpacked data for UpdatedProtocolFlatFee events raised by the ZRC20Events contract. +type ZRC20EventsUpdatedProtocolFlatFeeIterator struct { + Event *ZRC20EventsUpdatedProtocolFlatFee // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20EventsUpdatedProtocolFlatFeeIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsUpdatedProtocolFlatFee) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsUpdatedProtocolFlatFee) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20EventsUpdatedProtocolFlatFeeIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20EventsUpdatedProtocolFlatFeeIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20EventsUpdatedProtocolFlatFee represents a UpdatedProtocolFlatFee event raised by the ZRC20Events contract. +type ZRC20EventsUpdatedProtocolFlatFee struct { + ProtocolFlatFee *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpdatedProtocolFlatFee is a free log retrieval operation binding the contract event 0xef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f. +// +// Solidity: event UpdatedProtocolFlatFee(uint256 protocolFlatFee) +func (_ZRC20Events *ZRC20EventsFilterer) FilterUpdatedProtocolFlatFee(opts *bind.FilterOpts) (*ZRC20EventsUpdatedProtocolFlatFeeIterator, error) { + + logs, sub, err := _ZRC20Events.contract.FilterLogs(opts, "UpdatedProtocolFlatFee") + if err != nil { + return nil, err + } + return &ZRC20EventsUpdatedProtocolFlatFeeIterator{contract: _ZRC20Events.contract, event: "UpdatedProtocolFlatFee", logs: logs, sub: sub}, nil +} + +// WatchUpdatedProtocolFlatFee is a free log subscription operation binding the contract event 0xef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f. +// +// Solidity: event UpdatedProtocolFlatFee(uint256 protocolFlatFee) +func (_ZRC20Events *ZRC20EventsFilterer) WatchUpdatedProtocolFlatFee(opts *bind.WatchOpts, sink chan<- *ZRC20EventsUpdatedProtocolFlatFee) (event.Subscription, error) { + + logs, sub, err := _ZRC20Events.contract.WatchLogs(opts, "UpdatedProtocolFlatFee") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20EventsUpdatedProtocolFlatFee) + if err := _ZRC20Events.contract.UnpackLog(event, "UpdatedProtocolFlatFee", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpdatedProtocolFlatFee is a log parse operation binding the contract event 0xef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f. +// +// Solidity: event UpdatedProtocolFlatFee(uint256 protocolFlatFee) +func (_ZRC20Events *ZRC20EventsFilterer) ParseUpdatedProtocolFlatFee(log types.Log) (*ZRC20EventsUpdatedProtocolFlatFee, error) { + event := new(ZRC20EventsUpdatedProtocolFlatFee) + if err := _ZRC20Events.contract.UnpackLog(event, "UpdatedProtocolFlatFee", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20EventsUpdatedSystemContractIterator is returned from FilterUpdatedSystemContract and is used to iterate over the raw logs and unpacked data for UpdatedSystemContract events raised by the ZRC20Events contract. +type ZRC20EventsUpdatedSystemContractIterator struct { + Event *ZRC20EventsUpdatedSystemContract // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20EventsUpdatedSystemContractIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsUpdatedSystemContract) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsUpdatedSystemContract) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20EventsUpdatedSystemContractIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20EventsUpdatedSystemContractIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20EventsUpdatedSystemContract represents a UpdatedSystemContract event raised by the ZRC20Events contract. +type ZRC20EventsUpdatedSystemContract struct { + SystemContract common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpdatedSystemContract is a free log retrieval operation binding the contract event 0xd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae. +// +// Solidity: event UpdatedSystemContract(address systemContract) +func (_ZRC20Events *ZRC20EventsFilterer) FilterUpdatedSystemContract(opts *bind.FilterOpts) (*ZRC20EventsUpdatedSystemContractIterator, error) { + + logs, sub, err := _ZRC20Events.contract.FilterLogs(opts, "UpdatedSystemContract") + if err != nil { + return nil, err + } + return &ZRC20EventsUpdatedSystemContractIterator{contract: _ZRC20Events.contract, event: "UpdatedSystemContract", logs: logs, sub: sub}, nil +} + +// WatchUpdatedSystemContract is a free log subscription operation binding the contract event 0xd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae. +// +// Solidity: event UpdatedSystemContract(address systemContract) +func (_ZRC20Events *ZRC20EventsFilterer) WatchUpdatedSystemContract(opts *bind.WatchOpts, sink chan<- *ZRC20EventsUpdatedSystemContract) (event.Subscription, error) { + + logs, sub, err := _ZRC20Events.contract.WatchLogs(opts, "UpdatedSystemContract") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20EventsUpdatedSystemContract) + if err := _ZRC20Events.contract.UnpackLog(event, "UpdatedSystemContract", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpdatedSystemContract is a log parse operation binding the contract event 0xd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae. +// +// Solidity: event UpdatedSystemContract(address systemContract) +func (_ZRC20Events *ZRC20EventsFilterer) ParseUpdatedSystemContract(log types.Log) (*ZRC20EventsUpdatedSystemContract, error) { + event := new(ZRC20EventsUpdatedSystemContract) + if err := _ZRC20Events.contract.UnpackLog(event, "UpdatedSystemContract", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20EventsWithdrawalIterator is returned from FilterWithdrawal and is used to iterate over the raw logs and unpacked data for Withdrawal events raised by the ZRC20Events contract. +type ZRC20EventsWithdrawalIterator struct { + Event *ZRC20EventsWithdrawal // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20EventsWithdrawalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20EventsWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20EventsWithdrawalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20EventsWithdrawalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20EventsWithdrawal represents a Withdrawal event raised by the ZRC20Events contract. +type ZRC20EventsWithdrawal struct { + From common.Address + To []byte + Value *big.Int + GasFee *big.Int + ProtocolFlatFee *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawal is a free log retrieval operation binding the contract event 0x9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955. +// +// Solidity: event Withdrawal(address indexed from, bytes to, uint256 value, uint256 gasFee, uint256 protocolFlatFee) +func (_ZRC20Events *ZRC20EventsFilterer) FilterWithdrawal(opts *bind.FilterOpts, from []common.Address) (*ZRC20EventsWithdrawalIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _ZRC20Events.contract.FilterLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return &ZRC20EventsWithdrawalIterator{contract: _ZRC20Events.contract, event: "Withdrawal", logs: logs, sub: sub}, nil +} + +// WatchWithdrawal is a free log subscription operation binding the contract event 0x9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955. +// +// Solidity: event Withdrawal(address indexed from, bytes to, uint256 value, uint256 gasFee, uint256 protocolFlatFee) +func (_ZRC20Events *ZRC20EventsFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *ZRC20EventsWithdrawal, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _ZRC20Events.contract.WatchLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20EventsWithdrawal) + if err := _ZRC20Events.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawal is a log parse operation binding the contract event 0x9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955. +// +// Solidity: event Withdrawal(address indexed from, bytes to, uint256 value, uint256 gasFee, uint256 protocolFlatFee) +func (_ZRC20Events *ZRC20EventsFilterer) ParseWithdrawal(log types.Log) (*ZRC20EventsWithdrawal, error) { + event := new(ZRC20EventsWithdrawal) + if err := _ZRC20Events.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/math.sol/math.go b/v2/pkg/math.sol/math.go new file mode 100644 index 00000000..024b7c04 --- /dev/null +++ b/v2/pkg/math.sol/math.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package math + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// MathMetaData contains all meta data concerning the Math contract. +var MathMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"MathOverflowedMulDiv\",\"inputs\":[]}]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0b270b0be59fe690f25903756d3c17b6ea12af9948ddfe45caafa979d407cf964736f6c634300081a0033", +} + +// MathABI is the input ABI used to generate the binding from. +// Deprecated: Use MathMetaData.ABI instead. +var MathABI = MathMetaData.ABI + +// MathBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use MathMetaData.Bin instead. +var MathBin = MathMetaData.Bin + +// DeployMath deploys a new Ethereum contract, binding an instance of Math to it. +func DeployMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Math, error) { + parsed, err := MathMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(MathBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Math{MathCaller: MathCaller{contract: contract}, MathTransactor: MathTransactor{contract: contract}, MathFilterer: MathFilterer{contract: contract}}, nil +} + +// Math is an auto generated Go binding around an Ethereum contract. +type Math struct { + MathCaller // Read-only binding to the contract + MathTransactor // Write-only binding to the contract + MathFilterer // Log filterer for contract events +} + +// MathCaller is an auto generated read-only Go binding around an Ethereum contract. +type MathCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MathTransactor is an auto generated write-only Go binding around an Ethereum contract. +type MathTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MathFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type MathFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MathSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type MathSession struct { + Contract *Math // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MathCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type MathCallerSession struct { + Contract *MathCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// MathTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type MathTransactorSession struct { + Contract *MathTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MathRaw is an auto generated low-level Go binding around an Ethereum contract. +type MathRaw struct { + Contract *Math // Generic contract binding to access the raw methods on +} + +// MathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type MathCallerRaw struct { + Contract *MathCaller // Generic read-only contract binding to access the raw methods on +} + +// MathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type MathTransactorRaw struct { + Contract *MathTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewMath creates a new instance of Math, bound to a specific deployed contract. +func NewMath(address common.Address, backend bind.ContractBackend) (*Math, error) { + contract, err := bindMath(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Math{MathCaller: MathCaller{contract: contract}, MathTransactor: MathTransactor{contract: contract}, MathFilterer: MathFilterer{contract: contract}}, nil +} + +// NewMathCaller creates a new read-only instance of Math, bound to a specific deployed contract. +func NewMathCaller(address common.Address, caller bind.ContractCaller) (*MathCaller, error) { + contract, err := bindMath(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &MathCaller{contract: contract}, nil +} + +// NewMathTransactor creates a new write-only instance of Math, bound to a specific deployed contract. +func NewMathTransactor(address common.Address, transactor bind.ContractTransactor) (*MathTransactor, error) { + contract, err := bindMath(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &MathTransactor{contract: contract}, nil +} + +// NewMathFilterer creates a new log filterer instance of Math, bound to a specific deployed contract. +func NewMathFilterer(address common.Address, filterer bind.ContractFilterer) (*MathFilterer, error) { + contract, err := bindMath(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &MathFilterer{contract: contract}, nil +} + +// bindMath binds a generic wrapper to an already deployed contract. +func bindMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := MathMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Math *MathRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Math.Contract.MathCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Math *MathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Math.Contract.MathTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Math *MathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Math.Contract.MathTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Math *MathCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Math.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Math *MathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Math.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Math *MathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Math.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/mockerc20.sol/mockerc20.go b/v2/pkg/mockerc20.sol/mockerc20.go new file mode 100644 index 00000000..1f23395f --- /dev/null +++ b/v2/pkg/mockerc20.sol/mockerc20.go @@ -0,0 +1,864 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package mockerc20 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// MockERC20MetaData contains all meta data concerning the MockERC20 contract. +var MockERC20MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"name_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"symbol_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"decimals_\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"nonces\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permit\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"deadline\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", + Bin: "0x6080604052348015600f57600080fd5b5061113e8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101d2578063a9059cbb146101da578063d505accf146101ed578063dd62ed3e1461020057600080fd5b80633644e5151461017457806370a082311461017c5780637ecebe00146101b257600080fd5b806318160ddd116100bd57806318160ddd1461013a57806323b872dd1461014c578063313ce5671461015f57600080fd5b806306fdde03146100e4578063095ea7b3146101025780631624f6c614610125575b600080fd5b6100ec610246565b6040516100f99190610b6b565b60405180910390f35b610115610110366004610be2565b6102d8565b60405190151581526020016100f9565b610138610133366004610cdc565b610352565b005b6003545b6040519081526020016100f9565b61011561015a366004610d55565b610451565b60025460405160ff90911681526020016100f9565b61013e6105c5565b61013e61018a366004610d92565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b61013e6101c0366004610d92565b60086020526000908152604090205481565b6100ec6105eb565b6101156101e8366004610be2565b6105fa565b6101386101fb366004610dad565b6106ab565b61013e61020e366004610e18565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b60606000805461025590610e4b565b80601f016020809104026020016040519081016040528092919081815260200182805461028190610e4b565b80156102ce5780601f106102a3576101008083540402835291602001916102ce565b820191906000526020600020905b8154815290600101906020018083116102b157829003601f168201915b5050505050905090565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103409086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b60006103d08482610eed565b5060016103dd8382610eed565b50600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff83161790556104136109b5565b60065561041e6109ce565b6007555050600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b73ffffffffffffffffffffffffffffffffffffffff831660009081526005602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146104e5576104b38184610a71565b73ffffffffffffffffffffffffffffffffffffffff861660009081526005602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460205260409020546105159084610a71565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526004602052604080822093909355908616815220546105519084610aee565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105b29087815260200190565b60405180910390a3506001949350505050565b60006006546105d26109b5565b146105e4576105df6109ce565b905090565b5060075490565b60606001805461025590610e4b565b336000908152600460205260408120546106149083610a71565b336000908152600460205260408082209290925573ffffffffffffffffffffffffffffffffffffffff85168152205461064d9083610aee565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103409086815260200190565b42841015610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016103bb565b600060016107216105c5565b73ffffffffffffffffffffffffffffffffffffffff8a16600090815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061077c83611017565b9091555060408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810188905260e0016040516020818303038152906040528051906020012060405160200161081d9291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561087b573d6000803e3d6000fd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906108d857508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61093e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016103bb565b73ffffffffffffffffffffffffffffffffffffffff81811660009081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b6000610b67806109c763ffffffff8216565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610a00919061104f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6610a316109b5565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600081831015610add576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f770000000060448201526064016103bb565b610ae782846110e2565b9392505050565b600080610afb83856110f5565b905083811015610ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f77000000000000000060448201526064016103bb565b4690565b602081526000825180602084015260005b81811015610b995760208186018101516040868401015201610b7c565b506000604082850101526040601f19601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bdd57600080fd5b919050565b60008060408385031215610bf557600080fd5b610bfe83610bb9565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610c4c57600080fd5b813567ffffffffffffffff811115610c6657610c66610c0c565b604051601f19603f601f19601f8501160116810181811067ffffffffffffffff82111715610c9657610c96610c0c565b604052818152838201602001851015610cae57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114610bdd57600080fd5b600080600060608486031215610cf157600080fd5b833567ffffffffffffffff811115610d0857600080fd5b610d1486828701610c3b565b935050602084013567ffffffffffffffff811115610d3157600080fd5b610d3d86828701610c3b565b925050610d4c60408501610ccb565b90509250925092565b600080600060608486031215610d6a57600080fd5b610d7384610bb9565b9250610d8160208501610bb9565b929592945050506040919091013590565b600060208284031215610da457600080fd5b610ae782610bb9565b600080600080600080600060e0888a031215610dc857600080fd5b610dd188610bb9565b9650610ddf60208901610bb9565b95506040880135945060608801359350610dfb60808901610ccb565b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610e2b57600080fd5b610e3483610bb9565b9150610e4260208401610bb9565b90509250929050565b600181811c90821680610e5f57607f821691505b602082108103610e98577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610ee857806000526020600020601f840160051c81016020851015610ec55750805b601f840160051c820191505b81811015610ee55760008155600101610ed1565b50505b505050565b815167ffffffffffffffff811115610f0757610f07610c0c565b610f1b81610f158454610e4b565b84610e9e565b6020601f821160018114610f6d5760008315610f375750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455610ee5565b600084815260208120601f198516915b82811015610f9d5787850151825560209485019460019092019101610f7d565b5084821015610fd957868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361104857611048610fe8565b5060010190565b600080835461105d81610e4b565b60018216801561107457600181146110a7576110d7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00831686528115158202860193506110d7565b86600052602060002060005b838110156110cf578154888201526001909101906020016110b3565b505081860193505b509195945050505050565b8181038181111561034c5761034c610fe8565b8082018082111561034c5761034c610fe856fea2646970667358221220851d97dae90e79fa61b9e1ffe627628587a83f0e58ff9e31aa3727a08c88fd7d64736f6c634300081a0033", +} + +// MockERC20ABI is the input ABI used to generate the binding from. +// Deprecated: Use MockERC20MetaData.ABI instead. +var MockERC20ABI = MockERC20MetaData.ABI + +// MockERC20Bin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use MockERC20MetaData.Bin instead. +var MockERC20Bin = MockERC20MetaData.Bin + +// DeployMockERC20 deploys a new Ethereum contract, binding an instance of MockERC20 to it. +func DeployMockERC20(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *MockERC20, error) { + parsed, err := MockERC20MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(MockERC20Bin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &MockERC20{MockERC20Caller: MockERC20Caller{contract: contract}, MockERC20Transactor: MockERC20Transactor{contract: contract}, MockERC20Filterer: MockERC20Filterer{contract: contract}}, nil +} + +// MockERC20 is an auto generated Go binding around an Ethereum contract. +type MockERC20 struct { + MockERC20Caller // Read-only binding to the contract + MockERC20Transactor // Write-only binding to the contract + MockERC20Filterer // Log filterer for contract events +} + +// MockERC20Caller is an auto generated read-only Go binding around an Ethereum contract. +type MockERC20Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MockERC20Transactor is an auto generated write-only Go binding around an Ethereum contract. +type MockERC20Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MockERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type MockERC20Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MockERC20Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type MockERC20Session struct { + Contract *MockERC20 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MockERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type MockERC20CallerSession struct { + Contract *MockERC20Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// MockERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type MockERC20TransactorSession struct { + Contract *MockERC20Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MockERC20Raw is an auto generated low-level Go binding around an Ethereum contract. +type MockERC20Raw struct { + Contract *MockERC20 // Generic contract binding to access the raw methods on +} + +// MockERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type MockERC20CallerRaw struct { + Contract *MockERC20Caller // Generic read-only contract binding to access the raw methods on +} + +// MockERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type MockERC20TransactorRaw struct { + Contract *MockERC20Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewMockERC20 creates a new instance of MockERC20, bound to a specific deployed contract. +func NewMockERC20(address common.Address, backend bind.ContractBackend) (*MockERC20, error) { + contract, err := bindMockERC20(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &MockERC20{MockERC20Caller: MockERC20Caller{contract: contract}, MockERC20Transactor: MockERC20Transactor{contract: contract}, MockERC20Filterer: MockERC20Filterer{contract: contract}}, nil +} + +// NewMockERC20Caller creates a new read-only instance of MockERC20, bound to a specific deployed contract. +func NewMockERC20Caller(address common.Address, caller bind.ContractCaller) (*MockERC20Caller, error) { + contract, err := bindMockERC20(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &MockERC20Caller{contract: contract}, nil +} + +// NewMockERC20Transactor creates a new write-only instance of MockERC20, bound to a specific deployed contract. +func NewMockERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*MockERC20Transactor, error) { + contract, err := bindMockERC20(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &MockERC20Transactor{contract: contract}, nil +} + +// NewMockERC20Filterer creates a new log filterer instance of MockERC20, bound to a specific deployed contract. +func NewMockERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*MockERC20Filterer, error) { + contract, err := bindMockERC20(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &MockERC20Filterer{contract: contract}, nil +} + +// bindMockERC20 binds a generic wrapper to an already deployed contract. +func bindMockERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := MockERC20MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_MockERC20 *MockERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _MockERC20.Contract.MockERC20Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_MockERC20 *MockERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _MockERC20.Contract.MockERC20Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_MockERC20 *MockERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _MockERC20.Contract.MockERC20Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_MockERC20 *MockERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _MockERC20.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_MockERC20 *MockERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _MockERC20.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_MockERC20 *MockERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _MockERC20.Contract.contract.Transact(opts, method, params...) +} + +// DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. +// +// Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) +func (_MockERC20 *MockERC20Caller) DOMAINSEPARATOR(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _MockERC20.contract.Call(opts, &out, "DOMAIN_SEPARATOR") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. +// +// Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) +func (_MockERC20 *MockERC20Session) DOMAINSEPARATOR() ([32]byte, error) { + return _MockERC20.Contract.DOMAINSEPARATOR(&_MockERC20.CallOpts) +} + +// DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. +// +// Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) +func (_MockERC20 *MockERC20CallerSession) DOMAINSEPARATOR() ([32]byte, error) { + return _MockERC20.Contract.DOMAINSEPARATOR(&_MockERC20.CallOpts) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_MockERC20 *MockERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _MockERC20.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_MockERC20 *MockERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _MockERC20.Contract.Allowance(&_MockERC20.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_MockERC20 *MockERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _MockERC20.Contract.Allowance(&_MockERC20.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address owner) view returns(uint256) +func (_MockERC20 *MockERC20Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { + var out []interface{} + err := _MockERC20.contract.Call(opts, &out, "balanceOf", owner) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address owner) view returns(uint256) +func (_MockERC20 *MockERC20Session) BalanceOf(owner common.Address) (*big.Int, error) { + return _MockERC20.Contract.BalanceOf(&_MockERC20.CallOpts, owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address owner) view returns(uint256) +func (_MockERC20 *MockERC20CallerSession) BalanceOf(owner common.Address) (*big.Int, error) { + return _MockERC20.Contract.BalanceOf(&_MockERC20.CallOpts, owner) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_MockERC20 *MockERC20Caller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _MockERC20.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_MockERC20 *MockERC20Session) Decimals() (uint8, error) { + return _MockERC20.Contract.Decimals(&_MockERC20.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_MockERC20 *MockERC20CallerSession) Decimals() (uint8, error) { + return _MockERC20.Contract.Decimals(&_MockERC20.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_MockERC20 *MockERC20Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _MockERC20.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_MockERC20 *MockERC20Session) Name() (string, error) { + return _MockERC20.Contract.Name(&_MockERC20.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_MockERC20 *MockERC20CallerSession) Name() (string, error) { + return _MockERC20.Contract.Name(&_MockERC20.CallOpts) +} + +// Nonces is a free data retrieval call binding the contract method 0x7ecebe00. +// +// Solidity: function nonces(address ) view returns(uint256) +func (_MockERC20 *MockERC20Caller) Nonces(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _MockERC20.contract.Call(opts, &out, "nonces", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Nonces is a free data retrieval call binding the contract method 0x7ecebe00. +// +// Solidity: function nonces(address ) view returns(uint256) +func (_MockERC20 *MockERC20Session) Nonces(arg0 common.Address) (*big.Int, error) { + return _MockERC20.Contract.Nonces(&_MockERC20.CallOpts, arg0) +} + +// Nonces is a free data retrieval call binding the contract method 0x7ecebe00. +// +// Solidity: function nonces(address ) view returns(uint256) +func (_MockERC20 *MockERC20CallerSession) Nonces(arg0 common.Address) (*big.Int, error) { + return _MockERC20.Contract.Nonces(&_MockERC20.CallOpts, arg0) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_MockERC20 *MockERC20Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _MockERC20.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_MockERC20 *MockERC20Session) Symbol() (string, error) { + return _MockERC20.Contract.Symbol(&_MockERC20.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_MockERC20 *MockERC20CallerSession) Symbol() (string, error) { + return _MockERC20.Contract.Symbol(&_MockERC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_MockERC20 *MockERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _MockERC20.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_MockERC20 *MockERC20Session) TotalSupply() (*big.Int, error) { + return _MockERC20.Contract.TotalSupply(&_MockERC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_MockERC20 *MockERC20CallerSession) TotalSupply() (*big.Int, error) { + return _MockERC20.Contract.TotalSupply(&_MockERC20.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_MockERC20 *MockERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _MockERC20.contract.Transact(opts, "approve", spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_MockERC20 *MockERC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _MockERC20.Contract.Approve(&_MockERC20.TransactOpts, spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_MockERC20 *MockERC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _MockERC20.Contract.Approve(&_MockERC20.TransactOpts, spender, amount) +} + +// Initialize is a paid mutator transaction binding the contract method 0x1624f6c6. +// +// Solidity: function initialize(string name_, string symbol_, uint8 decimals_) returns() +func (_MockERC20 *MockERC20Transactor) Initialize(opts *bind.TransactOpts, name_ string, symbol_ string, decimals_ uint8) (*types.Transaction, error) { + return _MockERC20.contract.Transact(opts, "initialize", name_, symbol_, decimals_) +} + +// Initialize is a paid mutator transaction binding the contract method 0x1624f6c6. +// +// Solidity: function initialize(string name_, string symbol_, uint8 decimals_) returns() +func (_MockERC20 *MockERC20Session) Initialize(name_ string, symbol_ string, decimals_ uint8) (*types.Transaction, error) { + return _MockERC20.Contract.Initialize(&_MockERC20.TransactOpts, name_, symbol_, decimals_) +} + +// Initialize is a paid mutator transaction binding the contract method 0x1624f6c6. +// +// Solidity: function initialize(string name_, string symbol_, uint8 decimals_) returns() +func (_MockERC20 *MockERC20TransactorSession) Initialize(name_ string, symbol_ string, decimals_ uint8) (*types.Transaction, error) { + return _MockERC20.Contract.Initialize(&_MockERC20.TransactOpts, name_, symbol_, decimals_) +} + +// Permit is a paid mutator transaction binding the contract method 0xd505accf. +// +// Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns() +func (_MockERC20 *MockERC20Transactor) Permit(opts *bind.TransactOpts, owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) { + return _MockERC20.contract.Transact(opts, "permit", owner, spender, value, deadline, v, r, s) +} + +// Permit is a paid mutator transaction binding the contract method 0xd505accf. +// +// Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns() +func (_MockERC20 *MockERC20Session) Permit(owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) { + return _MockERC20.Contract.Permit(&_MockERC20.TransactOpts, owner, spender, value, deadline, v, r, s) +} + +// Permit is a paid mutator transaction binding the contract method 0xd505accf. +// +// Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns() +func (_MockERC20 *MockERC20TransactorSession) Permit(owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) { + return _MockERC20.Contract.Permit(&_MockERC20.TransactOpts, owner, spender, value, deadline, v, r, s) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_MockERC20 *MockERC20Transactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MockERC20.contract.Transact(opts, "transfer", to, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_MockERC20 *MockERC20Session) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MockERC20.Contract.Transfer(&_MockERC20.TransactOpts, to, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_MockERC20 *MockERC20TransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MockERC20.Contract.Transfer(&_MockERC20.TransactOpts, to, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_MockERC20 *MockERC20Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MockERC20.contract.Transact(opts, "transferFrom", from, to, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_MockERC20 *MockERC20Session) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MockERC20.Contract.TransferFrom(&_MockERC20.TransactOpts, from, to, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_MockERC20 *MockERC20TransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MockERC20.Contract.TransferFrom(&_MockERC20.TransactOpts, from, to, amount) +} + +// MockERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the MockERC20 contract. +type MockERC20ApprovalIterator struct { + Event *MockERC20Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MockERC20ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MockERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MockERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MockERC20ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MockERC20ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MockERC20Approval represents a Approval event raised by the MockERC20 contract. +type MockERC20Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_MockERC20 *MockERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*MockERC20ApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _MockERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &MockERC20ApprovalIterator{contract: _MockERC20.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_MockERC20 *MockERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *MockERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _MockERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MockERC20Approval) + if err := _MockERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_MockERC20 *MockERC20Filterer) ParseApproval(log types.Log) (*MockERC20Approval, error) { + event := new(MockERC20Approval) + if err := _MockERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// MockERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the MockERC20 contract. +type MockERC20TransferIterator struct { + Event *MockERC20Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MockERC20TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MockERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MockERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MockERC20TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MockERC20TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MockERC20Transfer represents a Transfer event raised by the MockERC20 contract. +type MockERC20Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_MockERC20 *MockERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*MockERC20TransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _MockERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &MockERC20TransferIterator{contract: _MockERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_MockERC20 *MockERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *MockERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _MockERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MockERC20Transfer) + if err := _MockERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_MockERC20 *MockERC20Filterer) ParseTransfer(log types.Log) (*MockERC20Transfer, error) { + event := new(MockERC20Transfer) + if err := _MockERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/mockerc721.sol/mockerc721.go b/v2/pkg/mockerc721.sol/mockerc721.go new file mode 100644 index 00000000..93595ac0 --- /dev/null +++ b/v2/pkg/mockerc721.sol/mockerc721.go @@ -0,0 +1,1055 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package mockerc721 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// MockERC721MetaData contains all meta data concerning the MockERC721 contract. +var MockERC721MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApproved\",\"inputs\":[{\"name\":\"id\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"name_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"symbol_\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isApprovedForAll\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownerOf\",\"inputs\":[{\"name\":\"id\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setApprovalForAll\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tokenURI\",\"inputs\":[{\"name\":\"id\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ApprovalForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false}]", + Bin: "0x6080604052348015600f57600080fd5b506114b88061001f6000396000f3fe6080604052600436106100dd5760003560e01c80636352211e1161007f578063a22cb46511610059578063a22cb4651461025f578063b88d4fde1461027f578063c87b56dd14610292578063e985e9c5146102b357600080fd5b80636352211e146101fc57806370a082311461021c57806395d89b411461024a57600080fd5b8063095ea7b3116100bb578063095ea7b3146101a157806323b872dd146101b657806342842e0e146101c95780634cd88b76146101dc57600080fd5b806301ffc9a7146100e257806306fdde0314610117578063081812fc14610139575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610e1f565b610309565b60405190151581526020015b60405180910390f35b34801561012357600080fd5b5061012c6103ee565b60405161010e9190610ea7565b34801561014557600080fd5b5061017c610154366004610eba565b60009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010e565b6101b46101af366004610ef7565b610480565b005b6101b46101c4366004610f21565b6105cf565b6101b46101d7366004610f21565b6108c4565b3480156101e857600080fd5b506101b46101f7366004611045565b610a18565b34801561020857600080fd5b5061017c610217366004610eba565b610ace565b34801561022857600080fd5b5061023c6102373660046110ae565b610b5f565b60405190815260200161010e565b34801561025657600080fd5b5061012c610c07565b34801561026b57600080fd5b506101b461027a3660046110c9565b610c16565b6101b461028d366004611105565b610cad565b34801561029e57600080fd5b5061012c6102ad366004610eba565b50606090565b3480156102bf57600080fd5b506101026102ce366004611181565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061039c57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806103e857507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600080546103fd906111b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610429906111b4565b80156104765780601f1061044b57610100808354040283529160200191610476565b820191906000526020600020905b81548152906001019060200180831161045957829003601f168201915b5050505050905090565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16338114806104e3575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b61054e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff84811691161461065f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d000000000000000000000000000000000000000000006044820152606401610545565b73ffffffffffffffffffffffffffffffffffffffff82166106dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e540000000000000000000000000000006044820152606401610545565b3373ffffffffffffffffffffffffffffffffffffffff84161480610730575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b8061075e575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b6107c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610545565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081208054916107f583611236565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040812080549161082b8361126b565b90915550506000818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff000000000000000000000000000000000000000092831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6108cf8383836105cf565b813b15806109ad57506040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610965573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098991906112a3565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610a13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610545565b505050565b60065460ff1615610a85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f414c52454144595f494e495449414c495a4544000000000000000000000000006044820152606401610545565b6000610a91838261130e565b506001610a9e828261130e565b5050600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610b5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e544544000000000000000000000000000000000000000000006044820152606401610545565b919050565b600073ffffffffffffffffffffffffffffffffffffffff8216610bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f4144445245535300000000000000000000000000000000000000006044820152606401610545565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6060600180546103fd906111b4565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610cb88484846105cf565b823b1580610d8257506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290610d1b903390899088908890600401611427565b6020604051808303816000875af1158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e91906112a3565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610de8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610545565b50505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610e1c57600080fd5b50565b600060208284031215610e3157600080fd5b8135610e3c81610dee565b9392505050565b6000815180845260005b81811015610e6957602081850181015186830182015201610e4d565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610e3c6020830184610e43565b600060208284031215610ecc57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b5a57600080fd5b60008060408385031215610f0a57600080fd5b610f1383610ed3565b946020939093013593505050565b600080600060608486031215610f3657600080fd5b610f3f84610ed3565b9250610f4d60208501610ed3565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008067ffffffffffffffff841115610fa857610fa8610f5e565b506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85018116603f0116810181811067ffffffffffffffff82111715610ff557610ff5610f5e565b60405283815290508082840185101561100d57600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261103657600080fd5b610e3c83833560208501610f8d565b6000806040838503121561105857600080fd5b823567ffffffffffffffff81111561106f57600080fd5b61107b85828601611025565b925050602083013567ffffffffffffffff81111561109857600080fd5b6110a485828601611025565b9150509250929050565b6000602082840312156110c057600080fd5b610e3c82610ed3565b600080604083850312156110dc57600080fd5b6110e583610ed3565b9150602083013580151581146110fa57600080fd5b809150509250929050565b6000806000806080858703121561111b57600080fd5b61112485610ed3565b935061113260208601610ed3565b925060408501359150606085013567ffffffffffffffff81111561115557600080fd5b8501601f8101871361116657600080fd5b61117587823560208401610f8d565b91505092959194509250565b6000806040838503121561119457600080fd5b61119d83610ed3565b91506111ab60208401610ed3565b90509250929050565b600181811c908216806111c857607f821691505b602082108103611201577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008161124557611245611207565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361129c5761129c611207565b5060010190565b6000602082840312156112b557600080fd5b8151610e3c81610dee565b601f821115610a1357806000526020600020601f840160051c810160208510156112e75750805b601f840160051c820191505b8181101561130757600081556001016112f3565b5050505050565b815167ffffffffffffffff81111561132857611328610f5e565b61133c8161133684546111b4565b846112c0565b6020601f82116001811461138e57600083156113585750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455611307565b6000848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156113dc57878501518255602094850194600190920191016113bc565b508482101561141857868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff841660208201528260408201526080606082015260006114786080830184610e43565b969550505050505056fea26469706673582212202332803a16bf7eaf4a68e83df79b845e756649c92da3b94bb9b4061f246da5be64736f6c634300081a0033", +} + +// MockERC721ABI is the input ABI used to generate the binding from. +// Deprecated: Use MockERC721MetaData.ABI instead. +var MockERC721ABI = MockERC721MetaData.ABI + +// MockERC721Bin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use MockERC721MetaData.Bin instead. +var MockERC721Bin = MockERC721MetaData.Bin + +// DeployMockERC721 deploys a new Ethereum contract, binding an instance of MockERC721 to it. +func DeployMockERC721(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *MockERC721, error) { + parsed, err := MockERC721MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(MockERC721Bin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &MockERC721{MockERC721Caller: MockERC721Caller{contract: contract}, MockERC721Transactor: MockERC721Transactor{contract: contract}, MockERC721Filterer: MockERC721Filterer{contract: contract}}, nil +} + +// MockERC721 is an auto generated Go binding around an Ethereum contract. +type MockERC721 struct { + MockERC721Caller // Read-only binding to the contract + MockERC721Transactor // Write-only binding to the contract + MockERC721Filterer // Log filterer for contract events +} + +// MockERC721Caller is an auto generated read-only Go binding around an Ethereum contract. +type MockERC721Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MockERC721Transactor is an auto generated write-only Go binding around an Ethereum contract. +type MockERC721Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MockERC721Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type MockERC721Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MockERC721Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type MockERC721Session struct { + Contract *MockERC721 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MockERC721CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type MockERC721CallerSession struct { + Contract *MockERC721Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// MockERC721TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type MockERC721TransactorSession struct { + Contract *MockERC721Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MockERC721Raw is an auto generated low-level Go binding around an Ethereum contract. +type MockERC721Raw struct { + Contract *MockERC721 // Generic contract binding to access the raw methods on +} + +// MockERC721CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type MockERC721CallerRaw struct { + Contract *MockERC721Caller // Generic read-only contract binding to access the raw methods on +} + +// MockERC721TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type MockERC721TransactorRaw struct { + Contract *MockERC721Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewMockERC721 creates a new instance of MockERC721, bound to a specific deployed contract. +func NewMockERC721(address common.Address, backend bind.ContractBackend) (*MockERC721, error) { + contract, err := bindMockERC721(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &MockERC721{MockERC721Caller: MockERC721Caller{contract: contract}, MockERC721Transactor: MockERC721Transactor{contract: contract}, MockERC721Filterer: MockERC721Filterer{contract: contract}}, nil +} + +// NewMockERC721Caller creates a new read-only instance of MockERC721, bound to a specific deployed contract. +func NewMockERC721Caller(address common.Address, caller bind.ContractCaller) (*MockERC721Caller, error) { + contract, err := bindMockERC721(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &MockERC721Caller{contract: contract}, nil +} + +// NewMockERC721Transactor creates a new write-only instance of MockERC721, bound to a specific deployed contract. +func NewMockERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*MockERC721Transactor, error) { + contract, err := bindMockERC721(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &MockERC721Transactor{contract: contract}, nil +} + +// NewMockERC721Filterer creates a new log filterer instance of MockERC721, bound to a specific deployed contract. +func NewMockERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*MockERC721Filterer, error) { + contract, err := bindMockERC721(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &MockERC721Filterer{contract: contract}, nil +} + +// bindMockERC721 binds a generic wrapper to an already deployed contract. +func bindMockERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := MockERC721MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_MockERC721 *MockERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _MockERC721.Contract.MockERC721Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_MockERC721 *MockERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _MockERC721.Contract.MockERC721Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_MockERC721 *MockERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _MockERC721.Contract.MockERC721Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_MockERC721 *MockERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _MockERC721.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_MockERC721 *MockERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _MockERC721.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_MockERC721 *MockERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _MockERC721.Contract.contract.Transact(opts, method, params...) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address owner) view returns(uint256) +func (_MockERC721 *MockERC721Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { + var out []interface{} + err := _MockERC721.contract.Call(opts, &out, "balanceOf", owner) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address owner) view returns(uint256) +func (_MockERC721 *MockERC721Session) BalanceOf(owner common.Address) (*big.Int, error) { + return _MockERC721.Contract.BalanceOf(&_MockERC721.CallOpts, owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address owner) view returns(uint256) +func (_MockERC721 *MockERC721CallerSession) BalanceOf(owner common.Address) (*big.Int, error) { + return _MockERC721.Contract.BalanceOf(&_MockERC721.CallOpts, owner) +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 id) view returns(address) +func (_MockERC721 *MockERC721Caller) GetApproved(opts *bind.CallOpts, id *big.Int) (common.Address, error) { + var out []interface{} + err := _MockERC721.contract.Call(opts, &out, "getApproved", id) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 id) view returns(address) +func (_MockERC721 *MockERC721Session) GetApproved(id *big.Int) (common.Address, error) { + return _MockERC721.Contract.GetApproved(&_MockERC721.CallOpts, id) +} + +// GetApproved is a free data retrieval call binding the contract method 0x081812fc. +// +// Solidity: function getApproved(uint256 id) view returns(address) +func (_MockERC721 *MockERC721CallerSession) GetApproved(id *big.Int) (common.Address, error) { + return _MockERC721.Contract.GetApproved(&_MockERC721.CallOpts, id) +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) +func (_MockERC721 *MockERC721Caller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) { + var out []interface{} + err := _MockERC721.contract.Call(opts, &out, "isApprovedForAll", owner, operator) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) +func (_MockERC721 *MockERC721Session) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { + return _MockERC721.Contract.IsApprovedForAll(&_MockERC721.CallOpts, owner, operator) +} + +// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. +// +// Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) +func (_MockERC721 *MockERC721CallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { + return _MockERC721.Contract.IsApprovedForAll(&_MockERC721.CallOpts, owner, operator) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_MockERC721 *MockERC721Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _MockERC721.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_MockERC721 *MockERC721Session) Name() (string, error) { + return _MockERC721.Contract.Name(&_MockERC721.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_MockERC721 *MockERC721CallerSession) Name() (string, error) { + return _MockERC721.Contract.Name(&_MockERC721.CallOpts) +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 id) view returns(address owner) +func (_MockERC721 *MockERC721Caller) OwnerOf(opts *bind.CallOpts, id *big.Int) (common.Address, error) { + var out []interface{} + err := _MockERC721.contract.Call(opts, &out, "ownerOf", id) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 id) view returns(address owner) +func (_MockERC721 *MockERC721Session) OwnerOf(id *big.Int) (common.Address, error) { + return _MockERC721.Contract.OwnerOf(&_MockERC721.CallOpts, id) +} + +// OwnerOf is a free data retrieval call binding the contract method 0x6352211e. +// +// Solidity: function ownerOf(uint256 id) view returns(address owner) +func (_MockERC721 *MockERC721CallerSession) OwnerOf(id *big.Int) (common.Address, error) { + return _MockERC721.Contract.OwnerOf(&_MockERC721.CallOpts, id) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_MockERC721 *MockERC721Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _MockERC721.contract.Call(opts, &out, "supportsInterface", interfaceId) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_MockERC721 *MockERC721Session) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _MockERC721.Contract.SupportsInterface(&_MockERC721.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_MockERC721 *MockERC721CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _MockERC721.Contract.SupportsInterface(&_MockERC721.CallOpts, interfaceId) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_MockERC721 *MockERC721Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _MockERC721.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_MockERC721 *MockERC721Session) Symbol() (string, error) { + return _MockERC721.Contract.Symbol(&_MockERC721.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_MockERC721 *MockERC721CallerSession) Symbol() (string, error) { + return _MockERC721.Contract.Symbol(&_MockERC721.CallOpts) +} + +// TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. +// +// Solidity: function tokenURI(uint256 id) view returns(string) +func (_MockERC721 *MockERC721Caller) TokenURI(opts *bind.CallOpts, id *big.Int) (string, error) { + var out []interface{} + err := _MockERC721.contract.Call(opts, &out, "tokenURI", id) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. +// +// Solidity: function tokenURI(uint256 id) view returns(string) +func (_MockERC721 *MockERC721Session) TokenURI(id *big.Int) (string, error) { + return _MockERC721.Contract.TokenURI(&_MockERC721.CallOpts, id) +} + +// TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. +// +// Solidity: function tokenURI(uint256 id) view returns(string) +func (_MockERC721 *MockERC721CallerSession) TokenURI(id *big.Int) (string, error) { + return _MockERC721.Contract.TokenURI(&_MockERC721.CallOpts, id) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 id) payable returns() +func (_MockERC721 *MockERC721Transactor) Approve(opts *bind.TransactOpts, spender common.Address, id *big.Int) (*types.Transaction, error) { + return _MockERC721.contract.Transact(opts, "approve", spender, id) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 id) payable returns() +func (_MockERC721 *MockERC721Session) Approve(spender common.Address, id *big.Int) (*types.Transaction, error) { + return _MockERC721.Contract.Approve(&_MockERC721.TransactOpts, spender, id) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 id) payable returns() +func (_MockERC721 *MockERC721TransactorSession) Approve(spender common.Address, id *big.Int) (*types.Transaction, error) { + return _MockERC721.Contract.Approve(&_MockERC721.TransactOpts, spender, id) +} + +// Initialize is a paid mutator transaction binding the contract method 0x4cd88b76. +// +// Solidity: function initialize(string name_, string symbol_) returns() +func (_MockERC721 *MockERC721Transactor) Initialize(opts *bind.TransactOpts, name_ string, symbol_ string) (*types.Transaction, error) { + return _MockERC721.contract.Transact(opts, "initialize", name_, symbol_) +} + +// Initialize is a paid mutator transaction binding the contract method 0x4cd88b76. +// +// Solidity: function initialize(string name_, string symbol_) returns() +func (_MockERC721 *MockERC721Session) Initialize(name_ string, symbol_ string) (*types.Transaction, error) { + return _MockERC721.Contract.Initialize(&_MockERC721.TransactOpts, name_, symbol_) +} + +// Initialize is a paid mutator transaction binding the contract method 0x4cd88b76. +// +// Solidity: function initialize(string name_, string symbol_) returns() +func (_MockERC721 *MockERC721TransactorSession) Initialize(name_ string, symbol_ string) (*types.Transaction, error) { + return _MockERC721.Contract.Initialize(&_MockERC721.TransactOpts, name_, symbol_) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address from, address to, uint256 id) payable returns() +func (_MockERC721 *MockERC721Transactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, id *big.Int) (*types.Transaction, error) { + return _MockERC721.contract.Transact(opts, "safeTransferFrom", from, to, id) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address from, address to, uint256 id) payable returns() +func (_MockERC721 *MockERC721Session) SafeTransferFrom(from common.Address, to common.Address, id *big.Int) (*types.Transaction, error) { + return _MockERC721.Contract.SafeTransferFrom(&_MockERC721.TransactOpts, from, to, id) +} + +// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. +// +// Solidity: function safeTransferFrom(address from, address to, uint256 id) payable returns() +func (_MockERC721 *MockERC721TransactorSession) SafeTransferFrom(from common.Address, to common.Address, id *big.Int) (*types.Transaction, error) { + return _MockERC721.Contract.SafeTransferFrom(&_MockERC721.TransactOpts, from, to, id) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address from, address to, uint256 id, bytes data) payable returns() +func (_MockERC721 *MockERC721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, id *big.Int, data []byte) (*types.Transaction, error) { + return _MockERC721.contract.Transact(opts, "safeTransferFrom0", from, to, id, data) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address from, address to, uint256 id, bytes data) payable returns() +func (_MockERC721 *MockERC721Session) SafeTransferFrom0(from common.Address, to common.Address, id *big.Int, data []byte) (*types.Transaction, error) { + return _MockERC721.Contract.SafeTransferFrom0(&_MockERC721.TransactOpts, from, to, id, data) +} + +// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. +// +// Solidity: function safeTransferFrom(address from, address to, uint256 id, bytes data) payable returns() +func (_MockERC721 *MockERC721TransactorSession) SafeTransferFrom0(from common.Address, to common.Address, id *big.Int, data []byte) (*types.Transaction, error) { + return _MockERC721.Contract.SafeTransferFrom0(&_MockERC721.TransactOpts, from, to, id, data) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address operator, bool approved) returns() +func (_MockERC721 *MockERC721Transactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, approved bool) (*types.Transaction, error) { + return _MockERC721.contract.Transact(opts, "setApprovalForAll", operator, approved) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address operator, bool approved) returns() +func (_MockERC721 *MockERC721Session) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) { + return _MockERC721.Contract.SetApprovalForAll(&_MockERC721.TransactOpts, operator, approved) +} + +// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. +// +// Solidity: function setApprovalForAll(address operator, bool approved) returns() +func (_MockERC721 *MockERC721TransactorSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) { + return _MockERC721.Contract.SetApprovalForAll(&_MockERC721.TransactOpts, operator, approved) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 id) payable returns() +func (_MockERC721 *MockERC721Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, id *big.Int) (*types.Transaction, error) { + return _MockERC721.contract.Transact(opts, "transferFrom", from, to, id) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 id) payable returns() +func (_MockERC721 *MockERC721Session) TransferFrom(from common.Address, to common.Address, id *big.Int) (*types.Transaction, error) { + return _MockERC721.Contract.TransferFrom(&_MockERC721.TransactOpts, from, to, id) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 id) payable returns() +func (_MockERC721 *MockERC721TransactorSession) TransferFrom(from common.Address, to common.Address, id *big.Int) (*types.Transaction, error) { + return _MockERC721.Contract.TransferFrom(&_MockERC721.TransactOpts, from, to, id) +} + +// MockERC721ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the MockERC721 contract. +type MockERC721ApprovalIterator struct { + Event *MockERC721Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MockERC721ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MockERC721Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MockERC721Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MockERC721ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MockERC721ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MockERC721Approval represents a Approval event raised by the MockERC721 contract. +type MockERC721Approval struct { + Owner common.Address + Approved common.Address + TokenId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_MockERC721 *MockERC721Filterer) FilterApproval(opts *bind.FilterOpts, _owner []common.Address, _approved []common.Address, _tokenId []*big.Int) (*MockERC721ApprovalIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _approvedRule []interface{} + for _, _approvedItem := range _approved { + _approvedRule = append(_approvedRule, _approvedItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _MockERC721.contract.FilterLogs(opts, "Approval", _ownerRule, _approvedRule, _tokenIdRule) + if err != nil { + return nil, err + } + return &MockERC721ApprovalIterator{contract: _MockERC721.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_MockERC721 *MockERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *MockERC721Approval, _owner []common.Address, _approved []common.Address, _tokenId []*big.Int) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _approvedRule []interface{} + for _, _approvedItem := range _approved { + _approvedRule = append(_approvedRule, _approvedItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _MockERC721.contract.WatchLogs(opts, "Approval", _ownerRule, _approvedRule, _tokenIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MockERC721Approval) + if err := _MockERC721.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) +func (_MockERC721 *MockERC721Filterer) ParseApproval(log types.Log) (*MockERC721Approval, error) { + event := new(MockERC721Approval) + if err := _MockERC721.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// MockERC721ApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the MockERC721 contract. +type MockERC721ApprovalForAllIterator struct { + Event *MockERC721ApprovalForAll // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MockERC721ApprovalForAllIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MockERC721ApprovalForAll) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MockERC721ApprovalForAll) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MockERC721ApprovalForAllIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MockERC721ApprovalForAllIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MockERC721ApprovalForAll represents a ApprovalForAll event raised by the MockERC721 contract. +type MockERC721ApprovalForAll struct { + Owner common.Address + Operator common.Address + Approved bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_MockERC721 *MockERC721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, _owner []common.Address, _operator []common.Address) (*MockERC721ApprovalForAllIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _operatorRule []interface{} + for _, _operatorItem := range _operator { + _operatorRule = append(_operatorRule, _operatorItem) + } + + logs, sub, err := _MockERC721.contract.FilterLogs(opts, "ApprovalForAll", _ownerRule, _operatorRule) + if err != nil { + return nil, err + } + return &MockERC721ApprovalForAllIterator{contract: _MockERC721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil +} + +// WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_MockERC721 *MockERC721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *MockERC721ApprovalForAll, _owner []common.Address, _operator []common.Address) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _operatorRule []interface{} + for _, _operatorItem := range _operator { + _operatorRule = append(_operatorRule, _operatorItem) + } + + logs, sub, err := _MockERC721.contract.WatchLogs(opts, "ApprovalForAll", _ownerRule, _operatorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MockERC721ApprovalForAll) + if err := _MockERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. +// +// Solidity: event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) +func (_MockERC721 *MockERC721Filterer) ParseApprovalForAll(log types.Log) (*MockERC721ApprovalForAll, error) { + event := new(MockERC721ApprovalForAll) + if err := _MockERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// MockERC721TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the MockERC721 contract. +type MockERC721TransferIterator struct { + Event *MockERC721Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MockERC721TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MockERC721Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MockERC721Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MockERC721TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MockERC721TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MockERC721Transfer represents a Transfer event raised by the MockERC721 contract. +type MockERC721Transfer struct { + From common.Address + To common.Address + TokenId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_MockERC721 *MockERC721Filterer) FilterTransfer(opts *bind.FilterOpts, _from []common.Address, _to []common.Address, _tokenId []*big.Int) (*MockERC721TransferIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _MockERC721.contract.FilterLogs(opts, "Transfer", _fromRule, _toRule, _tokenIdRule) + if err != nil { + return nil, err + } + return &MockERC721TransferIterator{contract: _MockERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_MockERC721 *MockERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *MockERC721Transfer, _from []common.Address, _to []common.Address, _tokenId []*big.Int) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + var _tokenIdRule []interface{} + for _, _tokenIdItem := range _tokenId { + _tokenIdRule = append(_tokenIdRule, _tokenIdItem) + } + + logs, sub, err := _MockERC721.contract.WatchLogs(opts, "Transfer", _fromRule, _toRule, _tokenIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MockERC721Transfer) + if err := _MockERC721.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) +func (_MockERC721 *MockERC721Filterer) ParseTransfer(log types.Log) (*MockERC721Transfer, error) { + event := new(MockERC721Transfer) + if err := _MockERC721.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/options.sol/options.go b/v2/pkg/options.sol/options.go new file mode 100644 index 00000000..e2fead7b --- /dev/null +++ b/v2/pkg/options.sol/options.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package options + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// OptionsMetaData contains all meta data concerning the Options contract. +var OptionsMetaData = &bind.MetaData{ + ABI: "[]", +} + +// OptionsABI is the input ABI used to generate the binding from. +// Deprecated: Use OptionsMetaData.ABI instead. +var OptionsABI = OptionsMetaData.ABI + +// Options is an auto generated Go binding around an Ethereum contract. +type Options struct { + OptionsCaller // Read-only binding to the contract + OptionsTransactor // Write-only binding to the contract + OptionsFilterer // Log filterer for contract events +} + +// OptionsCaller is an auto generated read-only Go binding around an Ethereum contract. +type OptionsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OptionsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type OptionsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OptionsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type OptionsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OptionsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type OptionsSession struct { + Contract *Options // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OptionsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type OptionsCallerSession struct { + Contract *OptionsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// OptionsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type OptionsTransactorSession struct { + Contract *OptionsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OptionsRaw is an auto generated low-level Go binding around an Ethereum contract. +type OptionsRaw struct { + Contract *Options // Generic contract binding to access the raw methods on +} + +// OptionsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type OptionsCallerRaw struct { + Contract *OptionsCaller // Generic read-only contract binding to access the raw methods on +} + +// OptionsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type OptionsTransactorRaw struct { + Contract *OptionsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewOptions creates a new instance of Options, bound to a specific deployed contract. +func NewOptions(address common.Address, backend bind.ContractBackend) (*Options, error) { + contract, err := bindOptions(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Options{OptionsCaller: OptionsCaller{contract: contract}, OptionsTransactor: OptionsTransactor{contract: contract}, OptionsFilterer: OptionsFilterer{contract: contract}}, nil +} + +// NewOptionsCaller creates a new read-only instance of Options, bound to a specific deployed contract. +func NewOptionsCaller(address common.Address, caller bind.ContractCaller) (*OptionsCaller, error) { + contract, err := bindOptions(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &OptionsCaller{contract: contract}, nil +} + +// NewOptionsTransactor creates a new write-only instance of Options, bound to a specific deployed contract. +func NewOptionsTransactor(address common.Address, transactor bind.ContractTransactor) (*OptionsTransactor, error) { + contract, err := bindOptions(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &OptionsTransactor{contract: contract}, nil +} + +// NewOptionsFilterer creates a new log filterer instance of Options, bound to a specific deployed contract. +func NewOptionsFilterer(address common.Address, filterer bind.ContractFilterer) (*OptionsFilterer, error) { + contract, err := bindOptions(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &OptionsFilterer{contract: contract}, nil +} + +// bindOptions binds a generic wrapper to an already deployed contract. +func bindOptions(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := OptionsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Options *OptionsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Options.Contract.OptionsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Options *OptionsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Options.Contract.OptionsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Options *OptionsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Options.Contract.OptionsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Options *OptionsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Options.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Options *OptionsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Options.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Options *OptionsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Options.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/ownable.sol/ownable.go b/v2/pkg/ownable.sol/ownable.go new file mode 100644 index 00000000..48b52d64 --- /dev/null +++ b/v2/pkg/ownable.sol/ownable.go @@ -0,0 +1,407 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ownable + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// OwnableMetaData contains all meta data concerning the Ownable contract. +var OwnableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]}]", +} + +// OwnableABI is the input ABI used to generate the binding from. +// Deprecated: Use OwnableMetaData.ABI instead. +var OwnableABI = OwnableMetaData.ABI + +// Ownable is an auto generated Go binding around an Ethereum contract. +type Ownable struct { + OwnableCaller // Read-only binding to the contract + OwnableTransactor // Write-only binding to the contract + OwnableFilterer // Log filterer for contract events +} + +// OwnableCaller is an auto generated read-only Go binding around an Ethereum contract. +type OwnableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type OwnableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type OwnableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type OwnableSession struct { + Contract *Ownable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OwnableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type OwnableCallerSession struct { + Contract *OwnableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// OwnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type OwnableTransactorSession struct { + Contract *OwnableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OwnableRaw is an auto generated low-level Go binding around an Ethereum contract. +type OwnableRaw struct { + Contract *Ownable // Generic contract binding to access the raw methods on +} + +// OwnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type OwnableCallerRaw struct { + Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on +} + +// OwnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type OwnableTransactorRaw struct { + Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewOwnable creates a new instance of Ownable, bound to a specific deployed contract. +func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) { + contract, err := bindOwnable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil +} + +// NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract. +func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) { + contract, err := bindOwnable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &OwnableCaller{contract: contract}, nil +} + +// NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract. +func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) { + contract, err := bindOwnable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &OwnableTransactor{contract: contract}, nil +} + +// NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract. +func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) { + contract, err := bindOwnable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &OwnableFilterer{contract: contract}, nil +} + +// bindOwnable binds a generic wrapper to an already deployed contract. +func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := OwnableMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Ownable.Contract.OwnableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Ownable.Contract.OwnableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Ownable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Ownable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Ownable.Contract.contract.Transact(opts, method, params...) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Ownable.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Ownable *OwnableSession) Owner() (common.Address, error) { + return _Ownable.Contract.Owner(&_Ownable.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) { + return _Ownable.Contract.Owner(&_Ownable.CallOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Ownable *OwnableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Ownable.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Ownable *OwnableSession) RenounceOwnership() (*types.Transaction, error) { + return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Ownable *OwnableTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _Ownable.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner) +} + +// OwnableOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Ownable contract. +type OwnableOwnershipTransferredIterator struct { + Event *OwnableOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *OwnableOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(OwnableOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(OwnableOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *OwnableOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *OwnableOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// OwnableOwnershipTransferred represents a OwnershipTransferred event raised by the Ownable contract. +type OwnableOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_Ownable *OwnableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Ownable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &OwnableOwnershipTransferredIterator{contract: _Ownable.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_Ownable *OwnableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Ownable.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(OwnableOwnershipTransferred) + if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableOwnershipTransferred, error) { + event := new(OwnableOwnershipTransferred) + if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/ownableupgradeable.sol/ownableupgradeable.go b/v2/pkg/ownableupgradeable.sol/ownableupgradeable.go new file mode 100644 index 00000000..0d32f37f --- /dev/null +++ b/v2/pkg/ownableupgradeable.sol/ownableupgradeable.go @@ -0,0 +1,541 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ownableupgradeable + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// OwnableUpgradeableMetaData contains all meta data concerning the OwnableUpgradeable contract. +var OwnableUpgradeableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]}]", +} + +// OwnableUpgradeableABI is the input ABI used to generate the binding from. +// Deprecated: Use OwnableUpgradeableMetaData.ABI instead. +var OwnableUpgradeableABI = OwnableUpgradeableMetaData.ABI + +// OwnableUpgradeable is an auto generated Go binding around an Ethereum contract. +type OwnableUpgradeable struct { + OwnableUpgradeableCaller // Read-only binding to the contract + OwnableUpgradeableTransactor // Write-only binding to the contract + OwnableUpgradeableFilterer // Log filterer for contract events +} + +// OwnableUpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. +type OwnableUpgradeableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableUpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type OwnableUpgradeableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableUpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type OwnableUpgradeableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableUpgradeableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type OwnableUpgradeableSession struct { + Contract *OwnableUpgradeable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OwnableUpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type OwnableUpgradeableCallerSession struct { + Contract *OwnableUpgradeableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// OwnableUpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type OwnableUpgradeableTransactorSession struct { + Contract *OwnableUpgradeableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OwnableUpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. +type OwnableUpgradeableRaw struct { + Contract *OwnableUpgradeable // Generic contract binding to access the raw methods on +} + +// OwnableUpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type OwnableUpgradeableCallerRaw struct { + Contract *OwnableUpgradeableCaller // Generic read-only contract binding to access the raw methods on +} + +// OwnableUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type OwnableUpgradeableTransactorRaw struct { + Contract *OwnableUpgradeableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewOwnableUpgradeable creates a new instance of OwnableUpgradeable, bound to a specific deployed contract. +func NewOwnableUpgradeable(address common.Address, backend bind.ContractBackend) (*OwnableUpgradeable, error) { + contract, err := bindOwnableUpgradeable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &OwnableUpgradeable{OwnableUpgradeableCaller: OwnableUpgradeableCaller{contract: contract}, OwnableUpgradeableTransactor: OwnableUpgradeableTransactor{contract: contract}, OwnableUpgradeableFilterer: OwnableUpgradeableFilterer{contract: contract}}, nil +} + +// NewOwnableUpgradeableCaller creates a new read-only instance of OwnableUpgradeable, bound to a specific deployed contract. +func NewOwnableUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*OwnableUpgradeableCaller, error) { + contract, err := bindOwnableUpgradeable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &OwnableUpgradeableCaller{contract: contract}, nil +} + +// NewOwnableUpgradeableTransactor creates a new write-only instance of OwnableUpgradeable, bound to a specific deployed contract. +func NewOwnableUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableUpgradeableTransactor, error) { + contract, err := bindOwnableUpgradeable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &OwnableUpgradeableTransactor{contract: contract}, nil +} + +// NewOwnableUpgradeableFilterer creates a new log filterer instance of OwnableUpgradeable, bound to a specific deployed contract. +func NewOwnableUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableUpgradeableFilterer, error) { + contract, err := bindOwnableUpgradeable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &OwnableUpgradeableFilterer{contract: contract}, nil +} + +// bindOwnableUpgradeable binds a generic wrapper to an already deployed contract. +func bindOwnableUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := OwnableUpgradeableMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_OwnableUpgradeable *OwnableUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _OwnableUpgradeable.Contract.OwnableUpgradeableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_OwnableUpgradeable *OwnableUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _OwnableUpgradeable.Contract.OwnableUpgradeableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_OwnableUpgradeable *OwnableUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _OwnableUpgradeable.Contract.OwnableUpgradeableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_OwnableUpgradeable *OwnableUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _OwnableUpgradeable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_OwnableUpgradeable *OwnableUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _OwnableUpgradeable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_OwnableUpgradeable *OwnableUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _OwnableUpgradeable.Contract.contract.Transact(opts, method, params...) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_OwnableUpgradeable *OwnableUpgradeableCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _OwnableUpgradeable.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_OwnableUpgradeable *OwnableUpgradeableSession) Owner() (common.Address, error) { + return _OwnableUpgradeable.Contract.Owner(&_OwnableUpgradeable.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_OwnableUpgradeable *OwnableUpgradeableCallerSession) Owner() (common.Address, error) { + return _OwnableUpgradeable.Contract.Owner(&_OwnableUpgradeable.CallOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_OwnableUpgradeable *OwnableUpgradeableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _OwnableUpgradeable.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_OwnableUpgradeable *OwnableUpgradeableSession) RenounceOwnership() (*types.Transaction, error) { + return _OwnableUpgradeable.Contract.RenounceOwnership(&_OwnableUpgradeable.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_OwnableUpgradeable *OwnableUpgradeableTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _OwnableUpgradeable.Contract.RenounceOwnership(&_OwnableUpgradeable.TransactOpts) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_OwnableUpgradeable *OwnableUpgradeableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _OwnableUpgradeable.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_OwnableUpgradeable *OwnableUpgradeableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _OwnableUpgradeable.Contract.TransferOwnership(&_OwnableUpgradeable.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_OwnableUpgradeable *OwnableUpgradeableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _OwnableUpgradeable.Contract.TransferOwnership(&_OwnableUpgradeable.TransactOpts, newOwner) +} + +// OwnableUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the OwnableUpgradeable contract. +type OwnableUpgradeableInitializedIterator struct { + Event *OwnableUpgradeableInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *OwnableUpgradeableInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(OwnableUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(OwnableUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *OwnableUpgradeableInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *OwnableUpgradeableInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// OwnableUpgradeableInitialized represents a Initialized event raised by the OwnableUpgradeable contract. +type OwnableUpgradeableInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_OwnableUpgradeable *OwnableUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*OwnableUpgradeableInitializedIterator, error) { + + logs, sub, err := _OwnableUpgradeable.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &OwnableUpgradeableInitializedIterator{contract: _OwnableUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_OwnableUpgradeable *OwnableUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *OwnableUpgradeableInitialized) (event.Subscription, error) { + + logs, sub, err := _OwnableUpgradeable.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(OwnableUpgradeableInitialized) + if err := _OwnableUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_OwnableUpgradeable *OwnableUpgradeableFilterer) ParseInitialized(log types.Log) (*OwnableUpgradeableInitialized, error) { + event := new(OwnableUpgradeableInitialized) + if err := _OwnableUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// OwnableUpgradeableOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the OwnableUpgradeable contract. +type OwnableUpgradeableOwnershipTransferredIterator struct { + Event *OwnableUpgradeableOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *OwnableUpgradeableOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(OwnableUpgradeableOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(OwnableUpgradeableOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *OwnableUpgradeableOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *OwnableUpgradeableOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// OwnableUpgradeableOwnershipTransferred represents a OwnershipTransferred event raised by the OwnableUpgradeable contract. +type OwnableUpgradeableOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_OwnableUpgradeable *OwnableUpgradeableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableUpgradeableOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _OwnableUpgradeable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &OwnableUpgradeableOwnershipTransferredIterator{contract: _OwnableUpgradeable.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_OwnableUpgradeable *OwnableUpgradeableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableUpgradeableOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _OwnableUpgradeable.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(OwnableUpgradeableOwnershipTransferred) + if err := _OwnableUpgradeable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_OwnableUpgradeable *OwnableUpgradeableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableUpgradeableOwnershipTransferred, error) { + event := new(OwnableUpgradeableOwnershipTransferred) + if err := _OwnableUpgradeable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/proxy.sol/proxy.go b/v2/pkg/proxy.sol/proxy.go new file mode 100644 index 00000000..71f6f04b --- /dev/null +++ b/v2/pkg/proxy.sol/proxy.go @@ -0,0 +1,202 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package proxy + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ProxyMetaData contains all meta data concerning the Proxy contract. +var ProxyMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"fallback\",\"stateMutability\":\"payable\"}]", +} + +// ProxyABI is the input ABI used to generate the binding from. +// Deprecated: Use ProxyMetaData.ABI instead. +var ProxyABI = ProxyMetaData.ABI + +// Proxy is an auto generated Go binding around an Ethereum contract. +type Proxy struct { + ProxyCaller // Read-only binding to the contract + ProxyTransactor // Write-only binding to the contract + ProxyFilterer // Log filterer for contract events +} + +// ProxyCaller is an auto generated read-only Go binding around an Ethereum contract. +type ProxyCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ProxyTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ProxyTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ProxyFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ProxyFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ProxySession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ProxySession struct { + Contract *Proxy // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ProxyCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ProxyCallerSession struct { + Contract *ProxyCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ProxyTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ProxyTransactorSession struct { + Contract *ProxyTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ProxyRaw is an auto generated low-level Go binding around an Ethereum contract. +type ProxyRaw struct { + Contract *Proxy // Generic contract binding to access the raw methods on +} + +// ProxyCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ProxyCallerRaw struct { + Contract *ProxyCaller // Generic read-only contract binding to access the raw methods on +} + +// ProxyTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ProxyTransactorRaw struct { + Contract *ProxyTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewProxy creates a new instance of Proxy, bound to a specific deployed contract. +func NewProxy(address common.Address, backend bind.ContractBackend) (*Proxy, error) { + contract, err := bindProxy(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Proxy{ProxyCaller: ProxyCaller{contract: contract}, ProxyTransactor: ProxyTransactor{contract: contract}, ProxyFilterer: ProxyFilterer{contract: contract}}, nil +} + +// NewProxyCaller creates a new read-only instance of Proxy, bound to a specific deployed contract. +func NewProxyCaller(address common.Address, caller bind.ContractCaller) (*ProxyCaller, error) { + contract, err := bindProxy(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ProxyCaller{contract: contract}, nil +} + +// NewProxyTransactor creates a new write-only instance of Proxy, bound to a specific deployed contract. +func NewProxyTransactor(address common.Address, transactor bind.ContractTransactor) (*ProxyTransactor, error) { + contract, err := bindProxy(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ProxyTransactor{contract: contract}, nil +} + +// NewProxyFilterer creates a new log filterer instance of Proxy, bound to a specific deployed contract. +func NewProxyFilterer(address common.Address, filterer bind.ContractFilterer) (*ProxyFilterer, error) { + contract, err := bindProxy(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ProxyFilterer{contract: contract}, nil +} + +// bindProxy binds a generic wrapper to an already deployed contract. +func bindProxy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ProxyMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Proxy *ProxyRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Proxy.Contract.ProxyCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Proxy *ProxyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Proxy.Contract.ProxyTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Proxy *ProxyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Proxy.Contract.ProxyTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Proxy *ProxyCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Proxy.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Proxy *ProxyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Proxy.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Proxy *ProxyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Proxy.Contract.contract.Transact(opts, method, params...) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_Proxy *ProxyTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _Proxy.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_Proxy *ProxySession) Fallback(calldata []byte) (*types.Transaction, error) { + return _Proxy.Contract.Fallback(&_Proxy.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_Proxy *ProxyTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _Proxy.Contract.Fallback(&_Proxy.TransactOpts, calldata) +} diff --git a/v2/pkg/proxyadmin.sol/proxyadmin.go b/v2/pkg/proxyadmin.sol/proxyadmin.go new file mode 100644 index 00000000..d1cd783e --- /dev/null +++ b/v2/pkg/proxyadmin.sol/proxyadmin.go @@ -0,0 +1,481 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package proxyadmin + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ProxyAdminMetaData contains all meta data concerning the ProxyAdmin contract. +var ProxyAdminMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"UPGRADE_INTERFACE_VERSION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgradeAndCall\",\"inputs\":[{\"name\":\"proxy\",\"type\":\"address\",\"internalType\":\"contractITransparentUpgradeableProxy\"},{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]}]", + Bin: "0x608060405234801561001057600080fd5b5060405161068438038061068483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610587806100fd6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100b0578063ad3cb1cc146100c3578063f2fde38b1461011957600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b50610074610139565b005b34801561008257600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100746100be366004610364565b61014d565b3480156100cf57600080fd5b5061010c6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a791906104e3565b34801561012557600080fd5b506100746101343660046104fd565b6101e2565b61014161024b565b61014b600061029e565b565b61015561024b565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef2869034906101ab908690869060040161051a565b6000604051808303818588803b1580156101c457600080fd5b505af11580156101d8573d6000803e3d6000fd5b5050505050505050565b6101ea61024b565b73ffffffffffffffffffffffffffffffffffffffff811661023f576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6102488161029e565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461014b576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610236565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff8116811461024857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561037957600080fd5b833561038481610313565b9250602084013561039481610313565b9150604084013567ffffffffffffffff8111156103b057600080fd5b8401601f810186136103c157600080fd5b803567ffffffffffffffff8111156103db576103db610335565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561044757610447610335565b60405281815282820160200188101561045f57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b818110156104a557602081850181015186830182015201610489565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006104f6602083018461047f565b9392505050565b60006020828403121561050f57600080fd5b81356104f681610313565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000610549604083018461047f565b94935050505056fea2646970667358221220b68ea0eca96d97adca0a037e1efb26b5d3e690e9fbc1913bb4a08e597cfc70f164736f6c634300081a0033", +} + +// ProxyAdminABI is the input ABI used to generate the binding from. +// Deprecated: Use ProxyAdminMetaData.ABI instead. +var ProxyAdminABI = ProxyAdminMetaData.ABI + +// ProxyAdminBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ProxyAdminMetaData.Bin instead. +var ProxyAdminBin = ProxyAdminMetaData.Bin + +// DeployProxyAdmin deploys a new Ethereum contract, binding an instance of ProxyAdmin to it. +func DeployProxyAdmin(auth *bind.TransactOpts, backend bind.ContractBackend, initialOwner common.Address) (common.Address, *types.Transaction, *ProxyAdmin, error) { + parsed, err := ProxyAdminMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ProxyAdminBin), backend, initialOwner) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ProxyAdmin{ProxyAdminCaller: ProxyAdminCaller{contract: contract}, ProxyAdminTransactor: ProxyAdminTransactor{contract: contract}, ProxyAdminFilterer: ProxyAdminFilterer{contract: contract}}, nil +} + +// ProxyAdmin is an auto generated Go binding around an Ethereum contract. +type ProxyAdmin struct { + ProxyAdminCaller // Read-only binding to the contract + ProxyAdminTransactor // Write-only binding to the contract + ProxyAdminFilterer // Log filterer for contract events +} + +// ProxyAdminCaller is an auto generated read-only Go binding around an Ethereum contract. +type ProxyAdminCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ProxyAdminTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ProxyAdminTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ProxyAdminFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ProxyAdminFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ProxyAdminSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ProxyAdminSession struct { + Contract *ProxyAdmin // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ProxyAdminCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ProxyAdminCallerSession struct { + Contract *ProxyAdminCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ProxyAdminTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ProxyAdminTransactorSession struct { + Contract *ProxyAdminTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ProxyAdminRaw is an auto generated low-level Go binding around an Ethereum contract. +type ProxyAdminRaw struct { + Contract *ProxyAdmin // Generic contract binding to access the raw methods on +} + +// ProxyAdminCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ProxyAdminCallerRaw struct { + Contract *ProxyAdminCaller // Generic read-only contract binding to access the raw methods on +} + +// ProxyAdminTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ProxyAdminTransactorRaw struct { + Contract *ProxyAdminTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewProxyAdmin creates a new instance of ProxyAdmin, bound to a specific deployed contract. +func NewProxyAdmin(address common.Address, backend bind.ContractBackend) (*ProxyAdmin, error) { + contract, err := bindProxyAdmin(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ProxyAdmin{ProxyAdminCaller: ProxyAdminCaller{contract: contract}, ProxyAdminTransactor: ProxyAdminTransactor{contract: contract}, ProxyAdminFilterer: ProxyAdminFilterer{contract: contract}}, nil +} + +// NewProxyAdminCaller creates a new read-only instance of ProxyAdmin, bound to a specific deployed contract. +func NewProxyAdminCaller(address common.Address, caller bind.ContractCaller) (*ProxyAdminCaller, error) { + contract, err := bindProxyAdmin(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ProxyAdminCaller{contract: contract}, nil +} + +// NewProxyAdminTransactor creates a new write-only instance of ProxyAdmin, bound to a specific deployed contract. +func NewProxyAdminTransactor(address common.Address, transactor bind.ContractTransactor) (*ProxyAdminTransactor, error) { + contract, err := bindProxyAdmin(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ProxyAdminTransactor{contract: contract}, nil +} + +// NewProxyAdminFilterer creates a new log filterer instance of ProxyAdmin, bound to a specific deployed contract. +func NewProxyAdminFilterer(address common.Address, filterer bind.ContractFilterer) (*ProxyAdminFilterer, error) { + contract, err := bindProxyAdmin(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ProxyAdminFilterer{contract: contract}, nil +} + +// bindProxyAdmin binds a generic wrapper to an already deployed contract. +func bindProxyAdmin(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ProxyAdminMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ProxyAdmin *ProxyAdminRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ProxyAdmin.Contract.ProxyAdminCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ProxyAdmin *ProxyAdminRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ProxyAdmin.Contract.ProxyAdminTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ProxyAdmin *ProxyAdminRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ProxyAdmin.Contract.ProxyAdminTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ProxyAdmin *ProxyAdminCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ProxyAdmin.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ProxyAdmin *ProxyAdminTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ProxyAdmin.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ProxyAdmin *ProxyAdminTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ProxyAdmin.Contract.contract.Transact(opts, method, params...) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_ProxyAdmin *ProxyAdminCaller) UPGRADEINTERFACEVERSION(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ProxyAdmin.contract.Call(opts, &out, "UPGRADE_INTERFACE_VERSION") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_ProxyAdmin *ProxyAdminSession) UPGRADEINTERFACEVERSION() (string, error) { + return _ProxyAdmin.Contract.UPGRADEINTERFACEVERSION(&_ProxyAdmin.CallOpts) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_ProxyAdmin *ProxyAdminCallerSession) UPGRADEINTERFACEVERSION() (string, error) { + return _ProxyAdmin.Contract.UPGRADEINTERFACEVERSION(&_ProxyAdmin.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ProxyAdmin *ProxyAdminCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ProxyAdmin.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ProxyAdmin *ProxyAdminSession) Owner() (common.Address, error) { + return _ProxyAdmin.Contract.Owner(&_ProxyAdmin.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ProxyAdmin *ProxyAdminCallerSession) Owner() (common.Address, error) { + return _ProxyAdmin.Contract.Owner(&_ProxyAdmin.CallOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_ProxyAdmin *ProxyAdminTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ProxyAdmin.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_ProxyAdmin *ProxyAdminSession) RenounceOwnership() (*types.Transaction, error) { + return _ProxyAdmin.Contract.RenounceOwnership(&_ProxyAdmin.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_ProxyAdmin *ProxyAdminTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _ProxyAdmin.Contract.RenounceOwnership(&_ProxyAdmin.TransactOpts) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_ProxyAdmin *ProxyAdminTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _ProxyAdmin.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_ProxyAdmin *ProxyAdminSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _ProxyAdmin.Contract.TransferOwnership(&_ProxyAdmin.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_ProxyAdmin *ProxyAdminTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _ProxyAdmin.Contract.TransferOwnership(&_ProxyAdmin.TransactOpts, newOwner) +} + +// UpgradeAndCall is a paid mutator transaction binding the contract method 0x9623609d. +// +// Solidity: function upgradeAndCall(address proxy, address implementation, bytes data) payable returns() +func (_ProxyAdmin *ProxyAdminTransactor) UpgradeAndCall(opts *bind.TransactOpts, proxy common.Address, implementation common.Address, data []byte) (*types.Transaction, error) { + return _ProxyAdmin.contract.Transact(opts, "upgradeAndCall", proxy, implementation, data) +} + +// UpgradeAndCall is a paid mutator transaction binding the contract method 0x9623609d. +// +// Solidity: function upgradeAndCall(address proxy, address implementation, bytes data) payable returns() +func (_ProxyAdmin *ProxyAdminSession) UpgradeAndCall(proxy common.Address, implementation common.Address, data []byte) (*types.Transaction, error) { + return _ProxyAdmin.Contract.UpgradeAndCall(&_ProxyAdmin.TransactOpts, proxy, implementation, data) +} + +// UpgradeAndCall is a paid mutator transaction binding the contract method 0x9623609d. +// +// Solidity: function upgradeAndCall(address proxy, address implementation, bytes data) payable returns() +func (_ProxyAdmin *ProxyAdminTransactorSession) UpgradeAndCall(proxy common.Address, implementation common.Address, data []byte) (*types.Transaction, error) { + return _ProxyAdmin.Contract.UpgradeAndCall(&_ProxyAdmin.TransactOpts, proxy, implementation, data) +} + +// ProxyAdminOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the ProxyAdmin contract. +type ProxyAdminOwnershipTransferredIterator struct { + Event *ProxyAdminOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ProxyAdminOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ProxyAdminOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ProxyAdminOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ProxyAdminOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ProxyAdminOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ProxyAdminOwnershipTransferred represents a OwnershipTransferred event raised by the ProxyAdmin contract. +type ProxyAdminOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ProxyAdmin *ProxyAdminFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ProxyAdminOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _ProxyAdmin.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &ProxyAdminOwnershipTransferredIterator{contract: _ProxyAdmin.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ProxyAdmin *ProxyAdminFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ProxyAdminOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _ProxyAdmin.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ProxyAdminOwnershipTransferred) + if err := _ProxyAdmin.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ProxyAdmin *ProxyAdminFilterer) ParseOwnershipTransferred(log types.Log) (*ProxyAdminOwnershipTransferred, error) { + event := new(ProxyAdminOwnershipTransferred) + if err := _ProxyAdmin.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/receiverevm.sol/receiverevm.go b/v2/pkg/receiverevm.sol/receiverevm.go new file mode 100644 index 00000000..02ded950 --- /dev/null +++ b/v2/pkg/receiverevm.sol/receiverevm.go @@ -0,0 +1,1052 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package receiverevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ReceiverEVMMetaData contains all meta data concerning the ReceiverEVM contract. +var ReceiverEVMMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"onRevert\",\"inputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"receiveERC20\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"receiveERC20Partial\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"receiveNoParams\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"receiveNonPayable\",\"inputs\":[{\"name\":\"strs\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"nums\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"flag\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"receivePayable\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"ReceivedERC20\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNoParams\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNonPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strs\",\"type\":\"string[]\",\"indexed\":false,\"internalType\":\"string[]\"},{\"name\":\"nums\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"str\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedRevert\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ZeroAmount\",\"inputs\":[]}]", + Bin: "0x6080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a0033", +} + +// ReceiverEVMABI is the input ABI used to generate the binding from. +// Deprecated: Use ReceiverEVMMetaData.ABI instead. +var ReceiverEVMABI = ReceiverEVMMetaData.ABI + +// ReceiverEVMBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ReceiverEVMMetaData.Bin instead. +var ReceiverEVMBin = ReceiverEVMMetaData.Bin + +// DeployReceiverEVM deploys a new Ethereum contract, binding an instance of ReceiverEVM to it. +func DeployReceiverEVM(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ReceiverEVM, error) { + parsed, err := ReceiverEVMMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ReceiverEVMBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ReceiverEVM{ReceiverEVMCaller: ReceiverEVMCaller{contract: contract}, ReceiverEVMTransactor: ReceiverEVMTransactor{contract: contract}, ReceiverEVMFilterer: ReceiverEVMFilterer{contract: contract}}, nil +} + +// ReceiverEVM is an auto generated Go binding around an Ethereum contract. +type ReceiverEVM struct { + ReceiverEVMCaller // Read-only binding to the contract + ReceiverEVMTransactor // Write-only binding to the contract + ReceiverEVMFilterer // Log filterer for contract events +} + +// ReceiverEVMCaller is an auto generated read-only Go binding around an Ethereum contract. +type ReceiverEVMCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ReceiverEVMTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ReceiverEVMTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ReceiverEVMFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ReceiverEVMFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ReceiverEVMSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ReceiverEVMSession struct { + Contract *ReceiverEVM // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ReceiverEVMCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ReceiverEVMCallerSession struct { + Contract *ReceiverEVMCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ReceiverEVMTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ReceiverEVMTransactorSession struct { + Contract *ReceiverEVMTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ReceiverEVMRaw is an auto generated low-level Go binding around an Ethereum contract. +type ReceiverEVMRaw struct { + Contract *ReceiverEVM // Generic contract binding to access the raw methods on +} + +// ReceiverEVMCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ReceiverEVMCallerRaw struct { + Contract *ReceiverEVMCaller // Generic read-only contract binding to access the raw methods on +} + +// ReceiverEVMTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ReceiverEVMTransactorRaw struct { + Contract *ReceiverEVMTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewReceiverEVM creates a new instance of ReceiverEVM, bound to a specific deployed contract. +func NewReceiverEVM(address common.Address, backend bind.ContractBackend) (*ReceiverEVM, error) { + contract, err := bindReceiverEVM(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ReceiverEVM{ReceiverEVMCaller: ReceiverEVMCaller{contract: contract}, ReceiverEVMTransactor: ReceiverEVMTransactor{contract: contract}, ReceiverEVMFilterer: ReceiverEVMFilterer{contract: contract}}, nil +} + +// NewReceiverEVMCaller creates a new read-only instance of ReceiverEVM, bound to a specific deployed contract. +func NewReceiverEVMCaller(address common.Address, caller bind.ContractCaller) (*ReceiverEVMCaller, error) { + contract, err := bindReceiverEVM(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ReceiverEVMCaller{contract: contract}, nil +} + +// NewReceiverEVMTransactor creates a new write-only instance of ReceiverEVM, bound to a specific deployed contract. +func NewReceiverEVMTransactor(address common.Address, transactor bind.ContractTransactor) (*ReceiverEVMTransactor, error) { + contract, err := bindReceiverEVM(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ReceiverEVMTransactor{contract: contract}, nil +} + +// NewReceiverEVMFilterer creates a new log filterer instance of ReceiverEVM, bound to a specific deployed contract. +func NewReceiverEVMFilterer(address common.Address, filterer bind.ContractFilterer) (*ReceiverEVMFilterer, error) { + contract, err := bindReceiverEVM(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ReceiverEVMFilterer{contract: contract}, nil +} + +// bindReceiverEVM binds a generic wrapper to an already deployed contract. +func bindReceiverEVM(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ReceiverEVMMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ReceiverEVM *ReceiverEVMRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ReceiverEVM.Contract.ReceiverEVMCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ReceiverEVM *ReceiverEVMRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceiverEVMTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ReceiverEVM *ReceiverEVMRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceiverEVMTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ReceiverEVM *ReceiverEVMCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ReceiverEVM.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ReceiverEVM *ReceiverEVMTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ReceiverEVM.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ReceiverEVM *ReceiverEVMTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ReceiverEVM.Contract.contract.Transact(opts, method, params...) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x8fcaa0b5. +// +// Solidity: function onRevert(bytes data) returns() +func (_ReceiverEVM *ReceiverEVMTransactor) OnRevert(opts *bind.TransactOpts, data []byte) (*types.Transaction, error) { + return _ReceiverEVM.contract.Transact(opts, "onRevert", data) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x8fcaa0b5. +// +// Solidity: function onRevert(bytes data) returns() +func (_ReceiverEVM *ReceiverEVMSession) OnRevert(data []byte) (*types.Transaction, error) { + return _ReceiverEVM.Contract.OnRevert(&_ReceiverEVM.TransactOpts, data) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x8fcaa0b5. +// +// Solidity: function onRevert(bytes data) returns() +func (_ReceiverEVM *ReceiverEVMTransactorSession) OnRevert(data []byte) (*types.Transaction, error) { + return _ReceiverEVM.Contract.OnRevert(&_ReceiverEVM.TransactOpts, data) +} + +// ReceiveERC20 is a paid mutator transaction binding the contract method 0x357fc5a2. +// +// Solidity: function receiveERC20(uint256 amount, address token, address destination) returns() +func (_ReceiverEVM *ReceiverEVMTransactor) ReceiveERC20(opts *bind.TransactOpts, amount *big.Int, token common.Address, destination common.Address) (*types.Transaction, error) { + return _ReceiverEVM.contract.Transact(opts, "receiveERC20", amount, token, destination) +} + +// ReceiveERC20 is a paid mutator transaction binding the contract method 0x357fc5a2. +// +// Solidity: function receiveERC20(uint256 amount, address token, address destination) returns() +func (_ReceiverEVM *ReceiverEVMSession) ReceiveERC20(amount *big.Int, token common.Address, destination common.Address) (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceiveERC20(&_ReceiverEVM.TransactOpts, amount, token, destination) +} + +// ReceiveERC20 is a paid mutator transaction binding the contract method 0x357fc5a2. +// +// Solidity: function receiveERC20(uint256 amount, address token, address destination) returns() +func (_ReceiverEVM *ReceiverEVMTransactorSession) ReceiveERC20(amount *big.Int, token common.Address, destination common.Address) (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceiveERC20(&_ReceiverEVM.TransactOpts, amount, token, destination) +} + +// ReceiveERC20Partial is a paid mutator transaction binding the contract method 0xc5131691. +// +// Solidity: function receiveERC20Partial(uint256 amount, address token, address destination) returns() +func (_ReceiverEVM *ReceiverEVMTransactor) ReceiveERC20Partial(opts *bind.TransactOpts, amount *big.Int, token common.Address, destination common.Address) (*types.Transaction, error) { + return _ReceiverEVM.contract.Transact(opts, "receiveERC20Partial", amount, token, destination) +} + +// ReceiveERC20Partial is a paid mutator transaction binding the contract method 0xc5131691. +// +// Solidity: function receiveERC20Partial(uint256 amount, address token, address destination) returns() +func (_ReceiverEVM *ReceiverEVMSession) ReceiveERC20Partial(amount *big.Int, token common.Address, destination common.Address) (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceiveERC20Partial(&_ReceiverEVM.TransactOpts, amount, token, destination) +} + +// ReceiveERC20Partial is a paid mutator transaction binding the contract method 0xc5131691. +// +// Solidity: function receiveERC20Partial(uint256 amount, address token, address destination) returns() +func (_ReceiverEVM *ReceiverEVMTransactorSession) ReceiveERC20Partial(amount *big.Int, token common.Address, destination common.Address) (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceiveERC20Partial(&_ReceiverEVM.TransactOpts, amount, token, destination) +} + +// ReceiveNoParams is a paid mutator transaction binding the contract method 0x6ed70169. +// +// Solidity: function receiveNoParams() returns() +func (_ReceiverEVM *ReceiverEVMTransactor) ReceiveNoParams(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ReceiverEVM.contract.Transact(opts, "receiveNoParams") +} + +// ReceiveNoParams is a paid mutator transaction binding the contract method 0x6ed70169. +// +// Solidity: function receiveNoParams() returns() +func (_ReceiverEVM *ReceiverEVMSession) ReceiveNoParams() (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceiveNoParams(&_ReceiverEVM.TransactOpts) +} + +// ReceiveNoParams is a paid mutator transaction binding the contract method 0x6ed70169. +// +// Solidity: function receiveNoParams() returns() +func (_ReceiverEVM *ReceiverEVMTransactorSession) ReceiveNoParams() (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceiveNoParams(&_ReceiverEVM.TransactOpts) +} + +// ReceiveNonPayable is a paid mutator transaction binding the contract method 0xf05b6abf. +// +// Solidity: function receiveNonPayable(string[] strs, uint256[] nums, bool flag) returns() +func (_ReceiverEVM *ReceiverEVMTransactor) ReceiveNonPayable(opts *bind.TransactOpts, strs []string, nums []*big.Int, flag bool) (*types.Transaction, error) { + return _ReceiverEVM.contract.Transact(opts, "receiveNonPayable", strs, nums, flag) +} + +// ReceiveNonPayable is a paid mutator transaction binding the contract method 0xf05b6abf. +// +// Solidity: function receiveNonPayable(string[] strs, uint256[] nums, bool flag) returns() +func (_ReceiverEVM *ReceiverEVMSession) ReceiveNonPayable(strs []string, nums []*big.Int, flag bool) (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceiveNonPayable(&_ReceiverEVM.TransactOpts, strs, nums, flag) +} + +// ReceiveNonPayable is a paid mutator transaction binding the contract method 0xf05b6abf. +// +// Solidity: function receiveNonPayable(string[] strs, uint256[] nums, bool flag) returns() +func (_ReceiverEVM *ReceiverEVMTransactorSession) ReceiveNonPayable(strs []string, nums []*big.Int, flag bool) (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceiveNonPayable(&_ReceiverEVM.TransactOpts, strs, nums, flag) +} + +// ReceivePayable is a paid mutator transaction binding the contract method 0xe04d4f97. +// +// Solidity: function receivePayable(string str, uint256 num, bool flag) payable returns() +func (_ReceiverEVM *ReceiverEVMTransactor) ReceivePayable(opts *bind.TransactOpts, str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _ReceiverEVM.contract.Transact(opts, "receivePayable", str, num, flag) +} + +// ReceivePayable is a paid mutator transaction binding the contract method 0xe04d4f97. +// +// Solidity: function receivePayable(string str, uint256 num, bool flag) payable returns() +func (_ReceiverEVM *ReceiverEVMSession) ReceivePayable(str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceivePayable(&_ReceiverEVM.TransactOpts, str, num, flag) +} + +// ReceivePayable is a paid mutator transaction binding the contract method 0xe04d4f97. +// +// Solidity: function receivePayable(string str, uint256 num, bool flag) payable returns() +func (_ReceiverEVM *ReceiverEVMTransactorSession) ReceivePayable(str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _ReceiverEVM.Contract.ReceivePayable(&_ReceiverEVM.TransactOpts, str, num, flag) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_ReceiverEVM *ReceiverEVMTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _ReceiverEVM.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_ReceiverEVM *ReceiverEVMSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _ReceiverEVM.Contract.Fallback(&_ReceiverEVM.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_ReceiverEVM *ReceiverEVMTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _ReceiverEVM.Contract.Fallback(&_ReceiverEVM.TransactOpts, calldata) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_ReceiverEVM *ReceiverEVMTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ReceiverEVM.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_ReceiverEVM *ReceiverEVMSession) Receive() (*types.Transaction, error) { + return _ReceiverEVM.Contract.Receive(&_ReceiverEVM.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_ReceiverEVM *ReceiverEVMTransactorSession) Receive() (*types.Transaction, error) { + return _ReceiverEVM.Contract.Receive(&_ReceiverEVM.TransactOpts) +} + +// ReceiverEVMReceivedERC20Iterator is returned from FilterReceivedERC20 and is used to iterate over the raw logs and unpacked data for ReceivedERC20 events raised by the ReceiverEVM contract. +type ReceiverEVMReceivedERC20Iterator struct { + Event *ReceiverEVMReceivedERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ReceiverEVMReceivedERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ReceiverEVMReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ReceiverEVMReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ReceiverEVMReceivedERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ReceiverEVMReceivedERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ReceiverEVMReceivedERC20 represents a ReceivedERC20 event raised by the ReceiverEVM contract. +type ReceiverEVMReceivedERC20 struct { + Sender common.Address + Amount *big.Int + Token common.Address + Destination common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedERC20 is a free log retrieval operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_ReceiverEVM *ReceiverEVMFilterer) FilterReceivedERC20(opts *bind.FilterOpts) (*ReceiverEVMReceivedERC20Iterator, error) { + + logs, sub, err := _ReceiverEVM.contract.FilterLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return &ReceiverEVMReceivedERC20Iterator{contract: _ReceiverEVM.contract, event: "ReceivedERC20", logs: logs, sub: sub}, nil +} + +// WatchReceivedERC20 is a free log subscription operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_ReceiverEVM *ReceiverEVMFilterer) WatchReceivedERC20(opts *bind.WatchOpts, sink chan<- *ReceiverEVMReceivedERC20) (event.Subscription, error) { + + logs, sub, err := _ReceiverEVM.contract.WatchLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ReceiverEVMReceivedERC20) + if err := _ReceiverEVM.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedERC20 is a log parse operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_ReceiverEVM *ReceiverEVMFilterer) ParseReceivedERC20(log types.Log) (*ReceiverEVMReceivedERC20, error) { + event := new(ReceiverEVMReceivedERC20) + if err := _ReceiverEVM.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ReceiverEVMReceivedNoParamsIterator is returned from FilterReceivedNoParams and is used to iterate over the raw logs and unpacked data for ReceivedNoParams events raised by the ReceiverEVM contract. +type ReceiverEVMReceivedNoParamsIterator struct { + Event *ReceiverEVMReceivedNoParams // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ReceiverEVMReceivedNoParamsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ReceiverEVMReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ReceiverEVMReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ReceiverEVMReceivedNoParamsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ReceiverEVMReceivedNoParamsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ReceiverEVMReceivedNoParams represents a ReceivedNoParams event raised by the ReceiverEVM contract. +type ReceiverEVMReceivedNoParams struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNoParams is a free log retrieval operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_ReceiverEVM *ReceiverEVMFilterer) FilterReceivedNoParams(opts *bind.FilterOpts) (*ReceiverEVMReceivedNoParamsIterator, error) { + + logs, sub, err := _ReceiverEVM.contract.FilterLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return &ReceiverEVMReceivedNoParamsIterator{contract: _ReceiverEVM.contract, event: "ReceivedNoParams", logs: logs, sub: sub}, nil +} + +// WatchReceivedNoParams is a free log subscription operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_ReceiverEVM *ReceiverEVMFilterer) WatchReceivedNoParams(opts *bind.WatchOpts, sink chan<- *ReceiverEVMReceivedNoParams) (event.Subscription, error) { + + logs, sub, err := _ReceiverEVM.contract.WatchLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ReceiverEVMReceivedNoParams) + if err := _ReceiverEVM.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNoParams is a log parse operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_ReceiverEVM *ReceiverEVMFilterer) ParseReceivedNoParams(log types.Log) (*ReceiverEVMReceivedNoParams, error) { + event := new(ReceiverEVMReceivedNoParams) + if err := _ReceiverEVM.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ReceiverEVMReceivedNonPayableIterator is returned from FilterReceivedNonPayable and is used to iterate over the raw logs and unpacked data for ReceivedNonPayable events raised by the ReceiverEVM contract. +type ReceiverEVMReceivedNonPayableIterator struct { + Event *ReceiverEVMReceivedNonPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ReceiverEVMReceivedNonPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ReceiverEVMReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ReceiverEVMReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ReceiverEVMReceivedNonPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ReceiverEVMReceivedNonPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ReceiverEVMReceivedNonPayable represents a ReceivedNonPayable event raised by the ReceiverEVM contract. +type ReceiverEVMReceivedNonPayable struct { + Sender common.Address + Strs []string + Nums []*big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNonPayable is a free log retrieval operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_ReceiverEVM *ReceiverEVMFilterer) FilterReceivedNonPayable(opts *bind.FilterOpts) (*ReceiverEVMReceivedNonPayableIterator, error) { + + logs, sub, err := _ReceiverEVM.contract.FilterLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return &ReceiverEVMReceivedNonPayableIterator{contract: _ReceiverEVM.contract, event: "ReceivedNonPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedNonPayable is a free log subscription operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_ReceiverEVM *ReceiverEVMFilterer) WatchReceivedNonPayable(opts *bind.WatchOpts, sink chan<- *ReceiverEVMReceivedNonPayable) (event.Subscription, error) { + + logs, sub, err := _ReceiverEVM.contract.WatchLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ReceiverEVMReceivedNonPayable) + if err := _ReceiverEVM.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNonPayable is a log parse operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_ReceiverEVM *ReceiverEVMFilterer) ParseReceivedNonPayable(log types.Log) (*ReceiverEVMReceivedNonPayable, error) { + event := new(ReceiverEVMReceivedNonPayable) + if err := _ReceiverEVM.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ReceiverEVMReceivedPayableIterator is returned from FilterReceivedPayable and is used to iterate over the raw logs and unpacked data for ReceivedPayable events raised by the ReceiverEVM contract. +type ReceiverEVMReceivedPayableIterator struct { + Event *ReceiverEVMReceivedPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ReceiverEVMReceivedPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ReceiverEVMReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ReceiverEVMReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ReceiverEVMReceivedPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ReceiverEVMReceivedPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ReceiverEVMReceivedPayable represents a ReceivedPayable event raised by the ReceiverEVM contract. +type ReceiverEVMReceivedPayable struct { + Sender common.Address + Value *big.Int + Str string + Num *big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedPayable is a free log retrieval operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_ReceiverEVM *ReceiverEVMFilterer) FilterReceivedPayable(opts *bind.FilterOpts) (*ReceiverEVMReceivedPayableIterator, error) { + + logs, sub, err := _ReceiverEVM.contract.FilterLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return &ReceiverEVMReceivedPayableIterator{contract: _ReceiverEVM.contract, event: "ReceivedPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedPayable is a free log subscription operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_ReceiverEVM *ReceiverEVMFilterer) WatchReceivedPayable(opts *bind.WatchOpts, sink chan<- *ReceiverEVMReceivedPayable) (event.Subscription, error) { + + logs, sub, err := _ReceiverEVM.contract.WatchLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ReceiverEVMReceivedPayable) + if err := _ReceiverEVM.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedPayable is a log parse operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_ReceiverEVM *ReceiverEVMFilterer) ParseReceivedPayable(log types.Log) (*ReceiverEVMReceivedPayable, error) { + event := new(ReceiverEVMReceivedPayable) + if err := _ReceiverEVM.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ReceiverEVMReceivedRevertIterator is returned from FilterReceivedRevert and is used to iterate over the raw logs and unpacked data for ReceivedRevert events raised by the ReceiverEVM contract. +type ReceiverEVMReceivedRevertIterator struct { + Event *ReceiverEVMReceivedRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ReceiverEVMReceivedRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ReceiverEVMReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ReceiverEVMReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ReceiverEVMReceivedRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ReceiverEVMReceivedRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ReceiverEVMReceivedRevert represents a ReceivedRevert event raised by the ReceiverEVM contract. +type ReceiverEVMReceivedRevert struct { + Sender common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedRevert is a free log retrieval operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_ReceiverEVM *ReceiverEVMFilterer) FilterReceivedRevert(opts *bind.FilterOpts) (*ReceiverEVMReceivedRevertIterator, error) { + + logs, sub, err := _ReceiverEVM.contract.FilterLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return &ReceiverEVMReceivedRevertIterator{contract: _ReceiverEVM.contract, event: "ReceivedRevert", logs: logs, sub: sub}, nil +} + +// WatchReceivedRevert is a free log subscription operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_ReceiverEVM *ReceiverEVMFilterer) WatchReceivedRevert(opts *bind.WatchOpts, sink chan<- *ReceiverEVMReceivedRevert) (event.Subscription, error) { + + logs, sub, err := _ReceiverEVM.contract.WatchLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ReceiverEVMReceivedRevert) + if err := _ReceiverEVM.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedRevert is a log parse operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_ReceiverEVM *ReceiverEVMFilterer) ParseReceivedRevert(log types.Log) (*ReceiverEVMReceivedRevert, error) { + event := new(ReceiverEVMReceivedRevert) + if err := _ReceiverEVM.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/reentrancyguard.sol/reentrancyguard.go b/v2/pkg/reentrancyguard.sol/reentrancyguard.go new file mode 100644 index 00000000..6d492ba0 --- /dev/null +++ b/v2/pkg/reentrancyguard.sol/reentrancyguard.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package reentrancyguard + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ReentrancyGuardMetaData contains all meta data concerning the ReentrancyGuard contract. +var ReentrancyGuardMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]}]", +} + +// ReentrancyGuardABI is the input ABI used to generate the binding from. +// Deprecated: Use ReentrancyGuardMetaData.ABI instead. +var ReentrancyGuardABI = ReentrancyGuardMetaData.ABI + +// ReentrancyGuard is an auto generated Go binding around an Ethereum contract. +type ReentrancyGuard struct { + ReentrancyGuardCaller // Read-only binding to the contract + ReentrancyGuardTransactor // Write-only binding to the contract + ReentrancyGuardFilterer // Log filterer for contract events +} + +// ReentrancyGuardCaller is an auto generated read-only Go binding around an Ethereum contract. +type ReentrancyGuardCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ReentrancyGuardTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ReentrancyGuardTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ReentrancyGuardFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ReentrancyGuardFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ReentrancyGuardSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ReentrancyGuardSession struct { + Contract *ReentrancyGuard // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ReentrancyGuardCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ReentrancyGuardCallerSession struct { + Contract *ReentrancyGuardCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ReentrancyGuardTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ReentrancyGuardTransactorSession struct { + Contract *ReentrancyGuardTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ReentrancyGuardRaw is an auto generated low-level Go binding around an Ethereum contract. +type ReentrancyGuardRaw struct { + Contract *ReentrancyGuard // Generic contract binding to access the raw methods on +} + +// ReentrancyGuardCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ReentrancyGuardCallerRaw struct { + Contract *ReentrancyGuardCaller // Generic read-only contract binding to access the raw methods on +} + +// ReentrancyGuardTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ReentrancyGuardTransactorRaw struct { + Contract *ReentrancyGuardTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewReentrancyGuard creates a new instance of ReentrancyGuard, bound to a specific deployed contract. +func NewReentrancyGuard(address common.Address, backend bind.ContractBackend) (*ReentrancyGuard, error) { + contract, err := bindReentrancyGuard(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ReentrancyGuard{ReentrancyGuardCaller: ReentrancyGuardCaller{contract: contract}, ReentrancyGuardTransactor: ReentrancyGuardTransactor{contract: contract}, ReentrancyGuardFilterer: ReentrancyGuardFilterer{contract: contract}}, nil +} + +// NewReentrancyGuardCaller creates a new read-only instance of ReentrancyGuard, bound to a specific deployed contract. +func NewReentrancyGuardCaller(address common.Address, caller bind.ContractCaller) (*ReentrancyGuardCaller, error) { + contract, err := bindReentrancyGuard(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ReentrancyGuardCaller{contract: contract}, nil +} + +// NewReentrancyGuardTransactor creates a new write-only instance of ReentrancyGuard, bound to a specific deployed contract. +func NewReentrancyGuardTransactor(address common.Address, transactor bind.ContractTransactor) (*ReentrancyGuardTransactor, error) { + contract, err := bindReentrancyGuard(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ReentrancyGuardTransactor{contract: contract}, nil +} + +// NewReentrancyGuardFilterer creates a new log filterer instance of ReentrancyGuard, bound to a specific deployed contract. +func NewReentrancyGuardFilterer(address common.Address, filterer bind.ContractFilterer) (*ReentrancyGuardFilterer, error) { + contract, err := bindReentrancyGuard(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ReentrancyGuardFilterer{contract: contract}, nil +} + +// bindReentrancyGuard binds a generic wrapper to an already deployed contract. +func bindReentrancyGuard(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ReentrancyGuardMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ReentrancyGuard *ReentrancyGuardRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ReentrancyGuard.Contract.ReentrancyGuardCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ReentrancyGuard *ReentrancyGuardRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ReentrancyGuard.Contract.ReentrancyGuardTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ReentrancyGuard *ReentrancyGuardRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ReentrancyGuard.Contract.ReentrancyGuardTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ReentrancyGuard *ReentrancyGuardCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ReentrancyGuard.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ReentrancyGuard *ReentrancyGuardTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ReentrancyGuard.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ReentrancyGuard *ReentrancyGuardTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ReentrancyGuard.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go b/v2/pkg/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go new file mode 100644 index 00000000..6badb5ab --- /dev/null +++ b/v2/pkg/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go @@ -0,0 +1,315 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package reentrancyguardupgradeable + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ReentrancyGuardUpgradeableMetaData contains all meta data concerning the ReentrancyGuardUpgradeable contract. +var ReentrancyGuardUpgradeableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]}]", +} + +// ReentrancyGuardUpgradeableABI is the input ABI used to generate the binding from. +// Deprecated: Use ReentrancyGuardUpgradeableMetaData.ABI instead. +var ReentrancyGuardUpgradeableABI = ReentrancyGuardUpgradeableMetaData.ABI + +// ReentrancyGuardUpgradeable is an auto generated Go binding around an Ethereum contract. +type ReentrancyGuardUpgradeable struct { + ReentrancyGuardUpgradeableCaller // Read-only binding to the contract + ReentrancyGuardUpgradeableTransactor // Write-only binding to the contract + ReentrancyGuardUpgradeableFilterer // Log filterer for contract events +} + +// ReentrancyGuardUpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. +type ReentrancyGuardUpgradeableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ReentrancyGuardUpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ReentrancyGuardUpgradeableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ReentrancyGuardUpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ReentrancyGuardUpgradeableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ReentrancyGuardUpgradeableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ReentrancyGuardUpgradeableSession struct { + Contract *ReentrancyGuardUpgradeable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ReentrancyGuardUpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ReentrancyGuardUpgradeableCallerSession struct { + Contract *ReentrancyGuardUpgradeableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ReentrancyGuardUpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ReentrancyGuardUpgradeableTransactorSession struct { + Contract *ReentrancyGuardUpgradeableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ReentrancyGuardUpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. +type ReentrancyGuardUpgradeableRaw struct { + Contract *ReentrancyGuardUpgradeable // Generic contract binding to access the raw methods on +} + +// ReentrancyGuardUpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ReentrancyGuardUpgradeableCallerRaw struct { + Contract *ReentrancyGuardUpgradeableCaller // Generic read-only contract binding to access the raw methods on +} + +// ReentrancyGuardUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ReentrancyGuardUpgradeableTransactorRaw struct { + Contract *ReentrancyGuardUpgradeableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewReentrancyGuardUpgradeable creates a new instance of ReentrancyGuardUpgradeable, bound to a specific deployed contract. +func NewReentrancyGuardUpgradeable(address common.Address, backend bind.ContractBackend) (*ReentrancyGuardUpgradeable, error) { + contract, err := bindReentrancyGuardUpgradeable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ReentrancyGuardUpgradeable{ReentrancyGuardUpgradeableCaller: ReentrancyGuardUpgradeableCaller{contract: contract}, ReentrancyGuardUpgradeableTransactor: ReentrancyGuardUpgradeableTransactor{contract: contract}, ReentrancyGuardUpgradeableFilterer: ReentrancyGuardUpgradeableFilterer{contract: contract}}, nil +} + +// NewReentrancyGuardUpgradeableCaller creates a new read-only instance of ReentrancyGuardUpgradeable, bound to a specific deployed contract. +func NewReentrancyGuardUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*ReentrancyGuardUpgradeableCaller, error) { + contract, err := bindReentrancyGuardUpgradeable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ReentrancyGuardUpgradeableCaller{contract: contract}, nil +} + +// NewReentrancyGuardUpgradeableTransactor creates a new write-only instance of ReentrancyGuardUpgradeable, bound to a specific deployed contract. +func NewReentrancyGuardUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*ReentrancyGuardUpgradeableTransactor, error) { + contract, err := bindReentrancyGuardUpgradeable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ReentrancyGuardUpgradeableTransactor{contract: contract}, nil +} + +// NewReentrancyGuardUpgradeableFilterer creates a new log filterer instance of ReentrancyGuardUpgradeable, bound to a specific deployed contract. +func NewReentrancyGuardUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*ReentrancyGuardUpgradeableFilterer, error) { + contract, err := bindReentrancyGuardUpgradeable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ReentrancyGuardUpgradeableFilterer{contract: contract}, nil +} + +// bindReentrancyGuardUpgradeable binds a generic wrapper to an already deployed contract. +func bindReentrancyGuardUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ReentrancyGuardUpgradeableMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ReentrancyGuardUpgradeable.Contract.ReentrancyGuardUpgradeableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ReentrancyGuardUpgradeable.Contract.ReentrancyGuardUpgradeableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ReentrancyGuardUpgradeable.Contract.ReentrancyGuardUpgradeableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ReentrancyGuardUpgradeable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ReentrancyGuardUpgradeable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ReentrancyGuardUpgradeable.Contract.contract.Transact(opts, method, params...) +} + +// ReentrancyGuardUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ReentrancyGuardUpgradeable contract. +type ReentrancyGuardUpgradeableInitializedIterator struct { + Event *ReentrancyGuardUpgradeableInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ReentrancyGuardUpgradeableInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ReentrancyGuardUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ReentrancyGuardUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ReentrancyGuardUpgradeableInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ReentrancyGuardUpgradeableInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ReentrancyGuardUpgradeableInitialized represents a Initialized event raised by the ReentrancyGuardUpgradeable contract. +type ReentrancyGuardUpgradeableInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*ReentrancyGuardUpgradeableInitializedIterator, error) { + + logs, sub, err := _ReentrancyGuardUpgradeable.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &ReentrancyGuardUpgradeableInitializedIterator{contract: _ReentrancyGuardUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ReentrancyGuardUpgradeableInitialized) (event.Subscription, error) { + + logs, sub, err := _ReentrancyGuardUpgradeable.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ReentrancyGuardUpgradeableInitialized) + if err := _ReentrancyGuardUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableFilterer) ParseInitialized(log types.Log) (*ReentrancyGuardUpgradeableInitialized, error) { + event := new(ReentrancyGuardUpgradeableInitialized) + if err := _ReentrancyGuardUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/safeconsole.sol/safeconsole.go b/v2/pkg/safeconsole.sol/safeconsole.go new file mode 100644 index 00000000..75f5113d --- /dev/null +++ b/v2/pkg/safeconsole.sol/safeconsole.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package safeconsole + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// SafeconsoleMetaData contains all meta data concerning the Safeconsole contract. +var SafeconsoleMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122010d0f421153ad6b408823b000b8d6405eb3a4715d0aed8860bdb9898d2215f2264736f6c634300081a0033", +} + +// SafeconsoleABI is the input ABI used to generate the binding from. +// Deprecated: Use SafeconsoleMetaData.ABI instead. +var SafeconsoleABI = SafeconsoleMetaData.ABI + +// SafeconsoleBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use SafeconsoleMetaData.Bin instead. +var SafeconsoleBin = SafeconsoleMetaData.Bin + +// DeploySafeconsole deploys a new Ethereum contract, binding an instance of Safeconsole to it. +func DeploySafeconsole(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Safeconsole, error) { + parsed, err := SafeconsoleMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SafeconsoleBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Safeconsole{SafeconsoleCaller: SafeconsoleCaller{contract: contract}, SafeconsoleTransactor: SafeconsoleTransactor{contract: contract}, SafeconsoleFilterer: SafeconsoleFilterer{contract: contract}}, nil +} + +// Safeconsole is an auto generated Go binding around an Ethereum contract. +type Safeconsole struct { + SafeconsoleCaller // Read-only binding to the contract + SafeconsoleTransactor // Write-only binding to the contract + SafeconsoleFilterer // Log filterer for contract events +} + +// SafeconsoleCaller is an auto generated read-only Go binding around an Ethereum contract. +type SafeconsoleCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeconsoleTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SafeconsoleTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeconsoleFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SafeconsoleFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeconsoleSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SafeconsoleSession struct { + Contract *Safeconsole // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SafeconsoleCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SafeconsoleCallerSession struct { + Contract *SafeconsoleCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SafeconsoleTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SafeconsoleTransactorSession struct { + Contract *SafeconsoleTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SafeconsoleRaw is an auto generated low-level Go binding around an Ethereum contract. +type SafeconsoleRaw struct { + Contract *Safeconsole // Generic contract binding to access the raw methods on +} + +// SafeconsoleCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SafeconsoleCallerRaw struct { + Contract *SafeconsoleCaller // Generic read-only contract binding to access the raw methods on +} + +// SafeconsoleTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SafeconsoleTransactorRaw struct { + Contract *SafeconsoleTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSafeconsole creates a new instance of Safeconsole, bound to a specific deployed contract. +func NewSafeconsole(address common.Address, backend bind.ContractBackend) (*Safeconsole, error) { + contract, err := bindSafeconsole(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Safeconsole{SafeconsoleCaller: SafeconsoleCaller{contract: contract}, SafeconsoleTransactor: SafeconsoleTransactor{contract: contract}, SafeconsoleFilterer: SafeconsoleFilterer{contract: contract}}, nil +} + +// NewSafeconsoleCaller creates a new read-only instance of Safeconsole, bound to a specific deployed contract. +func NewSafeconsoleCaller(address common.Address, caller bind.ContractCaller) (*SafeconsoleCaller, error) { + contract, err := bindSafeconsole(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SafeconsoleCaller{contract: contract}, nil +} + +// NewSafeconsoleTransactor creates a new write-only instance of Safeconsole, bound to a specific deployed contract. +func NewSafeconsoleTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeconsoleTransactor, error) { + contract, err := bindSafeconsole(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SafeconsoleTransactor{contract: contract}, nil +} + +// NewSafeconsoleFilterer creates a new log filterer instance of Safeconsole, bound to a specific deployed contract. +func NewSafeconsoleFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeconsoleFilterer, error) { + contract, err := bindSafeconsole(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SafeconsoleFilterer{contract: contract}, nil +} + +// bindSafeconsole binds a generic wrapper to an already deployed contract. +func bindSafeconsole(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SafeconsoleMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Safeconsole *SafeconsoleRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Safeconsole.Contract.SafeconsoleCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Safeconsole *SafeconsoleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Safeconsole.Contract.SafeconsoleTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Safeconsole *SafeconsoleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Safeconsole.Contract.SafeconsoleTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Safeconsole *SafeconsoleCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Safeconsole.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Safeconsole *SafeconsoleTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Safeconsole.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Safeconsole *SafeconsoleTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Safeconsole.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/safeerc20.sol/safeerc20.go b/v2/pkg/safeerc20.sol/safeerc20.go new file mode 100644 index 00000000..819e7619 --- /dev/null +++ b/v2/pkg/safeerc20.sol/safeerc20.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package safeerc20 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// SafeERC20MetaData contains all meta data concerning the SafeERC20 contract. +var SafeERC20MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"SafeERC20FailedDecreaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"currentAllowance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requestedDecrease\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]}]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b149ed6660f3fbf5a50e73e0348cd9d9861a3fa7d998ed32eee66773e3cb05b864736f6c634300081a0033", +} + +// SafeERC20ABI is the input ABI used to generate the binding from. +// Deprecated: Use SafeERC20MetaData.ABI instead. +var SafeERC20ABI = SafeERC20MetaData.ABI + +// SafeERC20Bin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use SafeERC20MetaData.Bin instead. +var SafeERC20Bin = SafeERC20MetaData.Bin + +// DeploySafeERC20 deploys a new Ethereum contract, binding an instance of SafeERC20 to it. +func DeploySafeERC20(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeERC20, error) { + parsed, err := SafeERC20MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SafeERC20Bin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &SafeERC20{SafeERC20Caller: SafeERC20Caller{contract: contract}, SafeERC20Transactor: SafeERC20Transactor{contract: contract}, SafeERC20Filterer: SafeERC20Filterer{contract: contract}}, nil +} + +// SafeERC20 is an auto generated Go binding around an Ethereum contract. +type SafeERC20 struct { + SafeERC20Caller // Read-only binding to the contract + SafeERC20Transactor // Write-only binding to the contract + SafeERC20Filterer // Log filterer for contract events +} + +// SafeERC20Caller is an auto generated read-only Go binding around an Ethereum contract. +type SafeERC20Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeERC20Transactor is an auto generated write-only Go binding around an Ethereum contract. +type SafeERC20Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SafeERC20Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeERC20Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SafeERC20Session struct { + Contract *SafeERC20 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SafeERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SafeERC20CallerSession struct { + Contract *SafeERC20Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SafeERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SafeERC20TransactorSession struct { + Contract *SafeERC20Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SafeERC20Raw is an auto generated low-level Go binding around an Ethereum contract. +type SafeERC20Raw struct { + Contract *SafeERC20 // Generic contract binding to access the raw methods on +} + +// SafeERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SafeERC20CallerRaw struct { + Contract *SafeERC20Caller // Generic read-only contract binding to access the raw methods on +} + +// SafeERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SafeERC20TransactorRaw struct { + Contract *SafeERC20Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewSafeERC20 creates a new instance of SafeERC20, bound to a specific deployed contract. +func NewSafeERC20(address common.Address, backend bind.ContractBackend) (*SafeERC20, error) { + contract, err := bindSafeERC20(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SafeERC20{SafeERC20Caller: SafeERC20Caller{contract: contract}, SafeERC20Transactor: SafeERC20Transactor{contract: contract}, SafeERC20Filterer: SafeERC20Filterer{contract: contract}}, nil +} + +// NewSafeERC20Caller creates a new read-only instance of SafeERC20, bound to a specific deployed contract. +func NewSafeERC20Caller(address common.Address, caller bind.ContractCaller) (*SafeERC20Caller, error) { + contract, err := bindSafeERC20(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SafeERC20Caller{contract: contract}, nil +} + +// NewSafeERC20Transactor creates a new write-only instance of SafeERC20, bound to a specific deployed contract. +func NewSafeERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*SafeERC20Transactor, error) { + contract, err := bindSafeERC20(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SafeERC20Transactor{contract: contract}, nil +} + +// NewSafeERC20Filterer creates a new log filterer instance of SafeERC20, bound to a specific deployed contract. +func NewSafeERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*SafeERC20Filterer, error) { + contract, err := bindSafeERC20(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SafeERC20Filterer{contract: contract}, nil +} + +// bindSafeERC20 binds a generic wrapper to an already deployed contract. +func bindSafeERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SafeERC20MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SafeERC20 *SafeERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SafeERC20.Contract.SafeERC20Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SafeERC20 *SafeERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SafeERC20.Contract.SafeERC20Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SafeERC20 *SafeERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SafeERC20.Contract.SafeERC20Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SafeERC20 *SafeERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SafeERC20.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SafeERC20 *SafeERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SafeERC20.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SafeERC20 *SafeERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SafeERC20.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/senderzevm.sol/senderzevm.go b/v2/pkg/senderzevm.sol/senderzevm.go new file mode 100644 index 00000000..90617bb0 --- /dev/null +++ b/v2/pkg/senderzevm.sol/senderzevm.go @@ -0,0 +1,276 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package senderzevm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// SenderZEVMMetaData contains all meta data concerning the SenderZEVM contract. +var SenderZEVMMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_gateway\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"callReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"gateway\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdrawAndCallReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]}]", + Bin: "0x6080604052348015600f57600080fd5b506040516107f63803806107f6833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b6107698061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b61461005b578063a0a1730b146100a4575b600080fd5b6100596100543660046104c1565b6100b7565b005b60005461007b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100596100b236600461057c565b6102af565b60008383836040516024016100ce93929190610665565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810189905291925086169063095ea7b3906044016020604051808303816000875af11580156101be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e2919061068f565b610218576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517f7993c1e000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690637993c1e090610274908a908a908a9087906004016106b3565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008383836040516024016102c693929190610665565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f0ac7c44c00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690630ac7c44c906103949088908590600401610705565b600060405180830381600087803b1580156103ae57600080fd5b505af11580156103c2573d6000803e3d6000fd5b505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261040d57600080fd5b81356020830160008067ffffffffffffffff84111561042e5761042e6103cd565b506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85018116603f0116810181811067ffffffffffffffff8211171561047b5761047b6103cd565b60405283815290508082840187101561049357600080fd5b838360208301376000602085830101528094505050505092915050565b80151581146104be57600080fd5b50565b60008060008060008060c087890312156104da57600080fd5b863567ffffffffffffffff8111156104f157600080fd5b6104fd89828a016103fc565b96505060208701359450604087013573ffffffffffffffffffffffffffffffffffffffff8116811461052e57600080fd5b9350606087013567ffffffffffffffff81111561054a57600080fd5b61055689828a016103fc565b9350506080870135915060a087013561056e816104b0565b809150509295509295509295565b6000806000806080858703121561059257600080fd5b843567ffffffffffffffff8111156105a957600080fd5b6105b5878288016103fc565b945050602085013567ffffffffffffffff8111156105d257600080fd5b6105de878288016103fc565b9350506040850135915060608501356105f6816104b0565b939692955090935050565b6000815180845260005b818110156106275760208185018101518683018201520161060b565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6060815260006106786060830186610601565b602083019490945250901515604090910152919050565b6000602082840312156106a157600080fd5b81516106ac816104b0565b9392505050565b6080815260006106c66080830187610601565b85602084015273ffffffffffffffffffffffffffffffffffffffff8516604084015282810360608401526106fa8185610601565b979650505050505050565b6040815260006107186040830185610601565b828103602084015261072a8185610601565b9594505050505056fea26469706673582212204babda0c6b9bc7b1d80b616dce92ddfbe79ae0bb96aad4f2c77ffb6a8c63da7f64736f6c634300081a0033", +} + +// SenderZEVMABI is the input ABI used to generate the binding from. +// Deprecated: Use SenderZEVMMetaData.ABI instead. +var SenderZEVMABI = SenderZEVMMetaData.ABI + +// SenderZEVMBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use SenderZEVMMetaData.Bin instead. +var SenderZEVMBin = SenderZEVMMetaData.Bin + +// DeploySenderZEVM deploys a new Ethereum contract, binding an instance of SenderZEVM to it. +func DeploySenderZEVM(auth *bind.TransactOpts, backend bind.ContractBackend, _gateway common.Address) (common.Address, *types.Transaction, *SenderZEVM, error) { + parsed, err := SenderZEVMMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SenderZEVMBin), backend, _gateway) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &SenderZEVM{SenderZEVMCaller: SenderZEVMCaller{contract: contract}, SenderZEVMTransactor: SenderZEVMTransactor{contract: contract}, SenderZEVMFilterer: SenderZEVMFilterer{contract: contract}}, nil +} + +// SenderZEVM is an auto generated Go binding around an Ethereum contract. +type SenderZEVM struct { + SenderZEVMCaller // Read-only binding to the contract + SenderZEVMTransactor // Write-only binding to the contract + SenderZEVMFilterer // Log filterer for contract events +} + +// SenderZEVMCaller is an auto generated read-only Go binding around an Ethereum contract. +type SenderZEVMCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SenderZEVMTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SenderZEVMTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SenderZEVMFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SenderZEVMFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SenderZEVMSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SenderZEVMSession struct { + Contract *SenderZEVM // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SenderZEVMCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SenderZEVMCallerSession struct { + Contract *SenderZEVMCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SenderZEVMTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SenderZEVMTransactorSession struct { + Contract *SenderZEVMTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SenderZEVMRaw is an auto generated low-level Go binding around an Ethereum contract. +type SenderZEVMRaw struct { + Contract *SenderZEVM // Generic contract binding to access the raw methods on +} + +// SenderZEVMCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SenderZEVMCallerRaw struct { + Contract *SenderZEVMCaller // Generic read-only contract binding to access the raw methods on +} + +// SenderZEVMTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SenderZEVMTransactorRaw struct { + Contract *SenderZEVMTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSenderZEVM creates a new instance of SenderZEVM, bound to a specific deployed contract. +func NewSenderZEVM(address common.Address, backend bind.ContractBackend) (*SenderZEVM, error) { + contract, err := bindSenderZEVM(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SenderZEVM{SenderZEVMCaller: SenderZEVMCaller{contract: contract}, SenderZEVMTransactor: SenderZEVMTransactor{contract: contract}, SenderZEVMFilterer: SenderZEVMFilterer{contract: contract}}, nil +} + +// NewSenderZEVMCaller creates a new read-only instance of SenderZEVM, bound to a specific deployed contract. +func NewSenderZEVMCaller(address common.Address, caller bind.ContractCaller) (*SenderZEVMCaller, error) { + contract, err := bindSenderZEVM(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SenderZEVMCaller{contract: contract}, nil +} + +// NewSenderZEVMTransactor creates a new write-only instance of SenderZEVM, bound to a specific deployed contract. +func NewSenderZEVMTransactor(address common.Address, transactor bind.ContractTransactor) (*SenderZEVMTransactor, error) { + contract, err := bindSenderZEVM(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SenderZEVMTransactor{contract: contract}, nil +} + +// NewSenderZEVMFilterer creates a new log filterer instance of SenderZEVM, bound to a specific deployed contract. +func NewSenderZEVMFilterer(address common.Address, filterer bind.ContractFilterer) (*SenderZEVMFilterer, error) { + contract, err := bindSenderZEVM(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SenderZEVMFilterer{contract: contract}, nil +} + +// bindSenderZEVM binds a generic wrapper to an already deployed contract. +func bindSenderZEVM(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SenderZEVMMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SenderZEVM *SenderZEVMRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SenderZEVM.Contract.SenderZEVMCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SenderZEVM *SenderZEVMRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SenderZEVM.Contract.SenderZEVMTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SenderZEVM *SenderZEVMRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SenderZEVM.Contract.SenderZEVMTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SenderZEVM *SenderZEVMCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SenderZEVM.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SenderZEVM *SenderZEVMTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SenderZEVM.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SenderZEVM *SenderZEVMTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SenderZEVM.Contract.contract.Transact(opts, method, params...) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_SenderZEVM *SenderZEVMCaller) Gateway(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SenderZEVM.contract.Call(opts, &out, "gateway") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_SenderZEVM *SenderZEVMSession) Gateway() (common.Address, error) { + return _SenderZEVM.Contract.Gateway(&_SenderZEVM.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_SenderZEVM *SenderZEVMCallerSession) Gateway() (common.Address, error) { + return _SenderZEVM.Contract.Gateway(&_SenderZEVM.CallOpts) +} + +// CallReceiver is a paid mutator transaction binding the contract method 0xa0a1730b. +// +// Solidity: function callReceiver(bytes receiver, string str, uint256 num, bool flag) returns() +func (_SenderZEVM *SenderZEVMTransactor) CallReceiver(opts *bind.TransactOpts, receiver []byte, str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _SenderZEVM.contract.Transact(opts, "callReceiver", receiver, str, num, flag) +} + +// CallReceiver is a paid mutator transaction binding the contract method 0xa0a1730b. +// +// Solidity: function callReceiver(bytes receiver, string str, uint256 num, bool flag) returns() +func (_SenderZEVM *SenderZEVMSession) CallReceiver(receiver []byte, str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _SenderZEVM.Contract.CallReceiver(&_SenderZEVM.TransactOpts, receiver, str, num, flag) +} + +// CallReceiver is a paid mutator transaction binding the contract method 0xa0a1730b. +// +// Solidity: function callReceiver(bytes receiver, string str, uint256 num, bool flag) returns() +func (_SenderZEVM *SenderZEVMTransactorSession) CallReceiver(receiver []byte, str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _SenderZEVM.Contract.CallReceiver(&_SenderZEVM.TransactOpts, receiver, str, num, flag) +} + +// WithdrawAndCallReceiver is a paid mutator transaction binding the contract method 0x0abd8905. +// +// Solidity: function withdrawAndCallReceiver(bytes receiver, uint256 amount, address zrc20, string str, uint256 num, bool flag) returns() +func (_SenderZEVM *SenderZEVMTransactor) WithdrawAndCallReceiver(opts *bind.TransactOpts, receiver []byte, amount *big.Int, zrc20 common.Address, str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _SenderZEVM.contract.Transact(opts, "withdrawAndCallReceiver", receiver, amount, zrc20, str, num, flag) +} + +// WithdrawAndCallReceiver is a paid mutator transaction binding the contract method 0x0abd8905. +// +// Solidity: function withdrawAndCallReceiver(bytes receiver, uint256 amount, address zrc20, string str, uint256 num, bool flag) returns() +func (_SenderZEVM *SenderZEVMSession) WithdrawAndCallReceiver(receiver []byte, amount *big.Int, zrc20 common.Address, str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _SenderZEVM.Contract.WithdrawAndCallReceiver(&_SenderZEVM.TransactOpts, receiver, amount, zrc20, str, num, flag) +} + +// WithdrawAndCallReceiver is a paid mutator transaction binding the contract method 0x0abd8905. +// +// Solidity: function withdrawAndCallReceiver(bytes receiver, uint256 amount, address zrc20, string str, uint256 num, bool flag) returns() +func (_SenderZEVM *SenderZEVMTransactorSession) WithdrawAndCallReceiver(receiver []byte, amount *big.Int, zrc20 common.Address, str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _SenderZEVM.Contract.WithdrawAndCallReceiver(&_SenderZEVM.TransactOpts, receiver, amount, zrc20, str, num, flag) +} diff --git a/v2/pkg/signedmath.sol/signedmath.go b/v2/pkg/signedmath.sol/signedmath.go new file mode 100644 index 00000000..34f4b0da --- /dev/null +++ b/v2/pkg/signedmath.sol/signedmath.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package signedmath + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// SignedMathMetaData contains all meta data concerning the SignedMath contract. +var SignedMathMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202dd523a6f2a20254e80b39b9af949f0e1516726eac5401215b97c102c776da6c64736f6c634300081a0033", +} + +// SignedMathABI is the input ABI used to generate the binding from. +// Deprecated: Use SignedMathMetaData.ABI instead. +var SignedMathABI = SignedMathMetaData.ABI + +// SignedMathBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use SignedMathMetaData.Bin instead. +var SignedMathBin = SignedMathMetaData.Bin + +// DeploySignedMath deploys a new Ethereum contract, binding an instance of SignedMath to it. +func DeploySignedMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SignedMath, error) { + parsed, err := SignedMathMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SignedMathBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &SignedMath{SignedMathCaller: SignedMathCaller{contract: contract}, SignedMathTransactor: SignedMathTransactor{contract: contract}, SignedMathFilterer: SignedMathFilterer{contract: contract}}, nil +} + +// SignedMath is an auto generated Go binding around an Ethereum contract. +type SignedMath struct { + SignedMathCaller // Read-only binding to the contract + SignedMathTransactor // Write-only binding to the contract + SignedMathFilterer // Log filterer for contract events +} + +// SignedMathCaller is an auto generated read-only Go binding around an Ethereum contract. +type SignedMathCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SignedMathTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SignedMathTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SignedMathFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SignedMathFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SignedMathSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SignedMathSession struct { + Contract *SignedMath // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SignedMathCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SignedMathCallerSession struct { + Contract *SignedMathCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SignedMathTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SignedMathTransactorSession struct { + Contract *SignedMathTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SignedMathRaw is an auto generated low-level Go binding around an Ethereum contract. +type SignedMathRaw struct { + Contract *SignedMath // Generic contract binding to access the raw methods on +} + +// SignedMathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SignedMathCallerRaw struct { + Contract *SignedMathCaller // Generic read-only contract binding to access the raw methods on +} + +// SignedMathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SignedMathTransactorRaw struct { + Contract *SignedMathTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSignedMath creates a new instance of SignedMath, bound to a specific deployed contract. +func NewSignedMath(address common.Address, backend bind.ContractBackend) (*SignedMath, error) { + contract, err := bindSignedMath(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SignedMath{SignedMathCaller: SignedMathCaller{contract: contract}, SignedMathTransactor: SignedMathTransactor{contract: contract}, SignedMathFilterer: SignedMathFilterer{contract: contract}}, nil +} + +// NewSignedMathCaller creates a new read-only instance of SignedMath, bound to a specific deployed contract. +func NewSignedMathCaller(address common.Address, caller bind.ContractCaller) (*SignedMathCaller, error) { + contract, err := bindSignedMath(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SignedMathCaller{contract: contract}, nil +} + +// NewSignedMathTransactor creates a new write-only instance of SignedMath, bound to a specific deployed contract. +func NewSignedMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SignedMathTransactor, error) { + contract, err := bindSignedMath(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SignedMathTransactor{contract: contract}, nil +} + +// NewSignedMathFilterer creates a new log filterer instance of SignedMath, bound to a specific deployed contract. +func NewSignedMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SignedMathFilterer, error) { + contract, err := bindSignedMath(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SignedMathFilterer{contract: contract}, nil +} + +// bindSignedMath binds a generic wrapper to an already deployed contract. +func bindSignedMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SignedMathMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SignedMath *SignedMathRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SignedMath.Contract.SignedMathCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SignedMath *SignedMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SignedMath.Contract.SignedMathTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SignedMath *SignedMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SignedMath.Contract.SignedMathTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SignedMath *SignedMathCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SignedMath.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SignedMath *SignedMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SignedMath.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SignedMath *SignedMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SignedMath.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/stdassertions.sol/stdassertions.go b/v2/pkg/stdassertions.sol/stdassertions.go new file mode 100644 index 00000000..41be5344 --- /dev/null +++ b/v2/pkg/stdassertions.sol/stdassertions.go @@ -0,0 +1,3173 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdassertions + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdAssertionsMetaData contains all meta data concerning the StdAssertions contract. +var StdAssertionsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"failed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"log\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_address\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes32\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_int\",\"inputs\":[{\"name\":\"\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_address\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes32\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_string\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_string\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_uint\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"logs\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", +} + +// StdAssertionsABI is the input ABI used to generate the binding from. +// Deprecated: Use StdAssertionsMetaData.ABI instead. +var StdAssertionsABI = StdAssertionsMetaData.ABI + +// StdAssertions is an auto generated Go binding around an Ethereum contract. +type StdAssertions struct { + StdAssertionsCaller // Read-only binding to the contract + StdAssertionsTransactor // Write-only binding to the contract + StdAssertionsFilterer // Log filterer for contract events +} + +// StdAssertionsCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdAssertionsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdAssertionsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdAssertionsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdAssertionsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdAssertionsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdAssertionsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdAssertionsSession struct { + Contract *StdAssertions // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdAssertionsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdAssertionsCallerSession struct { + Contract *StdAssertionsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdAssertionsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdAssertionsTransactorSession struct { + Contract *StdAssertionsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdAssertionsRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdAssertionsRaw struct { + Contract *StdAssertions // Generic contract binding to access the raw methods on +} + +// StdAssertionsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdAssertionsCallerRaw struct { + Contract *StdAssertionsCaller // Generic read-only contract binding to access the raw methods on +} + +// StdAssertionsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdAssertionsTransactorRaw struct { + Contract *StdAssertionsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdAssertions creates a new instance of StdAssertions, bound to a specific deployed contract. +func NewStdAssertions(address common.Address, backend bind.ContractBackend) (*StdAssertions, error) { + contract, err := bindStdAssertions(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdAssertions{StdAssertionsCaller: StdAssertionsCaller{contract: contract}, StdAssertionsTransactor: StdAssertionsTransactor{contract: contract}, StdAssertionsFilterer: StdAssertionsFilterer{contract: contract}}, nil +} + +// NewStdAssertionsCaller creates a new read-only instance of StdAssertions, bound to a specific deployed contract. +func NewStdAssertionsCaller(address common.Address, caller bind.ContractCaller) (*StdAssertionsCaller, error) { + contract, err := bindStdAssertions(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdAssertionsCaller{contract: contract}, nil +} + +// NewStdAssertionsTransactor creates a new write-only instance of StdAssertions, bound to a specific deployed contract. +func NewStdAssertionsTransactor(address common.Address, transactor bind.ContractTransactor) (*StdAssertionsTransactor, error) { + contract, err := bindStdAssertions(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdAssertionsTransactor{contract: contract}, nil +} + +// NewStdAssertionsFilterer creates a new log filterer instance of StdAssertions, bound to a specific deployed contract. +func NewStdAssertionsFilterer(address common.Address, filterer bind.ContractFilterer) (*StdAssertionsFilterer, error) { + contract, err := bindStdAssertions(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdAssertionsFilterer{contract: contract}, nil +} + +// bindStdAssertions binds a generic wrapper to an already deployed contract. +func bindStdAssertions(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdAssertionsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdAssertions *StdAssertionsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdAssertions.Contract.StdAssertionsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdAssertions *StdAssertionsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdAssertions.Contract.StdAssertionsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdAssertions *StdAssertionsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdAssertions.Contract.StdAssertionsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdAssertions *StdAssertionsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdAssertions.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdAssertions *StdAssertionsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdAssertions.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdAssertions *StdAssertionsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdAssertions.Contract.contract.Transact(opts, method, params...) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_StdAssertions *StdAssertionsCaller) Failed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _StdAssertions.contract.Call(opts, &out, "failed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_StdAssertions *StdAssertionsSession) Failed() (bool, error) { + return _StdAssertions.Contract.Failed(&_StdAssertions.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_StdAssertions *StdAssertionsCallerSession) Failed() (bool, error) { + return _StdAssertions.Contract.Failed(&_StdAssertions.CallOpts) +} + +// StdAssertionsLogIterator is returned from FilterLog and is used to iterate over the raw logs and unpacked data for Log events raised by the StdAssertions contract. +type StdAssertionsLogIterator struct { + Event *StdAssertionsLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLog represents a Log event raised by the StdAssertions contract. +type StdAssertionsLog struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLog is a free log retrieval operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_StdAssertions *StdAssertionsFilterer) FilterLog(opts *bind.FilterOpts) (*StdAssertionsLogIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log") + if err != nil { + return nil, err + } + return &StdAssertionsLogIterator{contract: _StdAssertions.contract, event: "log", logs: logs, sub: sub}, nil +} + +// WatchLog is a free log subscription operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_StdAssertions *StdAssertionsFilterer) WatchLog(opts *bind.WatchOpts, sink chan<- *StdAssertionsLog) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLog) + if err := _StdAssertions.contract.UnpackLog(event, "log", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLog is a log parse operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_StdAssertions *StdAssertionsFilterer) ParseLog(log types.Log) (*StdAssertionsLog, error) { + event := new(StdAssertionsLog) + if err := _StdAssertions.contract.UnpackLog(event, "log", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogAddressIterator is returned from FilterLogAddress and is used to iterate over the raw logs and unpacked data for LogAddress events raised by the StdAssertions contract. +type StdAssertionsLogAddressIterator struct { + Event *StdAssertionsLogAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogAddress represents a LogAddress event raised by the StdAssertions contract. +type StdAssertionsLogAddress struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAddress is a free log retrieval operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_StdAssertions *StdAssertionsFilterer) FilterLogAddress(opts *bind.FilterOpts) (*StdAssertionsLogAddressIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_address") + if err != nil { + return nil, err + } + return &StdAssertionsLogAddressIterator{contract: _StdAssertions.contract, event: "log_address", logs: logs, sub: sub}, nil +} + +// WatchLogAddress is a free log subscription operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_StdAssertions *StdAssertionsFilterer) WatchLogAddress(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogAddress) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogAddress) + if err := _StdAssertions.contract.UnpackLog(event, "log_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogAddress is a log parse operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_StdAssertions *StdAssertionsFilterer) ParseLogAddress(log types.Log) (*StdAssertionsLogAddress, error) { + event := new(StdAssertionsLogAddress) + if err := _StdAssertions.contract.UnpackLog(event, "log_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogArrayIterator is returned from FilterLogArray and is used to iterate over the raw logs and unpacked data for LogArray events raised by the StdAssertions contract. +type StdAssertionsLogArrayIterator struct { + Event *StdAssertionsLogArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogArray represents a LogArray event raised by the StdAssertions contract. +type StdAssertionsLogArray struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray is a free log retrieval operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogArray(opts *bind.FilterOpts) (*StdAssertionsLogArrayIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_array") + if err != nil { + return nil, err + } + return &StdAssertionsLogArrayIterator{contract: _StdAssertions.contract, event: "log_array", logs: logs, sub: sub}, nil +} + +// WatchLogArray is a free log subscription operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogArray(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogArray) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogArray) + if err := _StdAssertions.contract.UnpackLog(event, "log_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray is a log parse operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogArray(log types.Log) (*StdAssertionsLogArray, error) { + event := new(StdAssertionsLogArray) + if err := _StdAssertions.contract.UnpackLog(event, "log_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogArray0Iterator is returned from FilterLogArray0 and is used to iterate over the raw logs and unpacked data for LogArray0 events raised by the StdAssertions contract. +type StdAssertionsLogArray0Iterator struct { + Event *StdAssertionsLogArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogArray0 represents a LogArray0 event raised by the StdAssertions contract. +type StdAssertionsLogArray0 struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray0 is a free log retrieval operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogArray0(opts *bind.FilterOpts) (*StdAssertionsLogArray0Iterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return &StdAssertionsLogArray0Iterator{contract: _StdAssertions.contract, event: "log_array0", logs: logs, sub: sub}, nil +} + +// WatchLogArray0 is a free log subscription operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogArray0(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogArray0) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogArray0) + if err := _StdAssertions.contract.UnpackLog(event, "log_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray0 is a log parse operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogArray0(log types.Log) (*StdAssertionsLogArray0, error) { + event := new(StdAssertionsLogArray0) + if err := _StdAssertions.contract.UnpackLog(event, "log_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogArray1Iterator is returned from FilterLogArray1 and is used to iterate over the raw logs and unpacked data for LogArray1 events raised by the StdAssertions contract. +type StdAssertionsLogArray1Iterator struct { + Event *StdAssertionsLogArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogArray1 represents a LogArray1 event raised by the StdAssertions contract. +type StdAssertionsLogArray1 struct { + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray1 is a free log retrieval operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogArray1(opts *bind.FilterOpts) (*StdAssertionsLogArray1Iterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return &StdAssertionsLogArray1Iterator{contract: _StdAssertions.contract, event: "log_array1", logs: logs, sub: sub}, nil +} + +// WatchLogArray1 is a free log subscription operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogArray1(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogArray1) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogArray1) + if err := _StdAssertions.contract.UnpackLog(event, "log_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray1 is a log parse operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogArray1(log types.Log) (*StdAssertionsLogArray1, error) { + event := new(StdAssertionsLogArray1) + if err := _StdAssertions.contract.UnpackLog(event, "log_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogBytesIterator is returned from FilterLogBytes and is used to iterate over the raw logs and unpacked data for LogBytes events raised by the StdAssertions contract. +type StdAssertionsLogBytesIterator struct { + Event *StdAssertionsLogBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogBytes represents a LogBytes event raised by the StdAssertions contract. +type StdAssertionsLogBytes struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes is a free log retrieval operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_StdAssertions *StdAssertionsFilterer) FilterLogBytes(opts *bind.FilterOpts) (*StdAssertionsLogBytesIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return &StdAssertionsLogBytesIterator{contract: _StdAssertions.contract, event: "log_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogBytes is a free log subscription operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_StdAssertions *StdAssertionsFilterer) WatchLogBytes(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogBytes) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogBytes) + if err := _StdAssertions.contract.UnpackLog(event, "log_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes is a log parse operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_StdAssertions *StdAssertionsFilterer) ParseLogBytes(log types.Log) (*StdAssertionsLogBytes, error) { + event := new(StdAssertionsLogBytes) + if err := _StdAssertions.contract.UnpackLog(event, "log_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogBytes32Iterator is returned from FilterLogBytes32 and is used to iterate over the raw logs and unpacked data for LogBytes32 events raised by the StdAssertions contract. +type StdAssertionsLogBytes32Iterator struct { + Event *StdAssertionsLogBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogBytes32 represents a LogBytes32 event raised by the StdAssertions contract. +type StdAssertionsLogBytes32 struct { + Arg0 [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes32 is a free log retrieval operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_StdAssertions *StdAssertionsFilterer) FilterLogBytes32(opts *bind.FilterOpts) (*StdAssertionsLogBytes32Iterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return &StdAssertionsLogBytes32Iterator{contract: _StdAssertions.contract, event: "log_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogBytes32 is a free log subscription operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_StdAssertions *StdAssertionsFilterer) WatchLogBytes32(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogBytes32) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogBytes32) + if err := _StdAssertions.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes32 is a log parse operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_StdAssertions *StdAssertionsFilterer) ParseLogBytes32(log types.Log) (*StdAssertionsLogBytes32, error) { + event := new(StdAssertionsLogBytes32) + if err := _StdAssertions.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogIntIterator is returned from FilterLogInt and is used to iterate over the raw logs and unpacked data for LogInt events raised by the StdAssertions contract. +type StdAssertionsLogIntIterator struct { + Event *StdAssertionsLogInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogInt represents a LogInt event raised by the StdAssertions contract. +type StdAssertionsLogInt struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogInt is a free log retrieval operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_StdAssertions *StdAssertionsFilterer) FilterLogInt(opts *bind.FilterOpts) (*StdAssertionsLogIntIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_int") + if err != nil { + return nil, err + } + return &StdAssertionsLogIntIterator{contract: _StdAssertions.contract, event: "log_int", logs: logs, sub: sub}, nil +} + +// WatchLogInt is a free log subscription operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_StdAssertions *StdAssertionsFilterer) WatchLogInt(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogInt) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogInt) + if err := _StdAssertions.contract.UnpackLog(event, "log_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogInt is a log parse operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_StdAssertions *StdAssertionsFilterer) ParseLogInt(log types.Log) (*StdAssertionsLogInt, error) { + event := new(StdAssertionsLogInt) + if err := _StdAssertions.contract.UnpackLog(event, "log_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedAddressIterator is returned from FilterLogNamedAddress and is used to iterate over the raw logs and unpacked data for LogNamedAddress events raised by the StdAssertions contract. +type StdAssertionsLogNamedAddressIterator struct { + Event *StdAssertionsLogNamedAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedAddress represents a LogNamedAddress event raised by the StdAssertions contract. +type StdAssertionsLogNamedAddress struct { + Key string + Val common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedAddress is a free log retrieval operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedAddress(opts *bind.FilterOpts) (*StdAssertionsLogNamedAddressIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedAddressIterator{contract: _StdAssertions.contract, event: "log_named_address", logs: logs, sub: sub}, nil +} + +// WatchLogNamedAddress is a free log subscription operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedAddress(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedAddress) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedAddress) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedAddress is a log parse operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedAddress(log types.Log) (*StdAssertionsLogNamedAddress, error) { + event := new(StdAssertionsLogNamedAddress) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedArrayIterator is returned from FilterLogNamedArray and is used to iterate over the raw logs and unpacked data for LogNamedArray events raised by the StdAssertions contract. +type StdAssertionsLogNamedArrayIterator struct { + Event *StdAssertionsLogNamedArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedArray represents a LogNamedArray event raised by the StdAssertions contract. +type StdAssertionsLogNamedArray struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray is a free log retrieval operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedArray(opts *bind.FilterOpts) (*StdAssertionsLogNamedArrayIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedArrayIterator{contract: _StdAssertions.contract, event: "log_named_array", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray is a free log subscription operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedArray(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedArray) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedArray) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray is a log parse operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedArray(log types.Log) (*StdAssertionsLogNamedArray, error) { + event := new(StdAssertionsLogNamedArray) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedArray0Iterator is returned from FilterLogNamedArray0 and is used to iterate over the raw logs and unpacked data for LogNamedArray0 events raised by the StdAssertions contract. +type StdAssertionsLogNamedArray0Iterator struct { + Event *StdAssertionsLogNamedArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedArray0 represents a LogNamedArray0 event raised by the StdAssertions contract. +type StdAssertionsLogNamedArray0 struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray0 is a free log retrieval operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedArray0(opts *bind.FilterOpts) (*StdAssertionsLogNamedArray0Iterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedArray0Iterator{contract: _StdAssertions.contract, event: "log_named_array0", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray0 is a free log subscription operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedArray0(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedArray0) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedArray0) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray0 is a log parse operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedArray0(log types.Log) (*StdAssertionsLogNamedArray0, error) { + event := new(StdAssertionsLogNamedArray0) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedArray1Iterator is returned from FilterLogNamedArray1 and is used to iterate over the raw logs and unpacked data for LogNamedArray1 events raised by the StdAssertions contract. +type StdAssertionsLogNamedArray1Iterator struct { + Event *StdAssertionsLogNamedArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedArray1 represents a LogNamedArray1 event raised by the StdAssertions contract. +type StdAssertionsLogNamedArray1 struct { + Key string + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray1 is a free log retrieval operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedArray1(opts *bind.FilterOpts) (*StdAssertionsLogNamedArray1Iterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedArray1Iterator{contract: _StdAssertions.contract, event: "log_named_array1", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray1 is a free log subscription operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedArray1(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedArray1) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedArray1) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray1 is a log parse operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedArray1(log types.Log) (*StdAssertionsLogNamedArray1, error) { + event := new(StdAssertionsLogNamedArray1) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedBytesIterator is returned from FilterLogNamedBytes and is used to iterate over the raw logs and unpacked data for LogNamedBytes events raised by the StdAssertions contract. +type StdAssertionsLogNamedBytesIterator struct { + Event *StdAssertionsLogNamedBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedBytes represents a LogNamedBytes event raised by the StdAssertions contract. +type StdAssertionsLogNamedBytes struct { + Key string + Val []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes is a free log retrieval operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedBytes(opts *bind.FilterOpts) (*StdAssertionsLogNamedBytesIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedBytesIterator{contract: _StdAssertions.contract, event: "log_named_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes is a free log subscription operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedBytes(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedBytes) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedBytes) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes is a log parse operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedBytes(log types.Log) (*StdAssertionsLogNamedBytes, error) { + event := new(StdAssertionsLogNamedBytes) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedBytes32Iterator is returned from FilterLogNamedBytes32 and is used to iterate over the raw logs and unpacked data for LogNamedBytes32 events raised by the StdAssertions contract. +type StdAssertionsLogNamedBytes32Iterator struct { + Event *StdAssertionsLogNamedBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedBytes32 represents a LogNamedBytes32 event raised by the StdAssertions contract. +type StdAssertionsLogNamedBytes32 struct { + Key string + Val [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes32 is a free log retrieval operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedBytes32(opts *bind.FilterOpts) (*StdAssertionsLogNamedBytes32Iterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedBytes32Iterator{contract: _StdAssertions.contract, event: "log_named_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes32 is a free log subscription operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedBytes32(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedBytes32) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedBytes32) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes32 is a log parse operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedBytes32(log types.Log) (*StdAssertionsLogNamedBytes32, error) { + event := new(StdAssertionsLogNamedBytes32) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedDecimalIntIterator is returned from FilterLogNamedDecimalInt and is used to iterate over the raw logs and unpacked data for LogNamedDecimalInt events raised by the StdAssertions contract. +type StdAssertionsLogNamedDecimalIntIterator struct { + Event *StdAssertionsLogNamedDecimalInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedDecimalIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedDecimalIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedDecimalIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedDecimalInt represents a LogNamedDecimalInt event raised by the StdAssertions contract. +type StdAssertionsLogNamedDecimalInt struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalInt is a free log retrieval operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedDecimalInt(opts *bind.FilterOpts) (*StdAssertionsLogNamedDecimalIntIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedDecimalIntIterator{contract: _StdAssertions.contract, event: "log_named_decimal_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalInt is a free log subscription operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedDecimalInt(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedDecimalInt) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedDecimalInt) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalInt is a log parse operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedDecimalInt(log types.Log) (*StdAssertionsLogNamedDecimalInt, error) { + event := new(StdAssertionsLogNamedDecimalInt) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedDecimalUintIterator is returned from FilterLogNamedDecimalUint and is used to iterate over the raw logs and unpacked data for LogNamedDecimalUint events raised by the StdAssertions contract. +type StdAssertionsLogNamedDecimalUintIterator struct { + Event *StdAssertionsLogNamedDecimalUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedDecimalUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedDecimalUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedDecimalUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedDecimalUint represents a LogNamedDecimalUint event raised by the StdAssertions contract. +type StdAssertionsLogNamedDecimalUint struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalUint is a free log retrieval operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedDecimalUint(opts *bind.FilterOpts) (*StdAssertionsLogNamedDecimalUintIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedDecimalUintIterator{contract: _StdAssertions.contract, event: "log_named_decimal_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalUint is a free log subscription operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedDecimalUint(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedDecimalUint) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedDecimalUint) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalUint is a log parse operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedDecimalUint(log types.Log) (*StdAssertionsLogNamedDecimalUint, error) { + event := new(StdAssertionsLogNamedDecimalUint) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedIntIterator is returned from FilterLogNamedInt and is used to iterate over the raw logs and unpacked data for LogNamedInt events raised by the StdAssertions contract. +type StdAssertionsLogNamedIntIterator struct { + Event *StdAssertionsLogNamedInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedInt represents a LogNamedInt event raised by the StdAssertions contract. +type StdAssertionsLogNamedInt struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedInt is a free log retrieval operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedInt(opts *bind.FilterOpts) (*StdAssertionsLogNamedIntIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedIntIterator{contract: _StdAssertions.contract, event: "log_named_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedInt is a free log subscription operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedInt(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedInt) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedInt) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedInt is a log parse operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedInt(log types.Log) (*StdAssertionsLogNamedInt, error) { + event := new(StdAssertionsLogNamedInt) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedStringIterator is returned from FilterLogNamedString and is used to iterate over the raw logs and unpacked data for LogNamedString events raised by the StdAssertions contract. +type StdAssertionsLogNamedStringIterator struct { + Event *StdAssertionsLogNamedString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedString represents a LogNamedString event raised by the StdAssertions contract. +type StdAssertionsLogNamedString struct { + Key string + Val string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedString is a free log retrieval operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedString(opts *bind.FilterOpts) (*StdAssertionsLogNamedStringIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedStringIterator{contract: _StdAssertions.contract, event: "log_named_string", logs: logs, sub: sub}, nil +} + +// WatchLogNamedString is a free log subscription operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedString(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedString) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedString) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedString is a log parse operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedString(log types.Log) (*StdAssertionsLogNamedString, error) { + event := new(StdAssertionsLogNamedString) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogNamedUintIterator is returned from FilterLogNamedUint and is used to iterate over the raw logs and unpacked data for LogNamedUint events raised by the StdAssertions contract. +type StdAssertionsLogNamedUintIterator struct { + Event *StdAssertionsLogNamedUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogNamedUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogNamedUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogNamedUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogNamedUint represents a LogNamedUint event raised by the StdAssertions contract. +type StdAssertionsLogNamedUint struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedUint is a free log retrieval operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_StdAssertions *StdAssertionsFilterer) FilterLogNamedUint(opts *bind.FilterOpts) (*StdAssertionsLogNamedUintIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return &StdAssertionsLogNamedUintIterator{contract: _StdAssertions.contract, event: "log_named_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedUint is a free log subscription operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_StdAssertions *StdAssertionsFilterer) WatchLogNamedUint(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogNamedUint) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogNamedUint) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedUint is a log parse operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_StdAssertions *StdAssertionsFilterer) ParseLogNamedUint(log types.Log) (*StdAssertionsLogNamedUint, error) { + event := new(StdAssertionsLogNamedUint) + if err := _StdAssertions.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogStringIterator is returned from FilterLogString and is used to iterate over the raw logs and unpacked data for LogString events raised by the StdAssertions contract. +type StdAssertionsLogStringIterator struct { + Event *StdAssertionsLogString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogString represents a LogString event raised by the StdAssertions contract. +type StdAssertionsLogString struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogString is a free log retrieval operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_StdAssertions *StdAssertionsFilterer) FilterLogString(opts *bind.FilterOpts) (*StdAssertionsLogStringIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_string") + if err != nil { + return nil, err + } + return &StdAssertionsLogStringIterator{contract: _StdAssertions.contract, event: "log_string", logs: logs, sub: sub}, nil +} + +// WatchLogString is a free log subscription operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_StdAssertions *StdAssertionsFilterer) WatchLogString(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogString) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogString) + if err := _StdAssertions.contract.UnpackLog(event, "log_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogString is a log parse operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_StdAssertions *StdAssertionsFilterer) ParseLogString(log types.Log) (*StdAssertionsLogString, error) { + event := new(StdAssertionsLogString) + if err := _StdAssertions.contract.UnpackLog(event, "log_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogUintIterator is returned from FilterLogUint and is used to iterate over the raw logs and unpacked data for LogUint events raised by the StdAssertions contract. +type StdAssertionsLogUintIterator struct { + Event *StdAssertionsLogUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogUint represents a LogUint event raised by the StdAssertions contract. +type StdAssertionsLogUint struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogUint is a free log retrieval operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_StdAssertions *StdAssertionsFilterer) FilterLogUint(opts *bind.FilterOpts) (*StdAssertionsLogUintIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return &StdAssertionsLogUintIterator{contract: _StdAssertions.contract, event: "log_uint", logs: logs, sub: sub}, nil +} + +// WatchLogUint is a free log subscription operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_StdAssertions *StdAssertionsFilterer) WatchLogUint(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogUint) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogUint) + if err := _StdAssertions.contract.UnpackLog(event, "log_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogUint is a log parse operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_StdAssertions *StdAssertionsFilterer) ParseLogUint(log types.Log) (*StdAssertionsLogUint, error) { + event := new(StdAssertionsLogUint) + if err := _StdAssertions.contract.UnpackLog(event, "log_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdAssertionsLogsIterator is returned from FilterLogs and is used to iterate over the raw logs and unpacked data for Logs events raised by the StdAssertions contract. +type StdAssertionsLogsIterator struct { + Event *StdAssertionsLogs // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdAssertionsLogsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdAssertionsLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdAssertionsLogsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdAssertionsLogsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdAssertionsLogs represents a Logs event raised by the StdAssertions contract. +type StdAssertionsLogs struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogs is a free log retrieval operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_StdAssertions *StdAssertionsFilterer) FilterLogs(opts *bind.FilterOpts) (*StdAssertionsLogsIterator, error) { + + logs, sub, err := _StdAssertions.contract.FilterLogs(opts, "logs") + if err != nil { + return nil, err + } + return &StdAssertionsLogsIterator{contract: _StdAssertions.contract, event: "logs", logs: logs, sub: sub}, nil +} + +// WatchLogs is a free log subscription operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_StdAssertions *StdAssertionsFilterer) WatchLogs(opts *bind.WatchOpts, sink chan<- *StdAssertionsLogs) (event.Subscription, error) { + + logs, sub, err := _StdAssertions.contract.WatchLogs(opts, "logs") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdAssertionsLogs) + if err := _StdAssertions.contract.UnpackLog(event, "logs", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogs is a log parse operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_StdAssertions *StdAssertionsFilterer) ParseLogs(log types.Log) (*StdAssertionsLogs, error) { + event := new(StdAssertionsLogs) + if err := _StdAssertions.contract.UnpackLog(event, "logs", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/stdchains.sol/stdchains.go b/v2/pkg/stdchains.sol/stdchains.go new file mode 100644 index 00000000..440f138f --- /dev/null +++ b/v2/pkg/stdchains.sol/stdchains.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdchains + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdChainsMetaData contains all meta data concerning the StdChains contract. +var StdChainsMetaData = &bind.MetaData{ + ABI: "[]", +} + +// StdChainsABI is the input ABI used to generate the binding from. +// Deprecated: Use StdChainsMetaData.ABI instead. +var StdChainsABI = StdChainsMetaData.ABI + +// StdChains is an auto generated Go binding around an Ethereum contract. +type StdChains struct { + StdChainsCaller // Read-only binding to the contract + StdChainsTransactor // Write-only binding to the contract + StdChainsFilterer // Log filterer for contract events +} + +// StdChainsCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdChainsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdChainsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdChainsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdChainsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdChainsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdChainsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdChainsSession struct { + Contract *StdChains // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdChainsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdChainsCallerSession struct { + Contract *StdChainsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdChainsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdChainsTransactorSession struct { + Contract *StdChainsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdChainsRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdChainsRaw struct { + Contract *StdChains // Generic contract binding to access the raw methods on +} + +// StdChainsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdChainsCallerRaw struct { + Contract *StdChainsCaller // Generic read-only contract binding to access the raw methods on +} + +// StdChainsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdChainsTransactorRaw struct { + Contract *StdChainsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdChains creates a new instance of StdChains, bound to a specific deployed contract. +func NewStdChains(address common.Address, backend bind.ContractBackend) (*StdChains, error) { + contract, err := bindStdChains(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdChains{StdChainsCaller: StdChainsCaller{contract: contract}, StdChainsTransactor: StdChainsTransactor{contract: contract}, StdChainsFilterer: StdChainsFilterer{contract: contract}}, nil +} + +// NewStdChainsCaller creates a new read-only instance of StdChains, bound to a specific deployed contract. +func NewStdChainsCaller(address common.Address, caller bind.ContractCaller) (*StdChainsCaller, error) { + contract, err := bindStdChains(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdChainsCaller{contract: contract}, nil +} + +// NewStdChainsTransactor creates a new write-only instance of StdChains, bound to a specific deployed contract. +func NewStdChainsTransactor(address common.Address, transactor bind.ContractTransactor) (*StdChainsTransactor, error) { + contract, err := bindStdChains(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdChainsTransactor{contract: contract}, nil +} + +// NewStdChainsFilterer creates a new log filterer instance of StdChains, bound to a specific deployed contract. +func NewStdChainsFilterer(address common.Address, filterer bind.ContractFilterer) (*StdChainsFilterer, error) { + contract, err := bindStdChains(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdChainsFilterer{contract: contract}, nil +} + +// bindStdChains binds a generic wrapper to an already deployed contract. +func bindStdChains(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdChainsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdChains *StdChainsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdChains.Contract.StdChainsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdChains *StdChainsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdChains.Contract.StdChainsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdChains *StdChainsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdChains.Contract.StdChainsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdChains *StdChainsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdChains.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdChains *StdChainsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdChains.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdChains *StdChainsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdChains.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/stdcheats.sol/stdcheats.go b/v2/pkg/stdcheats.sol/stdcheats.go new file mode 100644 index 00000000..434d8176 --- /dev/null +++ b/v2/pkg/stdcheats.sol/stdcheats.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdcheats + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdCheatsMetaData contains all meta data concerning the StdCheats contract. +var StdCheatsMetaData = &bind.MetaData{ + ABI: "[]", +} + +// StdCheatsABI is the input ABI used to generate the binding from. +// Deprecated: Use StdCheatsMetaData.ABI instead. +var StdCheatsABI = StdCheatsMetaData.ABI + +// StdCheats is an auto generated Go binding around an Ethereum contract. +type StdCheats struct { + StdCheatsCaller // Read-only binding to the contract + StdCheatsTransactor // Write-only binding to the contract + StdCheatsFilterer // Log filterer for contract events +} + +// StdCheatsCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdCheatsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdCheatsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdCheatsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdCheatsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdCheatsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdCheatsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdCheatsSession struct { + Contract *StdCheats // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdCheatsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdCheatsCallerSession struct { + Contract *StdCheatsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdCheatsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdCheatsTransactorSession struct { + Contract *StdCheatsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdCheatsRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdCheatsRaw struct { + Contract *StdCheats // Generic contract binding to access the raw methods on +} + +// StdCheatsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdCheatsCallerRaw struct { + Contract *StdCheatsCaller // Generic read-only contract binding to access the raw methods on +} + +// StdCheatsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdCheatsTransactorRaw struct { + Contract *StdCheatsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdCheats creates a new instance of StdCheats, bound to a specific deployed contract. +func NewStdCheats(address common.Address, backend bind.ContractBackend) (*StdCheats, error) { + contract, err := bindStdCheats(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdCheats{StdCheatsCaller: StdCheatsCaller{contract: contract}, StdCheatsTransactor: StdCheatsTransactor{contract: contract}, StdCheatsFilterer: StdCheatsFilterer{contract: contract}}, nil +} + +// NewStdCheatsCaller creates a new read-only instance of StdCheats, bound to a specific deployed contract. +func NewStdCheatsCaller(address common.Address, caller bind.ContractCaller) (*StdCheatsCaller, error) { + contract, err := bindStdCheats(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdCheatsCaller{contract: contract}, nil +} + +// NewStdCheatsTransactor creates a new write-only instance of StdCheats, bound to a specific deployed contract. +func NewStdCheatsTransactor(address common.Address, transactor bind.ContractTransactor) (*StdCheatsTransactor, error) { + contract, err := bindStdCheats(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdCheatsTransactor{contract: contract}, nil +} + +// NewStdCheatsFilterer creates a new log filterer instance of StdCheats, bound to a specific deployed contract. +func NewStdCheatsFilterer(address common.Address, filterer bind.ContractFilterer) (*StdCheatsFilterer, error) { + contract, err := bindStdCheats(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdCheatsFilterer{contract: contract}, nil +} + +// bindStdCheats binds a generic wrapper to an already deployed contract. +func bindStdCheats(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdCheatsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdCheats *StdCheatsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdCheats.Contract.StdCheatsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdCheats *StdCheatsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdCheats.Contract.StdCheatsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdCheats *StdCheatsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdCheats.Contract.StdCheatsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdCheats *StdCheatsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdCheats.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdCheats *StdCheatsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdCheats.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdCheats *StdCheatsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdCheats.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/stdcheats.sol/stdcheatssafe.go b/v2/pkg/stdcheats.sol/stdcheatssafe.go new file mode 100644 index 00000000..4ccb96d0 --- /dev/null +++ b/v2/pkg/stdcheats.sol/stdcheatssafe.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdcheats + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdCheatsSafeMetaData contains all meta data concerning the StdCheatsSafe contract. +var StdCheatsSafeMetaData = &bind.MetaData{ + ABI: "[]", +} + +// StdCheatsSafeABI is the input ABI used to generate the binding from. +// Deprecated: Use StdCheatsSafeMetaData.ABI instead. +var StdCheatsSafeABI = StdCheatsSafeMetaData.ABI + +// StdCheatsSafe is an auto generated Go binding around an Ethereum contract. +type StdCheatsSafe struct { + StdCheatsSafeCaller // Read-only binding to the contract + StdCheatsSafeTransactor // Write-only binding to the contract + StdCheatsSafeFilterer // Log filterer for contract events +} + +// StdCheatsSafeCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdCheatsSafeCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdCheatsSafeTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdCheatsSafeTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdCheatsSafeFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdCheatsSafeFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdCheatsSafeSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdCheatsSafeSession struct { + Contract *StdCheatsSafe // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdCheatsSafeCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdCheatsSafeCallerSession struct { + Contract *StdCheatsSafeCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdCheatsSafeTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdCheatsSafeTransactorSession struct { + Contract *StdCheatsSafeTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdCheatsSafeRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdCheatsSafeRaw struct { + Contract *StdCheatsSafe // Generic contract binding to access the raw methods on +} + +// StdCheatsSafeCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdCheatsSafeCallerRaw struct { + Contract *StdCheatsSafeCaller // Generic read-only contract binding to access the raw methods on +} + +// StdCheatsSafeTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdCheatsSafeTransactorRaw struct { + Contract *StdCheatsSafeTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdCheatsSafe creates a new instance of StdCheatsSafe, bound to a specific deployed contract. +func NewStdCheatsSafe(address common.Address, backend bind.ContractBackend) (*StdCheatsSafe, error) { + contract, err := bindStdCheatsSafe(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdCheatsSafe{StdCheatsSafeCaller: StdCheatsSafeCaller{contract: contract}, StdCheatsSafeTransactor: StdCheatsSafeTransactor{contract: contract}, StdCheatsSafeFilterer: StdCheatsSafeFilterer{contract: contract}}, nil +} + +// NewStdCheatsSafeCaller creates a new read-only instance of StdCheatsSafe, bound to a specific deployed contract. +func NewStdCheatsSafeCaller(address common.Address, caller bind.ContractCaller) (*StdCheatsSafeCaller, error) { + contract, err := bindStdCheatsSafe(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdCheatsSafeCaller{contract: contract}, nil +} + +// NewStdCheatsSafeTransactor creates a new write-only instance of StdCheatsSafe, bound to a specific deployed contract. +func NewStdCheatsSafeTransactor(address common.Address, transactor bind.ContractTransactor) (*StdCheatsSafeTransactor, error) { + contract, err := bindStdCheatsSafe(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdCheatsSafeTransactor{contract: contract}, nil +} + +// NewStdCheatsSafeFilterer creates a new log filterer instance of StdCheatsSafe, bound to a specific deployed contract. +func NewStdCheatsSafeFilterer(address common.Address, filterer bind.ContractFilterer) (*StdCheatsSafeFilterer, error) { + contract, err := bindStdCheatsSafe(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdCheatsSafeFilterer{contract: contract}, nil +} + +// bindStdCheatsSafe binds a generic wrapper to an already deployed contract. +func bindStdCheatsSafe(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdCheatsSafeMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdCheatsSafe *StdCheatsSafeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdCheatsSafe.Contract.StdCheatsSafeCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdCheatsSafe *StdCheatsSafeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdCheatsSafe.Contract.StdCheatsSafeTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdCheatsSafe *StdCheatsSafeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdCheatsSafe.Contract.StdCheatsSafeTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdCheatsSafe *StdCheatsSafeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdCheatsSafe.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdCheatsSafe *StdCheatsSafeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdCheatsSafe.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdCheatsSafe *StdCheatsSafeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdCheatsSafe.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/stderror.sol/stderror.go b/v2/pkg/stderror.sol/stderror.go new file mode 100644 index 00000000..ffcffad0 --- /dev/null +++ b/v2/pkg/stderror.sol/stderror.go @@ -0,0 +1,482 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stderror + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdErrorMetaData contains all meta data concerning the StdError contract. +var StdErrorMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"arithmeticError\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"assertionError\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"divisionError\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"encodeStorageError\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"enumConversionError\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"indexOOBError\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"memOverflowError\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"popError\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"zeroVarError\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"}]", + Bin: "0x6102c9610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b602081526000825180602084015260005b818110156102555760208186018101516040868401015201610238565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509291505056fea26469706673582212209d55015f4a99eb82983bead015f4946ac9e7ee7d323094e4fb909dc07bb134c164736f6c634300081a0033", +} + +// StdErrorABI is the input ABI used to generate the binding from. +// Deprecated: Use StdErrorMetaData.ABI instead. +var StdErrorABI = StdErrorMetaData.ABI + +// StdErrorBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use StdErrorMetaData.Bin instead. +var StdErrorBin = StdErrorMetaData.Bin + +// DeployStdError deploys a new Ethereum contract, binding an instance of StdError to it. +func DeployStdError(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StdError, error) { + parsed, err := StdErrorMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StdErrorBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &StdError{StdErrorCaller: StdErrorCaller{contract: contract}, StdErrorTransactor: StdErrorTransactor{contract: contract}, StdErrorFilterer: StdErrorFilterer{contract: contract}}, nil +} + +// StdError is an auto generated Go binding around an Ethereum contract. +type StdError struct { + StdErrorCaller // Read-only binding to the contract + StdErrorTransactor // Write-only binding to the contract + StdErrorFilterer // Log filterer for contract events +} + +// StdErrorCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdErrorCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdErrorTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdErrorTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdErrorFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdErrorFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdErrorSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdErrorSession struct { + Contract *StdError // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdErrorCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdErrorCallerSession struct { + Contract *StdErrorCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdErrorTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdErrorTransactorSession struct { + Contract *StdErrorTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdErrorRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdErrorRaw struct { + Contract *StdError // Generic contract binding to access the raw methods on +} + +// StdErrorCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdErrorCallerRaw struct { + Contract *StdErrorCaller // Generic read-only contract binding to access the raw methods on +} + +// StdErrorTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdErrorTransactorRaw struct { + Contract *StdErrorTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdError creates a new instance of StdError, bound to a specific deployed contract. +func NewStdError(address common.Address, backend bind.ContractBackend) (*StdError, error) { + contract, err := bindStdError(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdError{StdErrorCaller: StdErrorCaller{contract: contract}, StdErrorTransactor: StdErrorTransactor{contract: contract}, StdErrorFilterer: StdErrorFilterer{contract: contract}}, nil +} + +// NewStdErrorCaller creates a new read-only instance of StdError, bound to a specific deployed contract. +func NewStdErrorCaller(address common.Address, caller bind.ContractCaller) (*StdErrorCaller, error) { + contract, err := bindStdError(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdErrorCaller{contract: contract}, nil +} + +// NewStdErrorTransactor creates a new write-only instance of StdError, bound to a specific deployed contract. +func NewStdErrorTransactor(address common.Address, transactor bind.ContractTransactor) (*StdErrorTransactor, error) { + contract, err := bindStdError(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdErrorTransactor{contract: contract}, nil +} + +// NewStdErrorFilterer creates a new log filterer instance of StdError, bound to a specific deployed contract. +func NewStdErrorFilterer(address common.Address, filterer bind.ContractFilterer) (*StdErrorFilterer, error) { + contract, err := bindStdError(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdErrorFilterer{contract: contract}, nil +} + +// bindStdError binds a generic wrapper to an already deployed contract. +func bindStdError(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdErrorMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdError *StdErrorRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdError.Contract.StdErrorCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdError *StdErrorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdError.Contract.StdErrorTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdError *StdErrorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdError.Contract.StdErrorTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdError *StdErrorCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdError.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdError *StdErrorTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdError.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdError *StdErrorTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdError.Contract.contract.Transact(opts, method, params...) +} + +// ArithmeticError is a free data retrieval call binding the contract method 0x8995290f. +// +// Solidity: function arithmeticError() view returns(bytes) +func (_StdError *StdErrorCaller) ArithmeticError(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _StdError.contract.Call(opts, &out, "arithmeticError") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ArithmeticError is a free data retrieval call binding the contract method 0x8995290f. +// +// Solidity: function arithmeticError() view returns(bytes) +func (_StdError *StdErrorSession) ArithmeticError() ([]byte, error) { + return _StdError.Contract.ArithmeticError(&_StdError.CallOpts) +} + +// ArithmeticError is a free data retrieval call binding the contract method 0x8995290f. +// +// Solidity: function arithmeticError() view returns(bytes) +func (_StdError *StdErrorCallerSession) ArithmeticError() ([]byte, error) { + return _StdError.Contract.ArithmeticError(&_StdError.CallOpts) +} + +// AssertionError is a free data retrieval call binding the contract method 0x10332977. +// +// Solidity: function assertionError() view returns(bytes) +func (_StdError *StdErrorCaller) AssertionError(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _StdError.contract.Call(opts, &out, "assertionError") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// AssertionError is a free data retrieval call binding the contract method 0x10332977. +// +// Solidity: function assertionError() view returns(bytes) +func (_StdError *StdErrorSession) AssertionError() ([]byte, error) { + return _StdError.Contract.AssertionError(&_StdError.CallOpts) +} + +// AssertionError is a free data retrieval call binding the contract method 0x10332977. +// +// Solidity: function assertionError() view returns(bytes) +func (_StdError *StdErrorCallerSession) AssertionError() ([]byte, error) { + return _StdError.Contract.AssertionError(&_StdError.CallOpts) +} + +// DivisionError is a free data retrieval call binding the contract method 0xfa784a44. +// +// Solidity: function divisionError() view returns(bytes) +func (_StdError *StdErrorCaller) DivisionError(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _StdError.contract.Call(opts, &out, "divisionError") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// DivisionError is a free data retrieval call binding the contract method 0xfa784a44. +// +// Solidity: function divisionError() view returns(bytes) +func (_StdError *StdErrorSession) DivisionError() ([]byte, error) { + return _StdError.Contract.DivisionError(&_StdError.CallOpts) +} + +// DivisionError is a free data retrieval call binding the contract method 0xfa784a44. +// +// Solidity: function divisionError() view returns(bytes) +func (_StdError *StdErrorCallerSession) DivisionError() ([]byte, error) { + return _StdError.Contract.DivisionError(&_StdError.CallOpts) +} + +// EncodeStorageError is a free data retrieval call binding the contract method 0xd160e4de. +// +// Solidity: function encodeStorageError() view returns(bytes) +func (_StdError *StdErrorCaller) EncodeStorageError(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _StdError.contract.Call(opts, &out, "encodeStorageError") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// EncodeStorageError is a free data retrieval call binding the contract method 0xd160e4de. +// +// Solidity: function encodeStorageError() view returns(bytes) +func (_StdError *StdErrorSession) EncodeStorageError() ([]byte, error) { + return _StdError.Contract.EncodeStorageError(&_StdError.CallOpts) +} + +// EncodeStorageError is a free data retrieval call binding the contract method 0xd160e4de. +// +// Solidity: function encodeStorageError() view returns(bytes) +func (_StdError *StdErrorCallerSession) EncodeStorageError() ([]byte, error) { + return _StdError.Contract.EncodeStorageError(&_StdError.CallOpts) +} + +// EnumConversionError is a free data retrieval call binding the contract method 0x1de45560. +// +// Solidity: function enumConversionError() view returns(bytes) +func (_StdError *StdErrorCaller) EnumConversionError(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _StdError.contract.Call(opts, &out, "enumConversionError") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// EnumConversionError is a free data retrieval call binding the contract method 0x1de45560. +// +// Solidity: function enumConversionError() view returns(bytes) +func (_StdError *StdErrorSession) EnumConversionError() ([]byte, error) { + return _StdError.Contract.EnumConversionError(&_StdError.CallOpts) +} + +// EnumConversionError is a free data retrieval call binding the contract method 0x1de45560. +// +// Solidity: function enumConversionError() view returns(bytes) +func (_StdError *StdErrorCallerSession) EnumConversionError() ([]byte, error) { + return _StdError.Contract.EnumConversionError(&_StdError.CallOpts) +} + +// IndexOOBError is a free data retrieval call binding the contract method 0x05ee8612. +// +// Solidity: function indexOOBError() view returns(bytes) +func (_StdError *StdErrorCaller) IndexOOBError(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _StdError.contract.Call(opts, &out, "indexOOBError") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// IndexOOBError is a free data retrieval call binding the contract method 0x05ee8612. +// +// Solidity: function indexOOBError() view returns(bytes) +func (_StdError *StdErrorSession) IndexOOBError() ([]byte, error) { + return _StdError.Contract.IndexOOBError(&_StdError.CallOpts) +} + +// IndexOOBError is a free data retrieval call binding the contract method 0x05ee8612. +// +// Solidity: function indexOOBError() view returns(bytes) +func (_StdError *StdErrorCallerSession) IndexOOBError() ([]byte, error) { + return _StdError.Contract.IndexOOBError(&_StdError.CallOpts) +} + +// MemOverflowError is a free data retrieval call binding the contract method 0x986c5f68. +// +// Solidity: function memOverflowError() view returns(bytes) +func (_StdError *StdErrorCaller) MemOverflowError(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _StdError.contract.Call(opts, &out, "memOverflowError") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// MemOverflowError is a free data retrieval call binding the contract method 0x986c5f68. +// +// Solidity: function memOverflowError() view returns(bytes) +func (_StdError *StdErrorSession) MemOverflowError() ([]byte, error) { + return _StdError.Contract.MemOverflowError(&_StdError.CallOpts) +} + +// MemOverflowError is a free data retrieval call binding the contract method 0x986c5f68. +// +// Solidity: function memOverflowError() view returns(bytes) +func (_StdError *StdErrorCallerSession) MemOverflowError() ([]byte, error) { + return _StdError.Contract.MemOverflowError(&_StdError.CallOpts) +} + +// PopError is a free data retrieval call binding the contract method 0xb22dc54d. +// +// Solidity: function popError() view returns(bytes) +func (_StdError *StdErrorCaller) PopError(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _StdError.contract.Call(opts, &out, "popError") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// PopError is a free data retrieval call binding the contract method 0xb22dc54d. +// +// Solidity: function popError() view returns(bytes) +func (_StdError *StdErrorSession) PopError() ([]byte, error) { + return _StdError.Contract.PopError(&_StdError.CallOpts) +} + +// PopError is a free data retrieval call binding the contract method 0xb22dc54d. +// +// Solidity: function popError() view returns(bytes) +func (_StdError *StdErrorCallerSession) PopError() ([]byte, error) { + return _StdError.Contract.PopError(&_StdError.CallOpts) +} + +// ZeroVarError is a free data retrieval call binding the contract method 0xb67689da. +// +// Solidity: function zeroVarError() view returns(bytes) +func (_StdError *StdErrorCaller) ZeroVarError(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _StdError.contract.Call(opts, &out, "zeroVarError") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ZeroVarError is a free data retrieval call binding the contract method 0xb67689da. +// +// Solidity: function zeroVarError() view returns(bytes) +func (_StdError *StdErrorSession) ZeroVarError() ([]byte, error) { + return _StdError.Contract.ZeroVarError(&_StdError.CallOpts) +} + +// ZeroVarError is a free data retrieval call binding the contract method 0xb67689da. +// +// Solidity: function zeroVarError() view returns(bytes) +func (_StdError *StdErrorCallerSession) ZeroVarError() ([]byte, error) { + return _StdError.Contract.ZeroVarError(&_StdError.CallOpts) +} diff --git a/v2/pkg/stdinvariant.sol/stdinvariant.go b/v2/pkg/stdinvariant.sol/stdinvariant.go new file mode 100644 index 00000000..1dbf4077 --- /dev/null +++ b/v2/pkg/stdinvariant.sol/stdinvariant.go @@ -0,0 +1,509 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdinvariant + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdInvariantFuzzArtifactSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzArtifactSelector struct { + Artifact string + Selectors [][4]byte +} + +// StdInvariantFuzzInterface is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzInterface struct { + Addr common.Address + Artifacts []string +} + +// StdInvariantFuzzSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzSelector struct { + Addr common.Address + Selectors [][4]byte +} + +// StdInvariantMetaData contains all meta data concerning the StdInvariant contract. +var StdInvariantMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"excludeArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzArtifactSelector[]\",\"components\":[{\"name\":\"artifact\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetInterfaces\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzInterface[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"artifacts\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"}]", +} + +// StdInvariantABI is the input ABI used to generate the binding from. +// Deprecated: Use StdInvariantMetaData.ABI instead. +var StdInvariantABI = StdInvariantMetaData.ABI + +// StdInvariant is an auto generated Go binding around an Ethereum contract. +type StdInvariant struct { + StdInvariantCaller // Read-only binding to the contract + StdInvariantTransactor // Write-only binding to the contract + StdInvariantFilterer // Log filterer for contract events +} + +// StdInvariantCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdInvariantCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdInvariantTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdInvariantTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdInvariantFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdInvariantFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdInvariantSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdInvariantSession struct { + Contract *StdInvariant // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdInvariantCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdInvariantCallerSession struct { + Contract *StdInvariantCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdInvariantTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdInvariantTransactorSession struct { + Contract *StdInvariantTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdInvariantRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdInvariantRaw struct { + Contract *StdInvariant // Generic contract binding to access the raw methods on +} + +// StdInvariantCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdInvariantCallerRaw struct { + Contract *StdInvariantCaller // Generic read-only contract binding to access the raw methods on +} + +// StdInvariantTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdInvariantTransactorRaw struct { + Contract *StdInvariantTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdInvariant creates a new instance of StdInvariant, bound to a specific deployed contract. +func NewStdInvariant(address common.Address, backend bind.ContractBackend) (*StdInvariant, error) { + contract, err := bindStdInvariant(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdInvariant{StdInvariantCaller: StdInvariantCaller{contract: contract}, StdInvariantTransactor: StdInvariantTransactor{contract: contract}, StdInvariantFilterer: StdInvariantFilterer{contract: contract}}, nil +} + +// NewStdInvariantCaller creates a new read-only instance of StdInvariant, bound to a specific deployed contract. +func NewStdInvariantCaller(address common.Address, caller bind.ContractCaller) (*StdInvariantCaller, error) { + contract, err := bindStdInvariant(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdInvariantCaller{contract: contract}, nil +} + +// NewStdInvariantTransactor creates a new write-only instance of StdInvariant, bound to a specific deployed contract. +func NewStdInvariantTransactor(address common.Address, transactor bind.ContractTransactor) (*StdInvariantTransactor, error) { + contract, err := bindStdInvariant(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdInvariantTransactor{contract: contract}, nil +} + +// NewStdInvariantFilterer creates a new log filterer instance of StdInvariant, bound to a specific deployed contract. +func NewStdInvariantFilterer(address common.Address, filterer bind.ContractFilterer) (*StdInvariantFilterer, error) { + contract, err := bindStdInvariant(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdInvariantFilterer{contract: contract}, nil +} + +// bindStdInvariant binds a generic wrapper to an already deployed contract. +func bindStdInvariant(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdInvariantMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdInvariant *StdInvariantRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdInvariant.Contract.StdInvariantCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdInvariant *StdInvariantRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdInvariant.Contract.StdInvariantTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdInvariant *StdInvariantRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdInvariant.Contract.StdInvariantTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdInvariant *StdInvariantCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdInvariant.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdInvariant *StdInvariantTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdInvariant.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdInvariant *StdInvariantTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdInvariant.Contract.contract.Transact(opts, method, params...) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_StdInvariant *StdInvariantCaller) ExcludeArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _StdInvariant.contract.Call(opts, &out, "excludeArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_StdInvariant *StdInvariantSession) ExcludeArtifacts() ([]string, error) { + return _StdInvariant.Contract.ExcludeArtifacts(&_StdInvariant.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_StdInvariant *StdInvariantCallerSession) ExcludeArtifacts() ([]string, error) { + return _StdInvariant.Contract.ExcludeArtifacts(&_StdInvariant.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_StdInvariant *StdInvariantCaller) ExcludeContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _StdInvariant.contract.Call(opts, &out, "excludeContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_StdInvariant *StdInvariantSession) ExcludeContracts() ([]common.Address, error) { + return _StdInvariant.Contract.ExcludeContracts(&_StdInvariant.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_StdInvariant *StdInvariantCallerSession) ExcludeContracts() ([]common.Address, error) { + return _StdInvariant.Contract.ExcludeContracts(&_StdInvariant.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_StdInvariant *StdInvariantCaller) ExcludeSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _StdInvariant.contract.Call(opts, &out, "excludeSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_StdInvariant *StdInvariantSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _StdInvariant.Contract.ExcludeSelectors(&_StdInvariant.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_StdInvariant *StdInvariantCallerSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _StdInvariant.Contract.ExcludeSelectors(&_StdInvariant.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_StdInvariant *StdInvariantCaller) ExcludeSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _StdInvariant.contract.Call(opts, &out, "excludeSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_StdInvariant *StdInvariantSession) ExcludeSenders() ([]common.Address, error) { + return _StdInvariant.Contract.ExcludeSenders(&_StdInvariant.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_StdInvariant *StdInvariantCallerSession) ExcludeSenders() ([]common.Address, error) { + return _StdInvariant.Contract.ExcludeSenders(&_StdInvariant.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_StdInvariant *StdInvariantCaller) TargetArtifactSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzArtifactSelector, error) { + var out []interface{} + err := _StdInvariant.contract.Call(opts, &out, "targetArtifactSelectors") + + if err != nil { + return *new([]StdInvariantFuzzArtifactSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzArtifactSelector)).(*[]StdInvariantFuzzArtifactSelector) + + return out0, err + +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_StdInvariant *StdInvariantSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _StdInvariant.Contract.TargetArtifactSelectors(&_StdInvariant.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_StdInvariant *StdInvariantCallerSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _StdInvariant.Contract.TargetArtifactSelectors(&_StdInvariant.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_StdInvariant *StdInvariantCaller) TargetArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _StdInvariant.contract.Call(opts, &out, "targetArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_StdInvariant *StdInvariantSession) TargetArtifacts() ([]string, error) { + return _StdInvariant.Contract.TargetArtifacts(&_StdInvariant.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_StdInvariant *StdInvariantCallerSession) TargetArtifacts() ([]string, error) { + return _StdInvariant.Contract.TargetArtifacts(&_StdInvariant.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_StdInvariant *StdInvariantCaller) TargetContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _StdInvariant.contract.Call(opts, &out, "targetContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_StdInvariant *StdInvariantSession) TargetContracts() ([]common.Address, error) { + return _StdInvariant.Contract.TargetContracts(&_StdInvariant.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_StdInvariant *StdInvariantCallerSession) TargetContracts() ([]common.Address, error) { + return _StdInvariant.Contract.TargetContracts(&_StdInvariant.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_StdInvariant *StdInvariantCaller) TargetInterfaces(opts *bind.CallOpts) ([]StdInvariantFuzzInterface, error) { + var out []interface{} + err := _StdInvariant.contract.Call(opts, &out, "targetInterfaces") + + if err != nil { + return *new([]StdInvariantFuzzInterface), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzInterface)).(*[]StdInvariantFuzzInterface) + + return out0, err + +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_StdInvariant *StdInvariantSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _StdInvariant.Contract.TargetInterfaces(&_StdInvariant.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_StdInvariant *StdInvariantCallerSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _StdInvariant.Contract.TargetInterfaces(&_StdInvariant.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_StdInvariant *StdInvariantCaller) TargetSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _StdInvariant.contract.Call(opts, &out, "targetSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_StdInvariant *StdInvariantSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _StdInvariant.Contract.TargetSelectors(&_StdInvariant.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_StdInvariant *StdInvariantCallerSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _StdInvariant.Contract.TargetSelectors(&_StdInvariant.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_StdInvariant *StdInvariantCaller) TargetSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _StdInvariant.contract.Call(opts, &out, "targetSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_StdInvariant *StdInvariantSession) TargetSenders() ([]common.Address, error) { + return _StdInvariant.Contract.TargetSenders(&_StdInvariant.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_StdInvariant *StdInvariantCallerSession) TargetSenders() ([]common.Address, error) { + return _StdInvariant.Contract.TargetSenders(&_StdInvariant.CallOpts) +} diff --git a/v2/pkg/stdjson.sol/stdjson.go b/v2/pkg/stdjson.sol/stdjson.go new file mode 100644 index 00000000..05cd807c --- /dev/null +++ b/v2/pkg/stdjson.sol/stdjson.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdjson + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdJsonMetaData contains all meta data concerning the StdJson contract. +var StdJsonMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd59f5048ae05ef3befcf86df42d1ad7dc359fe84a517a91f58b04f8a9c4c15164736f6c634300081a0033", +} + +// StdJsonABI is the input ABI used to generate the binding from. +// Deprecated: Use StdJsonMetaData.ABI instead. +var StdJsonABI = StdJsonMetaData.ABI + +// StdJsonBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use StdJsonMetaData.Bin instead. +var StdJsonBin = StdJsonMetaData.Bin + +// DeployStdJson deploys a new Ethereum contract, binding an instance of StdJson to it. +func DeployStdJson(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StdJson, error) { + parsed, err := StdJsonMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StdJsonBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &StdJson{StdJsonCaller: StdJsonCaller{contract: contract}, StdJsonTransactor: StdJsonTransactor{contract: contract}, StdJsonFilterer: StdJsonFilterer{contract: contract}}, nil +} + +// StdJson is an auto generated Go binding around an Ethereum contract. +type StdJson struct { + StdJsonCaller // Read-only binding to the contract + StdJsonTransactor // Write-only binding to the contract + StdJsonFilterer // Log filterer for contract events +} + +// StdJsonCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdJsonCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdJsonTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdJsonTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdJsonFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdJsonFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdJsonSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdJsonSession struct { + Contract *StdJson // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdJsonCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdJsonCallerSession struct { + Contract *StdJsonCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdJsonTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdJsonTransactorSession struct { + Contract *StdJsonTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdJsonRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdJsonRaw struct { + Contract *StdJson // Generic contract binding to access the raw methods on +} + +// StdJsonCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdJsonCallerRaw struct { + Contract *StdJsonCaller // Generic read-only contract binding to access the raw methods on +} + +// StdJsonTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdJsonTransactorRaw struct { + Contract *StdJsonTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdJson creates a new instance of StdJson, bound to a specific deployed contract. +func NewStdJson(address common.Address, backend bind.ContractBackend) (*StdJson, error) { + contract, err := bindStdJson(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdJson{StdJsonCaller: StdJsonCaller{contract: contract}, StdJsonTransactor: StdJsonTransactor{contract: contract}, StdJsonFilterer: StdJsonFilterer{contract: contract}}, nil +} + +// NewStdJsonCaller creates a new read-only instance of StdJson, bound to a specific deployed contract. +func NewStdJsonCaller(address common.Address, caller bind.ContractCaller) (*StdJsonCaller, error) { + contract, err := bindStdJson(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdJsonCaller{contract: contract}, nil +} + +// NewStdJsonTransactor creates a new write-only instance of StdJson, bound to a specific deployed contract. +func NewStdJsonTransactor(address common.Address, transactor bind.ContractTransactor) (*StdJsonTransactor, error) { + contract, err := bindStdJson(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdJsonTransactor{contract: contract}, nil +} + +// NewStdJsonFilterer creates a new log filterer instance of StdJson, bound to a specific deployed contract. +func NewStdJsonFilterer(address common.Address, filterer bind.ContractFilterer) (*StdJsonFilterer, error) { + contract, err := bindStdJson(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdJsonFilterer{contract: contract}, nil +} + +// bindStdJson binds a generic wrapper to an already deployed contract. +func bindStdJson(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdJsonMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdJson *StdJsonRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdJson.Contract.StdJsonCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdJson *StdJsonRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdJson.Contract.StdJsonTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdJson *StdJsonRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdJson.Contract.StdJsonTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdJson *StdJsonCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdJson.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdJson *StdJsonTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdJson.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdJson *StdJsonTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdJson.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/stdmath.sol/stdmath.go b/v2/pkg/stdmath.sol/stdmath.go new file mode 100644 index 00000000..c3614770 --- /dev/null +++ b/v2/pkg/stdmath.sol/stdmath.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdmath + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdMathMetaData contains all meta data concerning the StdMath contract. +var StdMathMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d48e26ea2524bb2f6ed36895c260c48987e2db7126d399a1b3bb7fd9552db8164736f6c634300081a0033", +} + +// StdMathABI is the input ABI used to generate the binding from. +// Deprecated: Use StdMathMetaData.ABI instead. +var StdMathABI = StdMathMetaData.ABI + +// StdMathBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use StdMathMetaData.Bin instead. +var StdMathBin = StdMathMetaData.Bin + +// DeployStdMath deploys a new Ethereum contract, binding an instance of StdMath to it. +func DeployStdMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StdMath, error) { + parsed, err := StdMathMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StdMathBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &StdMath{StdMathCaller: StdMathCaller{contract: contract}, StdMathTransactor: StdMathTransactor{contract: contract}, StdMathFilterer: StdMathFilterer{contract: contract}}, nil +} + +// StdMath is an auto generated Go binding around an Ethereum contract. +type StdMath struct { + StdMathCaller // Read-only binding to the contract + StdMathTransactor // Write-only binding to the contract + StdMathFilterer // Log filterer for contract events +} + +// StdMathCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdMathCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdMathTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdMathTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdMathFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdMathFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdMathSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdMathSession struct { + Contract *StdMath // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdMathCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdMathCallerSession struct { + Contract *StdMathCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdMathTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdMathTransactorSession struct { + Contract *StdMathTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdMathRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdMathRaw struct { + Contract *StdMath // Generic contract binding to access the raw methods on +} + +// StdMathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdMathCallerRaw struct { + Contract *StdMathCaller // Generic read-only contract binding to access the raw methods on +} + +// StdMathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdMathTransactorRaw struct { + Contract *StdMathTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdMath creates a new instance of StdMath, bound to a specific deployed contract. +func NewStdMath(address common.Address, backend bind.ContractBackend) (*StdMath, error) { + contract, err := bindStdMath(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdMath{StdMathCaller: StdMathCaller{contract: contract}, StdMathTransactor: StdMathTransactor{contract: contract}, StdMathFilterer: StdMathFilterer{contract: contract}}, nil +} + +// NewStdMathCaller creates a new read-only instance of StdMath, bound to a specific deployed contract. +func NewStdMathCaller(address common.Address, caller bind.ContractCaller) (*StdMathCaller, error) { + contract, err := bindStdMath(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdMathCaller{contract: contract}, nil +} + +// NewStdMathTransactor creates a new write-only instance of StdMath, bound to a specific deployed contract. +func NewStdMathTransactor(address common.Address, transactor bind.ContractTransactor) (*StdMathTransactor, error) { + contract, err := bindStdMath(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdMathTransactor{contract: contract}, nil +} + +// NewStdMathFilterer creates a new log filterer instance of StdMath, bound to a specific deployed contract. +func NewStdMathFilterer(address common.Address, filterer bind.ContractFilterer) (*StdMathFilterer, error) { + contract, err := bindStdMath(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdMathFilterer{contract: contract}, nil +} + +// bindStdMath binds a generic wrapper to an already deployed contract. +func bindStdMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdMathMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdMath *StdMathRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdMath.Contract.StdMathCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdMath *StdMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdMath.Contract.StdMathTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdMath *StdMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdMath.Contract.StdMathTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdMath *StdMathCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdMath.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdMath *StdMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdMath.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdMath *StdMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdMath.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/stdstorage.sol/stdstorage.go b/v2/pkg/stdstorage.sol/stdstorage.go new file mode 100644 index 00000000..b360a69e --- /dev/null +++ b/v2/pkg/stdstorage.sol/stdstorage.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdstorage + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdStorageMetaData contains all meta data concerning the StdStorage contract. +var StdStorageMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b08d0f905a716163daa7050311fa70db0bb92cc06d29f656b76779bf69a0f90164736f6c634300081a0033", +} + +// StdStorageABI is the input ABI used to generate the binding from. +// Deprecated: Use StdStorageMetaData.ABI instead. +var StdStorageABI = StdStorageMetaData.ABI + +// StdStorageBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use StdStorageMetaData.Bin instead. +var StdStorageBin = StdStorageMetaData.Bin + +// DeployStdStorage deploys a new Ethereum contract, binding an instance of StdStorage to it. +func DeployStdStorage(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StdStorage, error) { + parsed, err := StdStorageMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StdStorageBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &StdStorage{StdStorageCaller: StdStorageCaller{contract: contract}, StdStorageTransactor: StdStorageTransactor{contract: contract}, StdStorageFilterer: StdStorageFilterer{contract: contract}}, nil +} + +// StdStorage is an auto generated Go binding around an Ethereum contract. +type StdStorage struct { + StdStorageCaller // Read-only binding to the contract + StdStorageTransactor // Write-only binding to the contract + StdStorageFilterer // Log filterer for contract events +} + +// StdStorageCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdStorageCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdStorageTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdStorageTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdStorageFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdStorageFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdStorageSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdStorageSession struct { + Contract *StdStorage // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdStorageCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdStorageCallerSession struct { + Contract *StdStorageCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdStorageTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdStorageTransactorSession struct { + Contract *StdStorageTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdStorageRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdStorageRaw struct { + Contract *StdStorage // Generic contract binding to access the raw methods on +} + +// StdStorageCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdStorageCallerRaw struct { + Contract *StdStorageCaller // Generic read-only contract binding to access the raw methods on +} + +// StdStorageTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdStorageTransactorRaw struct { + Contract *StdStorageTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdStorage creates a new instance of StdStorage, bound to a specific deployed contract. +func NewStdStorage(address common.Address, backend bind.ContractBackend) (*StdStorage, error) { + contract, err := bindStdStorage(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdStorage{StdStorageCaller: StdStorageCaller{contract: contract}, StdStorageTransactor: StdStorageTransactor{contract: contract}, StdStorageFilterer: StdStorageFilterer{contract: contract}}, nil +} + +// NewStdStorageCaller creates a new read-only instance of StdStorage, bound to a specific deployed contract. +func NewStdStorageCaller(address common.Address, caller bind.ContractCaller) (*StdStorageCaller, error) { + contract, err := bindStdStorage(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdStorageCaller{contract: contract}, nil +} + +// NewStdStorageTransactor creates a new write-only instance of StdStorage, bound to a specific deployed contract. +func NewStdStorageTransactor(address common.Address, transactor bind.ContractTransactor) (*StdStorageTransactor, error) { + contract, err := bindStdStorage(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdStorageTransactor{contract: contract}, nil +} + +// NewStdStorageFilterer creates a new log filterer instance of StdStorage, bound to a specific deployed contract. +func NewStdStorageFilterer(address common.Address, filterer bind.ContractFilterer) (*StdStorageFilterer, error) { + contract, err := bindStdStorage(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdStorageFilterer{contract: contract}, nil +} + +// bindStdStorage binds a generic wrapper to an already deployed contract. +func bindStdStorage(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdStorageMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdStorage *StdStorageRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdStorage.Contract.StdStorageCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdStorage *StdStorageRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdStorage.Contract.StdStorageTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdStorage *StdStorageRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdStorage.Contract.StdStorageTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdStorage *StdStorageCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdStorage.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdStorage *StdStorageTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdStorage.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdStorage *StdStorageTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdStorage.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/stdstorage.sol/stdstoragesafe.go b/v2/pkg/stdstorage.sol/stdstoragesafe.go new file mode 100644 index 00000000..978bfe61 --- /dev/null +++ b/v2/pkg/stdstorage.sol/stdstoragesafe.go @@ -0,0 +1,475 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdstorage + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdStorageSafeMetaData contains all meta data concerning the StdStorageSafe contract. +var StdStorageSafeMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"event\",\"name\":\"SlotFound\",\"inputs\":[{\"name\":\"who\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"fsig\",\"type\":\"bytes4\",\"indexed\":false,\"internalType\":\"bytes4\"},{\"name\":\"keysHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"slot\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WARNING_UninitedSlot\",\"inputs\":[{\"name\":\"who\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"slot\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d6473a3e455f11b00943e19d62d02cf957dec4d27a7a7ddb023bf40264d580b064736f6c634300081a0033", +} + +// StdStorageSafeABI is the input ABI used to generate the binding from. +// Deprecated: Use StdStorageSafeMetaData.ABI instead. +var StdStorageSafeABI = StdStorageSafeMetaData.ABI + +// StdStorageSafeBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use StdStorageSafeMetaData.Bin instead. +var StdStorageSafeBin = StdStorageSafeMetaData.Bin + +// DeployStdStorageSafe deploys a new Ethereum contract, binding an instance of StdStorageSafe to it. +func DeployStdStorageSafe(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StdStorageSafe, error) { + parsed, err := StdStorageSafeMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StdStorageSafeBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &StdStorageSafe{StdStorageSafeCaller: StdStorageSafeCaller{contract: contract}, StdStorageSafeTransactor: StdStorageSafeTransactor{contract: contract}, StdStorageSafeFilterer: StdStorageSafeFilterer{contract: contract}}, nil +} + +// StdStorageSafe is an auto generated Go binding around an Ethereum contract. +type StdStorageSafe struct { + StdStorageSafeCaller // Read-only binding to the contract + StdStorageSafeTransactor // Write-only binding to the contract + StdStorageSafeFilterer // Log filterer for contract events +} + +// StdStorageSafeCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdStorageSafeCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdStorageSafeTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdStorageSafeTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdStorageSafeFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdStorageSafeFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdStorageSafeSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdStorageSafeSession struct { + Contract *StdStorageSafe // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdStorageSafeCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdStorageSafeCallerSession struct { + Contract *StdStorageSafeCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdStorageSafeTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdStorageSafeTransactorSession struct { + Contract *StdStorageSafeTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdStorageSafeRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdStorageSafeRaw struct { + Contract *StdStorageSafe // Generic contract binding to access the raw methods on +} + +// StdStorageSafeCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdStorageSafeCallerRaw struct { + Contract *StdStorageSafeCaller // Generic read-only contract binding to access the raw methods on +} + +// StdStorageSafeTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdStorageSafeTransactorRaw struct { + Contract *StdStorageSafeTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdStorageSafe creates a new instance of StdStorageSafe, bound to a specific deployed contract. +func NewStdStorageSafe(address common.Address, backend bind.ContractBackend) (*StdStorageSafe, error) { + contract, err := bindStdStorageSafe(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdStorageSafe{StdStorageSafeCaller: StdStorageSafeCaller{contract: contract}, StdStorageSafeTransactor: StdStorageSafeTransactor{contract: contract}, StdStorageSafeFilterer: StdStorageSafeFilterer{contract: contract}}, nil +} + +// NewStdStorageSafeCaller creates a new read-only instance of StdStorageSafe, bound to a specific deployed contract. +func NewStdStorageSafeCaller(address common.Address, caller bind.ContractCaller) (*StdStorageSafeCaller, error) { + contract, err := bindStdStorageSafe(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdStorageSafeCaller{contract: contract}, nil +} + +// NewStdStorageSafeTransactor creates a new write-only instance of StdStorageSafe, bound to a specific deployed contract. +func NewStdStorageSafeTransactor(address common.Address, transactor bind.ContractTransactor) (*StdStorageSafeTransactor, error) { + contract, err := bindStdStorageSafe(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdStorageSafeTransactor{contract: contract}, nil +} + +// NewStdStorageSafeFilterer creates a new log filterer instance of StdStorageSafe, bound to a specific deployed contract. +func NewStdStorageSafeFilterer(address common.Address, filterer bind.ContractFilterer) (*StdStorageSafeFilterer, error) { + contract, err := bindStdStorageSafe(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdStorageSafeFilterer{contract: contract}, nil +} + +// bindStdStorageSafe binds a generic wrapper to an already deployed contract. +func bindStdStorageSafe(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdStorageSafeMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdStorageSafe *StdStorageSafeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdStorageSafe.Contract.StdStorageSafeCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdStorageSafe *StdStorageSafeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdStorageSafe.Contract.StdStorageSafeTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdStorageSafe *StdStorageSafeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdStorageSafe.Contract.StdStorageSafeTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdStorageSafe *StdStorageSafeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdStorageSafe.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdStorageSafe *StdStorageSafeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdStorageSafe.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdStorageSafe *StdStorageSafeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdStorageSafe.Contract.contract.Transact(opts, method, params...) +} + +// StdStorageSafeSlotFoundIterator is returned from FilterSlotFound and is used to iterate over the raw logs and unpacked data for SlotFound events raised by the StdStorageSafe contract. +type StdStorageSafeSlotFoundIterator struct { + Event *StdStorageSafeSlotFound // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdStorageSafeSlotFoundIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdStorageSafeSlotFound) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdStorageSafeSlotFound) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdStorageSafeSlotFoundIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdStorageSafeSlotFoundIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdStorageSafeSlotFound represents a SlotFound event raised by the StdStorageSafe contract. +type StdStorageSafeSlotFound struct { + Who common.Address + Fsig [4]byte + KeysHash [32]byte + Slot *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSlotFound is a free log retrieval operation binding the contract event 0x9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed. +// +// Solidity: event SlotFound(address who, bytes4 fsig, bytes32 keysHash, uint256 slot) +func (_StdStorageSafe *StdStorageSafeFilterer) FilterSlotFound(opts *bind.FilterOpts) (*StdStorageSafeSlotFoundIterator, error) { + + logs, sub, err := _StdStorageSafe.contract.FilterLogs(opts, "SlotFound") + if err != nil { + return nil, err + } + return &StdStorageSafeSlotFoundIterator{contract: _StdStorageSafe.contract, event: "SlotFound", logs: logs, sub: sub}, nil +} + +// WatchSlotFound is a free log subscription operation binding the contract event 0x9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed. +// +// Solidity: event SlotFound(address who, bytes4 fsig, bytes32 keysHash, uint256 slot) +func (_StdStorageSafe *StdStorageSafeFilterer) WatchSlotFound(opts *bind.WatchOpts, sink chan<- *StdStorageSafeSlotFound) (event.Subscription, error) { + + logs, sub, err := _StdStorageSafe.contract.WatchLogs(opts, "SlotFound") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdStorageSafeSlotFound) + if err := _StdStorageSafe.contract.UnpackLog(event, "SlotFound", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSlotFound is a log parse operation binding the contract event 0x9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed. +// +// Solidity: event SlotFound(address who, bytes4 fsig, bytes32 keysHash, uint256 slot) +func (_StdStorageSafe *StdStorageSafeFilterer) ParseSlotFound(log types.Log) (*StdStorageSafeSlotFound, error) { + event := new(StdStorageSafeSlotFound) + if err := _StdStorageSafe.contract.UnpackLog(event, "SlotFound", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// StdStorageSafeWARNINGUninitedSlotIterator is returned from FilterWARNINGUninitedSlot and is used to iterate over the raw logs and unpacked data for WARNINGUninitedSlot events raised by the StdStorageSafe contract. +type StdStorageSafeWARNINGUninitedSlotIterator struct { + Event *StdStorageSafeWARNINGUninitedSlot // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *StdStorageSafeWARNINGUninitedSlotIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(StdStorageSafeWARNINGUninitedSlot) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(StdStorageSafeWARNINGUninitedSlot) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *StdStorageSafeWARNINGUninitedSlotIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *StdStorageSafeWARNINGUninitedSlotIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// StdStorageSafeWARNINGUninitedSlot represents a WARNINGUninitedSlot event raised by the StdStorageSafe contract. +type StdStorageSafeWARNINGUninitedSlot struct { + Who common.Address + Slot *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWARNINGUninitedSlot is a free log retrieval operation binding the contract event 0x080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5. +// +// Solidity: event WARNING_UninitedSlot(address who, uint256 slot) +func (_StdStorageSafe *StdStorageSafeFilterer) FilterWARNINGUninitedSlot(opts *bind.FilterOpts) (*StdStorageSafeWARNINGUninitedSlotIterator, error) { + + logs, sub, err := _StdStorageSafe.contract.FilterLogs(opts, "WARNING_UninitedSlot") + if err != nil { + return nil, err + } + return &StdStorageSafeWARNINGUninitedSlotIterator{contract: _StdStorageSafe.contract, event: "WARNING_UninitedSlot", logs: logs, sub: sub}, nil +} + +// WatchWARNINGUninitedSlot is a free log subscription operation binding the contract event 0x080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5. +// +// Solidity: event WARNING_UninitedSlot(address who, uint256 slot) +func (_StdStorageSafe *StdStorageSafeFilterer) WatchWARNINGUninitedSlot(opts *bind.WatchOpts, sink chan<- *StdStorageSafeWARNINGUninitedSlot) (event.Subscription, error) { + + logs, sub, err := _StdStorageSafe.contract.WatchLogs(opts, "WARNING_UninitedSlot") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(StdStorageSafeWARNINGUninitedSlot) + if err := _StdStorageSafe.contract.UnpackLog(event, "WARNING_UninitedSlot", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWARNINGUninitedSlot is a log parse operation binding the contract event 0x080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5. +// +// Solidity: event WARNING_UninitedSlot(address who, uint256 slot) +func (_StdStorageSafe *StdStorageSafeFilterer) ParseWARNINGUninitedSlot(log types.Log) (*StdStorageSafeWARNINGUninitedSlot, error) { + event := new(StdStorageSafeWARNINGUninitedSlot) + if err := _StdStorageSafe.contract.UnpackLog(event, "WARNING_UninitedSlot", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/stdstyle.sol/stdstyle.go b/v2/pkg/stdstyle.sol/stdstyle.go new file mode 100644 index 00000000..eb95e3b4 --- /dev/null +++ b/v2/pkg/stdstyle.sol/stdstyle.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdstyle + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdStyleMetaData contains all meta data concerning the StdStyle contract. +var StdStyleMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ff3fd92fb4330d8d19bf3565d826668fa619fe94dea7a426c09740b32ee4ad4064736f6c634300081a0033", +} + +// StdStyleABI is the input ABI used to generate the binding from. +// Deprecated: Use StdStyleMetaData.ABI instead. +var StdStyleABI = StdStyleMetaData.ABI + +// StdStyleBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use StdStyleMetaData.Bin instead. +var StdStyleBin = StdStyleMetaData.Bin + +// DeployStdStyle deploys a new Ethereum contract, binding an instance of StdStyle to it. +func DeployStdStyle(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StdStyle, error) { + parsed, err := StdStyleMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StdStyleBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &StdStyle{StdStyleCaller: StdStyleCaller{contract: contract}, StdStyleTransactor: StdStyleTransactor{contract: contract}, StdStyleFilterer: StdStyleFilterer{contract: contract}}, nil +} + +// StdStyle is an auto generated Go binding around an Ethereum contract. +type StdStyle struct { + StdStyleCaller // Read-only binding to the contract + StdStyleTransactor // Write-only binding to the contract + StdStyleFilterer // Log filterer for contract events +} + +// StdStyleCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdStyleCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdStyleTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdStyleTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdStyleFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdStyleFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdStyleSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdStyleSession struct { + Contract *StdStyle // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdStyleCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdStyleCallerSession struct { + Contract *StdStyleCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdStyleTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdStyleTransactorSession struct { + Contract *StdStyleTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdStyleRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdStyleRaw struct { + Contract *StdStyle // Generic contract binding to access the raw methods on +} + +// StdStyleCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdStyleCallerRaw struct { + Contract *StdStyleCaller // Generic read-only contract binding to access the raw methods on +} + +// StdStyleTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdStyleTransactorRaw struct { + Contract *StdStyleTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdStyle creates a new instance of StdStyle, bound to a specific deployed contract. +func NewStdStyle(address common.Address, backend bind.ContractBackend) (*StdStyle, error) { + contract, err := bindStdStyle(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdStyle{StdStyleCaller: StdStyleCaller{contract: contract}, StdStyleTransactor: StdStyleTransactor{contract: contract}, StdStyleFilterer: StdStyleFilterer{contract: contract}}, nil +} + +// NewStdStyleCaller creates a new read-only instance of StdStyle, bound to a specific deployed contract. +func NewStdStyleCaller(address common.Address, caller bind.ContractCaller) (*StdStyleCaller, error) { + contract, err := bindStdStyle(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdStyleCaller{contract: contract}, nil +} + +// NewStdStyleTransactor creates a new write-only instance of StdStyle, bound to a specific deployed contract. +func NewStdStyleTransactor(address common.Address, transactor bind.ContractTransactor) (*StdStyleTransactor, error) { + contract, err := bindStdStyle(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdStyleTransactor{contract: contract}, nil +} + +// NewStdStyleFilterer creates a new log filterer instance of StdStyle, bound to a specific deployed contract. +func NewStdStyleFilterer(address common.Address, filterer bind.ContractFilterer) (*StdStyleFilterer, error) { + contract, err := bindStdStyle(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdStyleFilterer{contract: contract}, nil +} + +// bindStdStyle binds a generic wrapper to an already deployed contract. +func bindStdStyle(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdStyleMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdStyle *StdStyleRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdStyle.Contract.StdStyleCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdStyle *StdStyleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdStyle.Contract.StdStyleTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdStyle *StdStyleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdStyle.Contract.StdStyleTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdStyle *StdStyleCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdStyle.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdStyle *StdStyleTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdStyle.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdStyle *StdStyleTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdStyle.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/stdtoml.sol/stdtoml.go b/v2/pkg/stdtoml.sol/stdtoml.go new file mode 100644 index 00000000..c7070f77 --- /dev/null +++ b/v2/pkg/stdtoml.sol/stdtoml.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdtoml + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdTomlMetaData contains all meta data concerning the StdToml contract. +var StdTomlMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200e6fd7bb4f16b85832d27bbaf8945cb753ed6020be4e37073412dfad300f7ee364736f6c634300081a0033", +} + +// StdTomlABI is the input ABI used to generate the binding from. +// Deprecated: Use StdTomlMetaData.ABI instead. +var StdTomlABI = StdTomlMetaData.ABI + +// StdTomlBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use StdTomlMetaData.Bin instead. +var StdTomlBin = StdTomlMetaData.Bin + +// DeployStdToml deploys a new Ethereum contract, binding an instance of StdToml to it. +func DeployStdToml(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StdToml, error) { + parsed, err := StdTomlMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StdTomlBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &StdToml{StdTomlCaller: StdTomlCaller{contract: contract}, StdTomlTransactor: StdTomlTransactor{contract: contract}, StdTomlFilterer: StdTomlFilterer{contract: contract}}, nil +} + +// StdToml is an auto generated Go binding around an Ethereum contract. +type StdToml struct { + StdTomlCaller // Read-only binding to the contract + StdTomlTransactor // Write-only binding to the contract + StdTomlFilterer // Log filterer for contract events +} + +// StdTomlCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdTomlCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdTomlTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdTomlTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdTomlFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdTomlFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdTomlSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdTomlSession struct { + Contract *StdToml // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdTomlCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdTomlCallerSession struct { + Contract *StdTomlCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdTomlTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdTomlTransactorSession struct { + Contract *StdTomlTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdTomlRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdTomlRaw struct { + Contract *StdToml // Generic contract binding to access the raw methods on +} + +// StdTomlCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdTomlCallerRaw struct { + Contract *StdTomlCaller // Generic read-only contract binding to access the raw methods on +} + +// StdTomlTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdTomlTransactorRaw struct { + Contract *StdTomlTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdToml creates a new instance of StdToml, bound to a specific deployed contract. +func NewStdToml(address common.Address, backend bind.ContractBackend) (*StdToml, error) { + contract, err := bindStdToml(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdToml{StdTomlCaller: StdTomlCaller{contract: contract}, StdTomlTransactor: StdTomlTransactor{contract: contract}, StdTomlFilterer: StdTomlFilterer{contract: contract}}, nil +} + +// NewStdTomlCaller creates a new read-only instance of StdToml, bound to a specific deployed contract. +func NewStdTomlCaller(address common.Address, caller bind.ContractCaller) (*StdTomlCaller, error) { + contract, err := bindStdToml(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdTomlCaller{contract: contract}, nil +} + +// NewStdTomlTransactor creates a new write-only instance of StdToml, bound to a specific deployed contract. +func NewStdTomlTransactor(address common.Address, transactor bind.ContractTransactor) (*StdTomlTransactor, error) { + contract, err := bindStdToml(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdTomlTransactor{contract: contract}, nil +} + +// NewStdTomlFilterer creates a new log filterer instance of StdToml, bound to a specific deployed contract. +func NewStdTomlFilterer(address common.Address, filterer bind.ContractFilterer) (*StdTomlFilterer, error) { + contract, err := bindStdToml(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdTomlFilterer{contract: contract}, nil +} + +// bindStdToml binds a generic wrapper to an already deployed contract. +func bindStdToml(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdTomlMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdToml *StdTomlRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdToml.Contract.StdTomlCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdToml *StdTomlRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdToml.Contract.StdTomlTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdToml *StdTomlRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdToml.Contract.StdTomlTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdToml *StdTomlCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdToml.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdToml *StdTomlTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdToml.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdToml *StdTomlTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdToml.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/stdutils.sol/stdutils.go b/v2/pkg/stdutils.sol/stdutils.go new file mode 100644 index 00000000..88d73846 --- /dev/null +++ b/v2/pkg/stdutils.sol/stdutils.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package stdutils + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdUtilsMetaData contains all meta data concerning the StdUtils contract. +var StdUtilsMetaData = &bind.MetaData{ + ABI: "[]", +} + +// StdUtilsABI is the input ABI used to generate the binding from. +// Deprecated: Use StdUtilsMetaData.ABI instead. +var StdUtilsABI = StdUtilsMetaData.ABI + +// StdUtils is an auto generated Go binding around an Ethereum contract. +type StdUtils struct { + StdUtilsCaller // Read-only binding to the contract + StdUtilsTransactor // Write-only binding to the contract + StdUtilsFilterer // Log filterer for contract events +} + +// StdUtilsCaller is an auto generated read-only Go binding around an Ethereum contract. +type StdUtilsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdUtilsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StdUtilsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdUtilsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StdUtilsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StdUtilsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StdUtilsSession struct { + Contract *StdUtils // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdUtilsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StdUtilsCallerSession struct { + Contract *StdUtilsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StdUtilsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StdUtilsTransactorSession struct { + Contract *StdUtilsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StdUtilsRaw is an auto generated low-level Go binding around an Ethereum contract. +type StdUtilsRaw struct { + Contract *StdUtils // Generic contract binding to access the raw methods on +} + +// StdUtilsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StdUtilsCallerRaw struct { + Contract *StdUtilsCaller // Generic read-only contract binding to access the raw methods on +} + +// StdUtilsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StdUtilsTransactorRaw struct { + Contract *StdUtilsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStdUtils creates a new instance of StdUtils, bound to a specific deployed contract. +func NewStdUtils(address common.Address, backend bind.ContractBackend) (*StdUtils, error) { + contract, err := bindStdUtils(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StdUtils{StdUtilsCaller: StdUtilsCaller{contract: contract}, StdUtilsTransactor: StdUtilsTransactor{contract: contract}, StdUtilsFilterer: StdUtilsFilterer{contract: contract}}, nil +} + +// NewStdUtilsCaller creates a new read-only instance of StdUtils, bound to a specific deployed contract. +func NewStdUtilsCaller(address common.Address, caller bind.ContractCaller) (*StdUtilsCaller, error) { + contract, err := bindStdUtils(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StdUtilsCaller{contract: contract}, nil +} + +// NewStdUtilsTransactor creates a new write-only instance of StdUtils, bound to a specific deployed contract. +func NewStdUtilsTransactor(address common.Address, transactor bind.ContractTransactor) (*StdUtilsTransactor, error) { + contract, err := bindStdUtils(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StdUtilsTransactor{contract: contract}, nil +} + +// NewStdUtilsFilterer creates a new log filterer instance of StdUtils, bound to a specific deployed contract. +func NewStdUtilsFilterer(address common.Address, filterer bind.ContractFilterer) (*StdUtilsFilterer, error) { + contract, err := bindStdUtils(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StdUtilsFilterer{contract: contract}, nil +} + +// bindStdUtils binds a generic wrapper to an already deployed contract. +func bindStdUtils(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StdUtilsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdUtils *StdUtilsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdUtils.Contract.StdUtilsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdUtils *StdUtilsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdUtils.Contract.StdUtilsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdUtils *StdUtilsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdUtils.Contract.StdUtilsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StdUtils *StdUtilsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StdUtils.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StdUtils *StdUtilsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StdUtils.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StdUtils *StdUtilsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StdUtils.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/storageslot.sol/storageslot.go b/v2/pkg/storageslot.sol/storageslot.go new file mode 100644 index 00000000..ffda8eee --- /dev/null +++ b/v2/pkg/storageslot.sol/storageslot.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package storageslot + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StorageSlotMetaData contains all meta data concerning the StorageSlot contract. +var StorageSlotMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f8376f88baaa046b0f89f3d37bf1f097ead0f7d4c8342299a4b9e6559b34d1f264736f6c634300081a0033", +} + +// StorageSlotABI is the input ABI used to generate the binding from. +// Deprecated: Use StorageSlotMetaData.ABI instead. +var StorageSlotABI = StorageSlotMetaData.ABI + +// StorageSlotBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use StorageSlotMetaData.Bin instead. +var StorageSlotBin = StorageSlotMetaData.Bin + +// DeployStorageSlot deploys a new Ethereum contract, binding an instance of StorageSlot to it. +func DeployStorageSlot(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StorageSlot, error) { + parsed, err := StorageSlotMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StorageSlotBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &StorageSlot{StorageSlotCaller: StorageSlotCaller{contract: contract}, StorageSlotTransactor: StorageSlotTransactor{contract: contract}, StorageSlotFilterer: StorageSlotFilterer{contract: contract}}, nil +} + +// StorageSlot is an auto generated Go binding around an Ethereum contract. +type StorageSlot struct { + StorageSlotCaller // Read-only binding to the contract + StorageSlotTransactor // Write-only binding to the contract + StorageSlotFilterer // Log filterer for contract events +} + +// StorageSlotCaller is an auto generated read-only Go binding around an Ethereum contract. +type StorageSlotCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StorageSlotTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StorageSlotTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StorageSlotFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StorageSlotFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StorageSlotSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StorageSlotSession struct { + Contract *StorageSlot // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StorageSlotCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StorageSlotCallerSession struct { + Contract *StorageSlotCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StorageSlotTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StorageSlotTransactorSession struct { + Contract *StorageSlotTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StorageSlotRaw is an auto generated low-level Go binding around an Ethereum contract. +type StorageSlotRaw struct { + Contract *StorageSlot // Generic contract binding to access the raw methods on +} + +// StorageSlotCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StorageSlotCallerRaw struct { + Contract *StorageSlotCaller // Generic read-only contract binding to access the raw methods on +} + +// StorageSlotTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StorageSlotTransactorRaw struct { + Contract *StorageSlotTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStorageSlot creates a new instance of StorageSlot, bound to a specific deployed contract. +func NewStorageSlot(address common.Address, backend bind.ContractBackend) (*StorageSlot, error) { + contract, err := bindStorageSlot(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &StorageSlot{StorageSlotCaller: StorageSlotCaller{contract: contract}, StorageSlotTransactor: StorageSlotTransactor{contract: contract}, StorageSlotFilterer: StorageSlotFilterer{contract: contract}}, nil +} + +// NewStorageSlotCaller creates a new read-only instance of StorageSlot, bound to a specific deployed contract. +func NewStorageSlotCaller(address common.Address, caller bind.ContractCaller) (*StorageSlotCaller, error) { + contract, err := bindStorageSlot(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StorageSlotCaller{contract: contract}, nil +} + +// NewStorageSlotTransactor creates a new write-only instance of StorageSlot, bound to a specific deployed contract. +func NewStorageSlotTransactor(address common.Address, transactor bind.ContractTransactor) (*StorageSlotTransactor, error) { + contract, err := bindStorageSlot(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StorageSlotTransactor{contract: contract}, nil +} + +// NewStorageSlotFilterer creates a new log filterer instance of StorageSlot, bound to a specific deployed contract. +func NewStorageSlotFilterer(address common.Address, filterer bind.ContractFilterer) (*StorageSlotFilterer, error) { + contract, err := bindStorageSlot(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StorageSlotFilterer{contract: contract}, nil +} + +// bindStorageSlot binds a generic wrapper to an already deployed contract. +func bindStorageSlot(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StorageSlotMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StorageSlot *StorageSlotRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StorageSlot.Contract.StorageSlotCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StorageSlot *StorageSlotRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StorageSlot.Contract.StorageSlotTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StorageSlot *StorageSlotRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StorageSlot.Contract.StorageSlotTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_StorageSlot *StorageSlotCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StorageSlot.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_StorageSlot *StorageSlotTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StorageSlot.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_StorageSlot *StorageSlotTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StorageSlot.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/strings.sol/strings.go b/v2/pkg/strings.sol/strings.go new file mode 100644 index 00000000..521fc2ad --- /dev/null +++ b/v2/pkg/strings.sol/strings.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package strings + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StringsMetaData contains all meta data concerning the Strings contract. +var StringsMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202c3a0534d126407a2aa867545b37fdc259ccf2da7dbce92eea53d690507d9d5d64736f6c634300081a0033", +} + +// StringsABI is the input ABI used to generate the binding from. +// Deprecated: Use StringsMetaData.ABI instead. +var StringsABI = StringsMetaData.ABI + +// StringsBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use StringsMetaData.Bin instead. +var StringsBin = StringsMetaData.Bin + +// DeployStrings deploys a new Ethereum contract, binding an instance of Strings to it. +func DeployStrings(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Strings, error) { + parsed, err := StringsMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StringsBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Strings{StringsCaller: StringsCaller{contract: contract}, StringsTransactor: StringsTransactor{contract: contract}, StringsFilterer: StringsFilterer{contract: contract}}, nil +} + +// Strings is an auto generated Go binding around an Ethereum contract. +type Strings struct { + StringsCaller // Read-only binding to the contract + StringsTransactor // Write-only binding to the contract + StringsFilterer // Log filterer for contract events +} + +// StringsCaller is an auto generated read-only Go binding around an Ethereum contract. +type StringsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StringsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StringsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StringsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StringsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StringsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StringsSession struct { + Contract *Strings // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StringsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StringsCallerSession struct { + Contract *StringsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StringsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StringsTransactorSession struct { + Contract *StringsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StringsRaw is an auto generated low-level Go binding around an Ethereum contract. +type StringsRaw struct { + Contract *Strings // Generic contract binding to access the raw methods on +} + +// StringsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StringsCallerRaw struct { + Contract *StringsCaller // Generic read-only contract binding to access the raw methods on +} + +// StringsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StringsTransactorRaw struct { + Contract *StringsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStrings creates a new instance of Strings, bound to a specific deployed contract. +func NewStrings(address common.Address, backend bind.ContractBackend) (*Strings, error) { + contract, err := bindStrings(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Strings{StringsCaller: StringsCaller{contract: contract}, StringsTransactor: StringsTransactor{contract: contract}, StringsFilterer: StringsFilterer{contract: contract}}, nil +} + +// NewStringsCaller creates a new read-only instance of Strings, bound to a specific deployed contract. +func NewStringsCaller(address common.Address, caller bind.ContractCaller) (*StringsCaller, error) { + contract, err := bindStrings(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StringsCaller{contract: contract}, nil +} + +// NewStringsTransactor creates a new write-only instance of Strings, bound to a specific deployed contract. +func NewStringsTransactor(address common.Address, transactor bind.ContractTransactor) (*StringsTransactor, error) { + contract, err := bindStrings(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StringsTransactor{contract: contract}, nil +} + +// NewStringsFilterer creates a new log filterer instance of Strings, bound to a specific deployed contract. +func NewStringsFilterer(address common.Address, filterer bind.ContractFilterer) (*StringsFilterer, error) { + contract, err := bindStrings(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StringsFilterer{contract: contract}, nil +} + +// bindStrings binds a generic wrapper to an already deployed contract. +func bindStrings(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StringsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Strings *StringsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Strings.Contract.StringsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Strings *StringsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Strings.Contract.StringsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Strings *StringsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Strings.Contract.StringsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Strings *StringsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Strings.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Strings *StringsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Strings.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Strings *StringsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Strings.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/systemcontract.sol/systemcontract.go b/v2/pkg/systemcontract.sol/systemcontract.go new file mode 100644 index 00000000..1a9415b5 --- /dev/null +++ b/v2/pkg/systemcontract.sol/systemcontract.go @@ -0,0 +1,1421 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package systemcontract + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZContext is an auto generated low-level Go binding around an user-defined struct. +type ZContext struct { + Origin []byte + Sender common.Address + ChainID *big.Int +} + +// SystemContractMetaData contains all meta data concerning the SystemContract contract. +var SystemContractMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"wzeta_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"uniswapv2Factory_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"uniswapv2Router02_\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"FUNGIBLE_MODULE_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositAndCall\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structzContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"gasCoinZRC20ByChainId\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gasPriceByChainId\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gasZetaPoolByChainId\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setConnectorZEVMAddress\",\"inputs\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasCoinZRC20\",\"inputs\":[{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasPrice\",\"inputs\":[{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasZetaPool\",\"inputs\":[{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"erc20\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setWZETAContractAddress\",\"inputs\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"uniswapv2FactoryAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"uniswapv2PairFor\",\"inputs\":[{\"name\":\"factory\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenA\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenB\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"pair\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"uniswapv2Router02Address\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"wZetaContractAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"zetaConnectorZEVMAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"SetConnectorZEVM\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetGasCoin\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetGasPrice\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetGasZetaPool\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetWZeta\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SystemContractDeployed\",\"inputs\":[],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CantBeIdenticalAddresses\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CantBeZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTarget\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x60c060405234801561001057600080fd5b5060405161106f38038061106f83398101604081905261002f916100db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0385811691909117909155828116608052811660a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac590600090a150505061011e565b80516001600160a01b03811681146100d657600080fd5b919050565b6000806000606084860312156100f057600080fd5b6100f9846100bf565b9250610107602085016100bf565b9150610115604085016100bf565b90509250925092565b60805160a051610f2561014a60003960006101e50152600081816102b9015261045b0152610f256000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806397770dff11610097578063c63585cc11610066578063c63585cc14610273578063d7fd7afb14610286578063d936a012146102b4578063ee2815ba146102db57600080fd5b806397770dff1461021a578063a7cb05071461022d578063c39aca3714610240578063c62178ac1461025357600080fd5b8063513a9c05116100d3578063513a9c051461018a578063569541b9146101c0578063842da36d146101e057806391dd645f1461020757600080fd5b80630be15547146100fa5780631f0e251b1461015a5780633ce4a5bc1461016f575b600080fd5b610130610108366004610bd1565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61016d610168366004610c13565b6102ee565b005b61013073735b14bb79463307aacbed86daf3322b1e6226ab81565b610130610198366004610bd1565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6003546101309073ffffffffffffffffffffffffffffffffffffffff1681565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d610215366004610c35565b610402565b61016d610228366004610c13565b610526565b61016d61023b366004610c61565b610633565b61016d61024e366004610c83565b6106ce565b6004546101309073ffffffffffffffffffffffffffffffffffffffff1681565b610130610281366004610d53565b6108cd565b6102a6610294366004610bd1565b60006020819052908152604090205481565b604051908152602001610151565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d6102e9366004610c35565b610a02565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461033b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610388576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c906020015b60405180910390a150565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461044f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354600090610497907f00000000000000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff16846108cd565b60008481526002602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251878152918201529192507f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e910160405180910390a1505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610573576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166105c0576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e906020016103f7565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610680576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152602081815260409182902083905581518481529081018390527f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d91015b60405180910390a15050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461071b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831673735b14bb79463307aacbed86daf3322b1e6226ab1480610768575073ffffffffffffffffffffffffffffffffffffffff831630145b1561079f576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef2400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015610814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108389190610d96565b506040517fde43156e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063de43156e906108939089908990899088908890600401610e01565b600060405180830381600087803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b50505050505050505050565b60008060006108dc8585610ad3565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084811b8216602084015283901b16603482015291935091508690604801604051602081830303815290604052805190602001206040516020016109c29291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610a4f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91016106c2565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b3b576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610b75578284610b78565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610bca576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b600060208284031215610be357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c0e57600080fd5b919050565b600060208284031215610c2557600080fd5b610c2e82610bea565b9392505050565b60008060408385031215610c4857600080fd5b82359150610c5860208401610bea565b90509250929050565b60008060408385031215610c7457600080fd5b50508035926020909101359150565b60008060008060008060a08789031215610c9c57600080fd5b863567ffffffffffffffff811115610cb357600080fd5b87016060818a031215610cc557600080fd5b9550610cd360208801610bea565b945060408701359350610ce860608801610bea565b9250608087013567ffffffffffffffff811115610d0457600080fd5b8701601f81018913610d1557600080fd5b803567ffffffffffffffff811115610d2c57600080fd5b896020828401011115610d3e57600080fd5b60208201935080925050509295509295509295565b600080600060608486031215610d6857600080fd5b610d7184610bea565b9250610d7f60208501610bea565b9150610d8d60408501610bea565b90509250925092565b600060208284031215610da857600080fd5b81518015158114610c2e57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600086357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1883603018112610e3957600080fd5b870160208101903567ffffffffffffffff811115610e5657600080fd5b803603821315610e6557600080fd5b60606080850152610e7a60e085018284610db8565b91505073ffffffffffffffffffffffffffffffffffffffff610e9e60208a01610bea565b1660a0840152604088013560c084015273ffffffffffffffffffffffffffffffffffffffff871660208401528560408401528281036060840152610ee3818587610db8565b9897505050505050505056fea264697066735822122017543d2c8189b581ace78b1ea401266087d4800c1923634417b929e7efd8a9b764736f6c634300081a0033", +} + +// SystemContractABI is the input ABI used to generate the binding from. +// Deprecated: Use SystemContractMetaData.ABI instead. +var SystemContractABI = SystemContractMetaData.ABI + +// SystemContractBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use SystemContractMetaData.Bin instead. +var SystemContractBin = SystemContractMetaData.Bin + +// DeploySystemContract deploys a new Ethereum contract, binding an instance of SystemContract to it. +func DeploySystemContract(auth *bind.TransactOpts, backend bind.ContractBackend, wzeta_ common.Address, uniswapv2Factory_ common.Address, uniswapv2Router02_ common.Address) (common.Address, *types.Transaction, *SystemContract, error) { + parsed, err := SystemContractMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SystemContractBin), backend, wzeta_, uniswapv2Factory_, uniswapv2Router02_) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &SystemContract{SystemContractCaller: SystemContractCaller{contract: contract}, SystemContractTransactor: SystemContractTransactor{contract: contract}, SystemContractFilterer: SystemContractFilterer{contract: contract}}, nil +} + +// SystemContract is an auto generated Go binding around an Ethereum contract. +type SystemContract struct { + SystemContractCaller // Read-only binding to the contract + SystemContractTransactor // Write-only binding to the contract + SystemContractFilterer // Log filterer for contract events +} + +// SystemContractCaller is an auto generated read-only Go binding around an Ethereum contract. +type SystemContractCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SystemContractTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SystemContractFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SystemContractSession struct { + Contract *SystemContract // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SystemContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SystemContractCallerSession struct { + Contract *SystemContractCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SystemContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SystemContractTransactorSession struct { + Contract *SystemContractTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SystemContractRaw is an auto generated low-level Go binding around an Ethereum contract. +type SystemContractRaw struct { + Contract *SystemContract // Generic contract binding to access the raw methods on +} + +// SystemContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SystemContractCallerRaw struct { + Contract *SystemContractCaller // Generic read-only contract binding to access the raw methods on +} + +// SystemContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SystemContractTransactorRaw struct { + Contract *SystemContractTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSystemContract creates a new instance of SystemContract, bound to a specific deployed contract. +func NewSystemContract(address common.Address, backend bind.ContractBackend) (*SystemContract, error) { + contract, err := bindSystemContract(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SystemContract{SystemContractCaller: SystemContractCaller{contract: contract}, SystemContractTransactor: SystemContractTransactor{contract: contract}, SystemContractFilterer: SystemContractFilterer{contract: contract}}, nil +} + +// NewSystemContractCaller creates a new read-only instance of SystemContract, bound to a specific deployed contract. +func NewSystemContractCaller(address common.Address, caller bind.ContractCaller) (*SystemContractCaller, error) { + contract, err := bindSystemContract(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SystemContractCaller{contract: contract}, nil +} + +// NewSystemContractTransactor creates a new write-only instance of SystemContract, bound to a specific deployed contract. +func NewSystemContractTransactor(address common.Address, transactor bind.ContractTransactor) (*SystemContractTransactor, error) { + contract, err := bindSystemContract(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SystemContractTransactor{contract: contract}, nil +} + +// NewSystemContractFilterer creates a new log filterer instance of SystemContract, bound to a specific deployed contract. +func NewSystemContractFilterer(address common.Address, filterer bind.ContractFilterer) (*SystemContractFilterer, error) { + contract, err := bindSystemContract(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SystemContractFilterer{contract: contract}, nil +} + +// bindSystemContract binds a generic wrapper to an already deployed contract. +func bindSystemContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SystemContractMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SystemContract *SystemContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SystemContract.Contract.SystemContractCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SystemContract *SystemContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SystemContract.Contract.SystemContractTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SystemContract *SystemContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SystemContract.Contract.SystemContractTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SystemContract *SystemContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SystemContract.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SystemContract *SystemContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SystemContract.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SystemContract *SystemContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SystemContract.Contract.contract.Transact(opts, method, params...) +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_SystemContract *SystemContractCaller) FUNGIBLEMODULEADDRESS(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SystemContract.contract.Call(opts, &out, "FUNGIBLE_MODULE_ADDRESS") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_SystemContract *SystemContractSession) FUNGIBLEMODULEADDRESS() (common.Address, error) { + return _SystemContract.Contract.FUNGIBLEMODULEADDRESS(&_SystemContract.CallOpts) +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_SystemContract *SystemContractCallerSession) FUNGIBLEMODULEADDRESS() (common.Address, error) { + return _SystemContract.Contract.FUNGIBLEMODULEADDRESS(&_SystemContract.CallOpts) +} + +// GasCoinZRC20ByChainId is a free data retrieval call binding the contract method 0x0be15547. +// +// Solidity: function gasCoinZRC20ByChainId(uint256 ) view returns(address) +func (_SystemContract *SystemContractCaller) GasCoinZRC20ByChainId(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { + var out []interface{} + err := _SystemContract.contract.Call(opts, &out, "gasCoinZRC20ByChainId", arg0) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GasCoinZRC20ByChainId is a free data retrieval call binding the contract method 0x0be15547. +// +// Solidity: function gasCoinZRC20ByChainId(uint256 ) view returns(address) +func (_SystemContract *SystemContractSession) GasCoinZRC20ByChainId(arg0 *big.Int) (common.Address, error) { + return _SystemContract.Contract.GasCoinZRC20ByChainId(&_SystemContract.CallOpts, arg0) +} + +// GasCoinZRC20ByChainId is a free data retrieval call binding the contract method 0x0be15547. +// +// Solidity: function gasCoinZRC20ByChainId(uint256 ) view returns(address) +func (_SystemContract *SystemContractCallerSession) GasCoinZRC20ByChainId(arg0 *big.Int) (common.Address, error) { + return _SystemContract.Contract.GasCoinZRC20ByChainId(&_SystemContract.CallOpts, arg0) +} + +// GasPriceByChainId is a free data retrieval call binding the contract method 0xd7fd7afb. +// +// Solidity: function gasPriceByChainId(uint256 ) view returns(uint256) +func (_SystemContract *SystemContractCaller) GasPriceByChainId(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { + var out []interface{} + err := _SystemContract.contract.Call(opts, &out, "gasPriceByChainId", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GasPriceByChainId is a free data retrieval call binding the contract method 0xd7fd7afb. +// +// Solidity: function gasPriceByChainId(uint256 ) view returns(uint256) +func (_SystemContract *SystemContractSession) GasPriceByChainId(arg0 *big.Int) (*big.Int, error) { + return _SystemContract.Contract.GasPriceByChainId(&_SystemContract.CallOpts, arg0) +} + +// GasPriceByChainId is a free data retrieval call binding the contract method 0xd7fd7afb. +// +// Solidity: function gasPriceByChainId(uint256 ) view returns(uint256) +func (_SystemContract *SystemContractCallerSession) GasPriceByChainId(arg0 *big.Int) (*big.Int, error) { + return _SystemContract.Contract.GasPriceByChainId(&_SystemContract.CallOpts, arg0) +} + +// GasZetaPoolByChainId is a free data retrieval call binding the contract method 0x513a9c05. +// +// Solidity: function gasZetaPoolByChainId(uint256 ) view returns(address) +func (_SystemContract *SystemContractCaller) GasZetaPoolByChainId(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { + var out []interface{} + err := _SystemContract.contract.Call(opts, &out, "gasZetaPoolByChainId", arg0) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GasZetaPoolByChainId is a free data retrieval call binding the contract method 0x513a9c05. +// +// Solidity: function gasZetaPoolByChainId(uint256 ) view returns(address) +func (_SystemContract *SystemContractSession) GasZetaPoolByChainId(arg0 *big.Int) (common.Address, error) { + return _SystemContract.Contract.GasZetaPoolByChainId(&_SystemContract.CallOpts, arg0) +} + +// GasZetaPoolByChainId is a free data retrieval call binding the contract method 0x513a9c05. +// +// Solidity: function gasZetaPoolByChainId(uint256 ) view returns(address) +func (_SystemContract *SystemContractCallerSession) GasZetaPoolByChainId(arg0 *big.Int) (common.Address, error) { + return _SystemContract.Contract.GasZetaPoolByChainId(&_SystemContract.CallOpts, arg0) +} + +// Uniswapv2FactoryAddress is a free data retrieval call binding the contract method 0xd936a012. +// +// Solidity: function uniswapv2FactoryAddress() view returns(address) +func (_SystemContract *SystemContractCaller) Uniswapv2FactoryAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SystemContract.contract.Call(opts, &out, "uniswapv2FactoryAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Uniswapv2FactoryAddress is a free data retrieval call binding the contract method 0xd936a012. +// +// Solidity: function uniswapv2FactoryAddress() view returns(address) +func (_SystemContract *SystemContractSession) Uniswapv2FactoryAddress() (common.Address, error) { + return _SystemContract.Contract.Uniswapv2FactoryAddress(&_SystemContract.CallOpts) +} + +// Uniswapv2FactoryAddress is a free data retrieval call binding the contract method 0xd936a012. +// +// Solidity: function uniswapv2FactoryAddress() view returns(address) +func (_SystemContract *SystemContractCallerSession) Uniswapv2FactoryAddress() (common.Address, error) { + return _SystemContract.Contract.Uniswapv2FactoryAddress(&_SystemContract.CallOpts) +} + +// Uniswapv2PairFor is a free data retrieval call binding the contract method 0xc63585cc. +// +// Solidity: function uniswapv2PairFor(address factory, address tokenA, address tokenB) pure returns(address pair) +func (_SystemContract *SystemContractCaller) Uniswapv2PairFor(opts *bind.CallOpts, factory common.Address, tokenA common.Address, tokenB common.Address) (common.Address, error) { + var out []interface{} + err := _SystemContract.contract.Call(opts, &out, "uniswapv2PairFor", factory, tokenA, tokenB) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Uniswapv2PairFor is a free data retrieval call binding the contract method 0xc63585cc. +// +// Solidity: function uniswapv2PairFor(address factory, address tokenA, address tokenB) pure returns(address pair) +func (_SystemContract *SystemContractSession) Uniswapv2PairFor(factory common.Address, tokenA common.Address, tokenB common.Address) (common.Address, error) { + return _SystemContract.Contract.Uniswapv2PairFor(&_SystemContract.CallOpts, factory, tokenA, tokenB) +} + +// Uniswapv2PairFor is a free data retrieval call binding the contract method 0xc63585cc. +// +// Solidity: function uniswapv2PairFor(address factory, address tokenA, address tokenB) pure returns(address pair) +func (_SystemContract *SystemContractCallerSession) Uniswapv2PairFor(factory common.Address, tokenA common.Address, tokenB common.Address) (common.Address, error) { + return _SystemContract.Contract.Uniswapv2PairFor(&_SystemContract.CallOpts, factory, tokenA, tokenB) +} + +// Uniswapv2Router02Address is a free data retrieval call binding the contract method 0x842da36d. +// +// Solidity: function uniswapv2Router02Address() view returns(address) +func (_SystemContract *SystemContractCaller) Uniswapv2Router02Address(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SystemContract.contract.Call(opts, &out, "uniswapv2Router02Address") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Uniswapv2Router02Address is a free data retrieval call binding the contract method 0x842da36d. +// +// Solidity: function uniswapv2Router02Address() view returns(address) +func (_SystemContract *SystemContractSession) Uniswapv2Router02Address() (common.Address, error) { + return _SystemContract.Contract.Uniswapv2Router02Address(&_SystemContract.CallOpts) +} + +// Uniswapv2Router02Address is a free data retrieval call binding the contract method 0x842da36d. +// +// Solidity: function uniswapv2Router02Address() view returns(address) +func (_SystemContract *SystemContractCallerSession) Uniswapv2Router02Address() (common.Address, error) { + return _SystemContract.Contract.Uniswapv2Router02Address(&_SystemContract.CallOpts) +} + +// WZetaContractAddress is a free data retrieval call binding the contract method 0x569541b9. +// +// Solidity: function wZetaContractAddress() view returns(address) +func (_SystemContract *SystemContractCaller) WZetaContractAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SystemContract.contract.Call(opts, &out, "wZetaContractAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// WZetaContractAddress is a free data retrieval call binding the contract method 0x569541b9. +// +// Solidity: function wZetaContractAddress() view returns(address) +func (_SystemContract *SystemContractSession) WZetaContractAddress() (common.Address, error) { + return _SystemContract.Contract.WZetaContractAddress(&_SystemContract.CallOpts) +} + +// WZetaContractAddress is a free data retrieval call binding the contract method 0x569541b9. +// +// Solidity: function wZetaContractAddress() view returns(address) +func (_SystemContract *SystemContractCallerSession) WZetaContractAddress() (common.Address, error) { + return _SystemContract.Contract.WZetaContractAddress(&_SystemContract.CallOpts) +} + +// ZetaConnectorZEVMAddress is a free data retrieval call binding the contract method 0xc62178ac. +// +// Solidity: function zetaConnectorZEVMAddress() view returns(address) +func (_SystemContract *SystemContractCaller) ZetaConnectorZEVMAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SystemContract.contract.Call(opts, &out, "zetaConnectorZEVMAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaConnectorZEVMAddress is a free data retrieval call binding the contract method 0xc62178ac. +// +// Solidity: function zetaConnectorZEVMAddress() view returns(address) +func (_SystemContract *SystemContractSession) ZetaConnectorZEVMAddress() (common.Address, error) { + return _SystemContract.Contract.ZetaConnectorZEVMAddress(&_SystemContract.CallOpts) +} + +// ZetaConnectorZEVMAddress is a free data retrieval call binding the contract method 0xc62178ac. +// +// Solidity: function zetaConnectorZEVMAddress() view returns(address) +func (_SystemContract *SystemContractCallerSession) ZetaConnectorZEVMAddress() (common.Address, error) { + return _SystemContract.Contract.ZetaConnectorZEVMAddress(&_SystemContract.CallOpts) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0xc39aca37. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_SystemContract *SystemContractTransactor) DepositAndCall(opts *bind.TransactOpts, context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _SystemContract.contract.Transact(opts, "depositAndCall", context, zrc20, amount, target, message) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0xc39aca37. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_SystemContract *SystemContractSession) DepositAndCall(context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _SystemContract.Contract.DepositAndCall(&_SystemContract.TransactOpts, context, zrc20, amount, target, message) +} + +// DepositAndCall is a paid mutator transaction binding the contract method 0xc39aca37. +// +// Solidity: function depositAndCall((bytes,address,uint256) context, address zrc20, uint256 amount, address target, bytes message) returns() +func (_SystemContract *SystemContractTransactorSession) DepositAndCall(context ZContext, zrc20 common.Address, amount *big.Int, target common.Address, message []byte) (*types.Transaction, error) { + return _SystemContract.Contract.DepositAndCall(&_SystemContract.TransactOpts, context, zrc20, amount, target, message) +} + +// SetConnectorZEVMAddress is a paid mutator transaction binding the contract method 0x1f0e251b. +// +// Solidity: function setConnectorZEVMAddress(address addr) returns() +func (_SystemContract *SystemContractTransactor) SetConnectorZEVMAddress(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { + return _SystemContract.contract.Transact(opts, "setConnectorZEVMAddress", addr) +} + +// SetConnectorZEVMAddress is a paid mutator transaction binding the contract method 0x1f0e251b. +// +// Solidity: function setConnectorZEVMAddress(address addr) returns() +func (_SystemContract *SystemContractSession) SetConnectorZEVMAddress(addr common.Address) (*types.Transaction, error) { + return _SystemContract.Contract.SetConnectorZEVMAddress(&_SystemContract.TransactOpts, addr) +} + +// SetConnectorZEVMAddress is a paid mutator transaction binding the contract method 0x1f0e251b. +// +// Solidity: function setConnectorZEVMAddress(address addr) returns() +func (_SystemContract *SystemContractTransactorSession) SetConnectorZEVMAddress(addr common.Address) (*types.Transaction, error) { + return _SystemContract.Contract.SetConnectorZEVMAddress(&_SystemContract.TransactOpts, addr) +} + +// SetGasCoinZRC20 is a paid mutator transaction binding the contract method 0xee2815ba. +// +// Solidity: function setGasCoinZRC20(uint256 chainID, address zrc20) returns() +func (_SystemContract *SystemContractTransactor) SetGasCoinZRC20(opts *bind.TransactOpts, chainID *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _SystemContract.contract.Transact(opts, "setGasCoinZRC20", chainID, zrc20) +} + +// SetGasCoinZRC20 is a paid mutator transaction binding the contract method 0xee2815ba. +// +// Solidity: function setGasCoinZRC20(uint256 chainID, address zrc20) returns() +func (_SystemContract *SystemContractSession) SetGasCoinZRC20(chainID *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _SystemContract.Contract.SetGasCoinZRC20(&_SystemContract.TransactOpts, chainID, zrc20) +} + +// SetGasCoinZRC20 is a paid mutator transaction binding the contract method 0xee2815ba. +// +// Solidity: function setGasCoinZRC20(uint256 chainID, address zrc20) returns() +func (_SystemContract *SystemContractTransactorSession) SetGasCoinZRC20(chainID *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _SystemContract.Contract.SetGasCoinZRC20(&_SystemContract.TransactOpts, chainID, zrc20) +} + +// SetGasPrice is a paid mutator transaction binding the contract method 0xa7cb0507. +// +// Solidity: function setGasPrice(uint256 chainID, uint256 price) returns() +func (_SystemContract *SystemContractTransactor) SetGasPrice(opts *bind.TransactOpts, chainID *big.Int, price *big.Int) (*types.Transaction, error) { + return _SystemContract.contract.Transact(opts, "setGasPrice", chainID, price) +} + +// SetGasPrice is a paid mutator transaction binding the contract method 0xa7cb0507. +// +// Solidity: function setGasPrice(uint256 chainID, uint256 price) returns() +func (_SystemContract *SystemContractSession) SetGasPrice(chainID *big.Int, price *big.Int) (*types.Transaction, error) { + return _SystemContract.Contract.SetGasPrice(&_SystemContract.TransactOpts, chainID, price) +} + +// SetGasPrice is a paid mutator transaction binding the contract method 0xa7cb0507. +// +// Solidity: function setGasPrice(uint256 chainID, uint256 price) returns() +func (_SystemContract *SystemContractTransactorSession) SetGasPrice(chainID *big.Int, price *big.Int) (*types.Transaction, error) { + return _SystemContract.Contract.SetGasPrice(&_SystemContract.TransactOpts, chainID, price) +} + +// SetGasZetaPool is a paid mutator transaction binding the contract method 0x91dd645f. +// +// Solidity: function setGasZetaPool(uint256 chainID, address erc20) returns() +func (_SystemContract *SystemContractTransactor) SetGasZetaPool(opts *bind.TransactOpts, chainID *big.Int, erc20 common.Address) (*types.Transaction, error) { + return _SystemContract.contract.Transact(opts, "setGasZetaPool", chainID, erc20) +} + +// SetGasZetaPool is a paid mutator transaction binding the contract method 0x91dd645f. +// +// Solidity: function setGasZetaPool(uint256 chainID, address erc20) returns() +func (_SystemContract *SystemContractSession) SetGasZetaPool(chainID *big.Int, erc20 common.Address) (*types.Transaction, error) { + return _SystemContract.Contract.SetGasZetaPool(&_SystemContract.TransactOpts, chainID, erc20) +} + +// SetGasZetaPool is a paid mutator transaction binding the contract method 0x91dd645f. +// +// Solidity: function setGasZetaPool(uint256 chainID, address erc20) returns() +func (_SystemContract *SystemContractTransactorSession) SetGasZetaPool(chainID *big.Int, erc20 common.Address) (*types.Transaction, error) { + return _SystemContract.Contract.SetGasZetaPool(&_SystemContract.TransactOpts, chainID, erc20) +} + +// SetWZETAContractAddress is a paid mutator transaction binding the contract method 0x97770dff. +// +// Solidity: function setWZETAContractAddress(address addr) returns() +func (_SystemContract *SystemContractTransactor) SetWZETAContractAddress(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { + return _SystemContract.contract.Transact(opts, "setWZETAContractAddress", addr) +} + +// SetWZETAContractAddress is a paid mutator transaction binding the contract method 0x97770dff. +// +// Solidity: function setWZETAContractAddress(address addr) returns() +func (_SystemContract *SystemContractSession) SetWZETAContractAddress(addr common.Address) (*types.Transaction, error) { + return _SystemContract.Contract.SetWZETAContractAddress(&_SystemContract.TransactOpts, addr) +} + +// SetWZETAContractAddress is a paid mutator transaction binding the contract method 0x97770dff. +// +// Solidity: function setWZETAContractAddress(address addr) returns() +func (_SystemContract *SystemContractTransactorSession) SetWZETAContractAddress(addr common.Address) (*types.Transaction, error) { + return _SystemContract.Contract.SetWZETAContractAddress(&_SystemContract.TransactOpts, addr) +} + +// SystemContractSetConnectorZEVMIterator is returned from FilterSetConnectorZEVM and is used to iterate over the raw logs and unpacked data for SetConnectorZEVM events raised by the SystemContract contract. +type SystemContractSetConnectorZEVMIterator struct { + Event *SystemContractSetConnectorZEVM // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractSetConnectorZEVMIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractSetConnectorZEVM) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractSetConnectorZEVM) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractSetConnectorZEVMIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractSetConnectorZEVMIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractSetConnectorZEVM represents a SetConnectorZEVM event raised by the SystemContract contract. +type SystemContractSetConnectorZEVM struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetConnectorZEVM is a free log retrieval operation binding the contract event 0x3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c. +// +// Solidity: event SetConnectorZEVM(address arg0) +func (_SystemContract *SystemContractFilterer) FilterSetConnectorZEVM(opts *bind.FilterOpts) (*SystemContractSetConnectorZEVMIterator, error) { + + logs, sub, err := _SystemContract.contract.FilterLogs(opts, "SetConnectorZEVM") + if err != nil { + return nil, err + } + return &SystemContractSetConnectorZEVMIterator{contract: _SystemContract.contract, event: "SetConnectorZEVM", logs: logs, sub: sub}, nil +} + +// WatchSetConnectorZEVM is a free log subscription operation binding the contract event 0x3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c. +// +// Solidity: event SetConnectorZEVM(address arg0) +func (_SystemContract *SystemContractFilterer) WatchSetConnectorZEVM(opts *bind.WatchOpts, sink chan<- *SystemContractSetConnectorZEVM) (event.Subscription, error) { + + logs, sub, err := _SystemContract.contract.WatchLogs(opts, "SetConnectorZEVM") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractSetConnectorZEVM) + if err := _SystemContract.contract.UnpackLog(event, "SetConnectorZEVM", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetConnectorZEVM is a log parse operation binding the contract event 0x3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c. +// +// Solidity: event SetConnectorZEVM(address arg0) +func (_SystemContract *SystemContractFilterer) ParseSetConnectorZEVM(log types.Log) (*SystemContractSetConnectorZEVM, error) { + event := new(SystemContractSetConnectorZEVM) + if err := _SystemContract.contract.UnpackLog(event, "SetConnectorZEVM", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemContractSetGasCoinIterator is returned from FilterSetGasCoin and is used to iterate over the raw logs and unpacked data for SetGasCoin events raised by the SystemContract contract. +type SystemContractSetGasCoinIterator struct { + Event *SystemContractSetGasCoin // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractSetGasCoinIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractSetGasCoin) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractSetGasCoin) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractSetGasCoinIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractSetGasCoinIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractSetGasCoin represents a SetGasCoin event raised by the SystemContract contract. +type SystemContractSetGasCoin struct { + Arg0 *big.Int + Arg1 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetGasCoin is a free log retrieval operation binding the contract event 0xd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d. +// +// Solidity: event SetGasCoin(uint256 arg0, address arg1) +func (_SystemContract *SystemContractFilterer) FilterSetGasCoin(opts *bind.FilterOpts) (*SystemContractSetGasCoinIterator, error) { + + logs, sub, err := _SystemContract.contract.FilterLogs(opts, "SetGasCoin") + if err != nil { + return nil, err + } + return &SystemContractSetGasCoinIterator{contract: _SystemContract.contract, event: "SetGasCoin", logs: logs, sub: sub}, nil +} + +// WatchSetGasCoin is a free log subscription operation binding the contract event 0xd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d. +// +// Solidity: event SetGasCoin(uint256 arg0, address arg1) +func (_SystemContract *SystemContractFilterer) WatchSetGasCoin(opts *bind.WatchOpts, sink chan<- *SystemContractSetGasCoin) (event.Subscription, error) { + + logs, sub, err := _SystemContract.contract.WatchLogs(opts, "SetGasCoin") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractSetGasCoin) + if err := _SystemContract.contract.UnpackLog(event, "SetGasCoin", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetGasCoin is a log parse operation binding the contract event 0xd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d. +// +// Solidity: event SetGasCoin(uint256 arg0, address arg1) +func (_SystemContract *SystemContractFilterer) ParseSetGasCoin(log types.Log) (*SystemContractSetGasCoin, error) { + event := new(SystemContractSetGasCoin) + if err := _SystemContract.contract.UnpackLog(event, "SetGasCoin", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemContractSetGasPriceIterator is returned from FilterSetGasPrice and is used to iterate over the raw logs and unpacked data for SetGasPrice events raised by the SystemContract contract. +type SystemContractSetGasPriceIterator struct { + Event *SystemContractSetGasPrice // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractSetGasPriceIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractSetGasPrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractSetGasPrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractSetGasPriceIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractSetGasPriceIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractSetGasPrice represents a SetGasPrice event raised by the SystemContract contract. +type SystemContractSetGasPrice struct { + Arg0 *big.Int + Arg1 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetGasPrice is a free log retrieval operation binding the contract event 0x49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d. +// +// Solidity: event SetGasPrice(uint256 arg0, uint256 arg1) +func (_SystemContract *SystemContractFilterer) FilterSetGasPrice(opts *bind.FilterOpts) (*SystemContractSetGasPriceIterator, error) { + + logs, sub, err := _SystemContract.contract.FilterLogs(opts, "SetGasPrice") + if err != nil { + return nil, err + } + return &SystemContractSetGasPriceIterator{contract: _SystemContract.contract, event: "SetGasPrice", logs: logs, sub: sub}, nil +} + +// WatchSetGasPrice is a free log subscription operation binding the contract event 0x49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d. +// +// Solidity: event SetGasPrice(uint256 arg0, uint256 arg1) +func (_SystemContract *SystemContractFilterer) WatchSetGasPrice(opts *bind.WatchOpts, sink chan<- *SystemContractSetGasPrice) (event.Subscription, error) { + + logs, sub, err := _SystemContract.contract.WatchLogs(opts, "SetGasPrice") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractSetGasPrice) + if err := _SystemContract.contract.UnpackLog(event, "SetGasPrice", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetGasPrice is a log parse operation binding the contract event 0x49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d. +// +// Solidity: event SetGasPrice(uint256 arg0, uint256 arg1) +func (_SystemContract *SystemContractFilterer) ParseSetGasPrice(log types.Log) (*SystemContractSetGasPrice, error) { + event := new(SystemContractSetGasPrice) + if err := _SystemContract.contract.UnpackLog(event, "SetGasPrice", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemContractSetGasZetaPoolIterator is returned from FilterSetGasZetaPool and is used to iterate over the raw logs and unpacked data for SetGasZetaPool events raised by the SystemContract contract. +type SystemContractSetGasZetaPoolIterator struct { + Event *SystemContractSetGasZetaPool // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractSetGasZetaPoolIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractSetGasZetaPool) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractSetGasZetaPool) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractSetGasZetaPoolIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractSetGasZetaPoolIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractSetGasZetaPool represents a SetGasZetaPool event raised by the SystemContract contract. +type SystemContractSetGasZetaPool struct { + Arg0 *big.Int + Arg1 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetGasZetaPool is a free log retrieval operation binding the contract event 0x0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e. +// +// Solidity: event SetGasZetaPool(uint256 arg0, address arg1) +func (_SystemContract *SystemContractFilterer) FilterSetGasZetaPool(opts *bind.FilterOpts) (*SystemContractSetGasZetaPoolIterator, error) { + + logs, sub, err := _SystemContract.contract.FilterLogs(opts, "SetGasZetaPool") + if err != nil { + return nil, err + } + return &SystemContractSetGasZetaPoolIterator{contract: _SystemContract.contract, event: "SetGasZetaPool", logs: logs, sub: sub}, nil +} + +// WatchSetGasZetaPool is a free log subscription operation binding the contract event 0x0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e. +// +// Solidity: event SetGasZetaPool(uint256 arg0, address arg1) +func (_SystemContract *SystemContractFilterer) WatchSetGasZetaPool(opts *bind.WatchOpts, sink chan<- *SystemContractSetGasZetaPool) (event.Subscription, error) { + + logs, sub, err := _SystemContract.contract.WatchLogs(opts, "SetGasZetaPool") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractSetGasZetaPool) + if err := _SystemContract.contract.UnpackLog(event, "SetGasZetaPool", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetGasZetaPool is a log parse operation binding the contract event 0x0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e. +// +// Solidity: event SetGasZetaPool(uint256 arg0, address arg1) +func (_SystemContract *SystemContractFilterer) ParseSetGasZetaPool(log types.Log) (*SystemContractSetGasZetaPool, error) { + event := new(SystemContractSetGasZetaPool) + if err := _SystemContract.contract.UnpackLog(event, "SetGasZetaPool", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemContractSetWZetaIterator is returned from FilterSetWZeta and is used to iterate over the raw logs and unpacked data for SetWZeta events raised by the SystemContract contract. +type SystemContractSetWZetaIterator struct { + Event *SystemContractSetWZeta // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractSetWZetaIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractSetWZeta) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractSetWZeta) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractSetWZetaIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractSetWZetaIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractSetWZeta represents a SetWZeta event raised by the SystemContract contract. +type SystemContractSetWZeta struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetWZeta is a free log retrieval operation binding the contract event 0xdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e. +// +// Solidity: event SetWZeta(address arg0) +func (_SystemContract *SystemContractFilterer) FilterSetWZeta(opts *bind.FilterOpts) (*SystemContractSetWZetaIterator, error) { + + logs, sub, err := _SystemContract.contract.FilterLogs(opts, "SetWZeta") + if err != nil { + return nil, err + } + return &SystemContractSetWZetaIterator{contract: _SystemContract.contract, event: "SetWZeta", logs: logs, sub: sub}, nil +} + +// WatchSetWZeta is a free log subscription operation binding the contract event 0xdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e. +// +// Solidity: event SetWZeta(address arg0) +func (_SystemContract *SystemContractFilterer) WatchSetWZeta(opts *bind.WatchOpts, sink chan<- *SystemContractSetWZeta) (event.Subscription, error) { + + logs, sub, err := _SystemContract.contract.WatchLogs(opts, "SetWZeta") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractSetWZeta) + if err := _SystemContract.contract.UnpackLog(event, "SetWZeta", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetWZeta is a log parse operation binding the contract event 0xdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e. +// +// Solidity: event SetWZeta(address arg0) +func (_SystemContract *SystemContractFilterer) ParseSetWZeta(log types.Log) (*SystemContractSetWZeta, error) { + event := new(SystemContractSetWZeta) + if err := _SystemContract.contract.UnpackLog(event, "SetWZeta", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemContractSystemContractDeployedIterator is returned from FilterSystemContractDeployed and is used to iterate over the raw logs and unpacked data for SystemContractDeployed events raised by the SystemContract contract. +type SystemContractSystemContractDeployedIterator struct { + Event *SystemContractSystemContractDeployed // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractSystemContractDeployedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractSystemContractDeployed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractSystemContractDeployed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractSystemContractDeployedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractSystemContractDeployedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractSystemContractDeployed represents a SystemContractDeployed event raised by the SystemContract contract. +type SystemContractSystemContractDeployed struct { + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSystemContractDeployed is a free log retrieval operation binding the contract event 0x80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5. +// +// Solidity: event SystemContractDeployed() +func (_SystemContract *SystemContractFilterer) FilterSystemContractDeployed(opts *bind.FilterOpts) (*SystemContractSystemContractDeployedIterator, error) { + + logs, sub, err := _SystemContract.contract.FilterLogs(opts, "SystemContractDeployed") + if err != nil { + return nil, err + } + return &SystemContractSystemContractDeployedIterator{contract: _SystemContract.contract, event: "SystemContractDeployed", logs: logs, sub: sub}, nil +} + +// WatchSystemContractDeployed is a free log subscription operation binding the contract event 0x80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5. +// +// Solidity: event SystemContractDeployed() +func (_SystemContract *SystemContractFilterer) WatchSystemContractDeployed(opts *bind.WatchOpts, sink chan<- *SystemContractSystemContractDeployed) (event.Subscription, error) { + + logs, sub, err := _SystemContract.contract.WatchLogs(opts, "SystemContractDeployed") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractSystemContractDeployed) + if err := _SystemContract.contract.UnpackLog(event, "SystemContractDeployed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSystemContractDeployed is a log parse operation binding the contract event 0x80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5. +// +// Solidity: event SystemContractDeployed() +func (_SystemContract *SystemContractFilterer) ParseSystemContractDeployed(log types.Log) (*SystemContractSystemContractDeployed, error) { + event := new(SystemContractSystemContractDeployed) + if err := _SystemContract.contract.UnpackLog(event, "SystemContractDeployed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/systemcontract.sol/systemcontracterrors.go b/v2/pkg/systemcontract.sol/systemcontracterrors.go new file mode 100644 index 00000000..05427d68 --- /dev/null +++ b/v2/pkg/systemcontract.sol/systemcontracterrors.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package systemcontract + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// SystemContractErrorsMetaData contains all meta data concerning the SystemContractErrors contract. +var SystemContractErrorsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CantBeIdenticalAddresses\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CantBeZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTarget\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", +} + +// SystemContractErrorsABI is the input ABI used to generate the binding from. +// Deprecated: Use SystemContractErrorsMetaData.ABI instead. +var SystemContractErrorsABI = SystemContractErrorsMetaData.ABI + +// SystemContractErrors is an auto generated Go binding around an Ethereum contract. +type SystemContractErrors struct { + SystemContractErrorsCaller // Read-only binding to the contract + SystemContractErrorsTransactor // Write-only binding to the contract + SystemContractErrorsFilterer // Log filterer for contract events +} + +// SystemContractErrorsCaller is an auto generated read-only Go binding around an Ethereum contract. +type SystemContractErrorsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractErrorsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SystemContractErrorsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractErrorsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SystemContractErrorsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractErrorsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SystemContractErrorsSession struct { + Contract *SystemContractErrors // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SystemContractErrorsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SystemContractErrorsCallerSession struct { + Contract *SystemContractErrorsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SystemContractErrorsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SystemContractErrorsTransactorSession struct { + Contract *SystemContractErrorsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SystemContractErrorsRaw is an auto generated low-level Go binding around an Ethereum contract. +type SystemContractErrorsRaw struct { + Contract *SystemContractErrors // Generic contract binding to access the raw methods on +} + +// SystemContractErrorsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SystemContractErrorsCallerRaw struct { + Contract *SystemContractErrorsCaller // Generic read-only contract binding to access the raw methods on +} + +// SystemContractErrorsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SystemContractErrorsTransactorRaw struct { + Contract *SystemContractErrorsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSystemContractErrors creates a new instance of SystemContractErrors, bound to a specific deployed contract. +func NewSystemContractErrors(address common.Address, backend bind.ContractBackend) (*SystemContractErrors, error) { + contract, err := bindSystemContractErrors(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SystemContractErrors{SystemContractErrorsCaller: SystemContractErrorsCaller{contract: contract}, SystemContractErrorsTransactor: SystemContractErrorsTransactor{contract: contract}, SystemContractErrorsFilterer: SystemContractErrorsFilterer{contract: contract}}, nil +} + +// NewSystemContractErrorsCaller creates a new read-only instance of SystemContractErrors, bound to a specific deployed contract. +func NewSystemContractErrorsCaller(address common.Address, caller bind.ContractCaller) (*SystemContractErrorsCaller, error) { + contract, err := bindSystemContractErrors(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SystemContractErrorsCaller{contract: contract}, nil +} + +// NewSystemContractErrorsTransactor creates a new write-only instance of SystemContractErrors, bound to a specific deployed contract. +func NewSystemContractErrorsTransactor(address common.Address, transactor bind.ContractTransactor) (*SystemContractErrorsTransactor, error) { + contract, err := bindSystemContractErrors(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SystemContractErrorsTransactor{contract: contract}, nil +} + +// NewSystemContractErrorsFilterer creates a new log filterer instance of SystemContractErrors, bound to a specific deployed contract. +func NewSystemContractErrorsFilterer(address common.Address, filterer bind.ContractFilterer) (*SystemContractErrorsFilterer, error) { + contract, err := bindSystemContractErrors(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SystemContractErrorsFilterer{contract: contract}, nil +} + +// bindSystemContractErrors binds a generic wrapper to an already deployed contract. +func bindSystemContractErrors(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SystemContractErrorsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SystemContractErrors *SystemContractErrorsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SystemContractErrors.Contract.SystemContractErrorsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SystemContractErrors *SystemContractErrorsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SystemContractErrors.Contract.SystemContractErrorsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SystemContractErrors *SystemContractErrorsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SystemContractErrors.Contract.SystemContractErrorsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SystemContractErrors *SystemContractErrorsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SystemContractErrors.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SystemContractErrors *SystemContractErrorsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SystemContractErrors.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SystemContractErrors *SystemContractErrorsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SystemContractErrors.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/systemcontractmock.sol/systemcontracterrors.go b/v2/pkg/systemcontractmock.sol/systemcontracterrors.go new file mode 100644 index 00000000..9c9db887 --- /dev/null +++ b/v2/pkg/systemcontractmock.sol/systemcontracterrors.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package systemcontractmock + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// SystemContractErrorsMetaData contains all meta data concerning the SystemContractErrors contract. +var SystemContractErrorsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CantBeIdenticalAddresses\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CantBeZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTarget\",\"inputs\":[]}]", +} + +// SystemContractErrorsABI is the input ABI used to generate the binding from. +// Deprecated: Use SystemContractErrorsMetaData.ABI instead. +var SystemContractErrorsABI = SystemContractErrorsMetaData.ABI + +// SystemContractErrors is an auto generated Go binding around an Ethereum contract. +type SystemContractErrors struct { + SystemContractErrorsCaller // Read-only binding to the contract + SystemContractErrorsTransactor // Write-only binding to the contract + SystemContractErrorsFilterer // Log filterer for contract events +} + +// SystemContractErrorsCaller is an auto generated read-only Go binding around an Ethereum contract. +type SystemContractErrorsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractErrorsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SystemContractErrorsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractErrorsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SystemContractErrorsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractErrorsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SystemContractErrorsSession struct { + Contract *SystemContractErrors // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SystemContractErrorsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SystemContractErrorsCallerSession struct { + Contract *SystemContractErrorsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SystemContractErrorsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SystemContractErrorsTransactorSession struct { + Contract *SystemContractErrorsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SystemContractErrorsRaw is an auto generated low-level Go binding around an Ethereum contract. +type SystemContractErrorsRaw struct { + Contract *SystemContractErrors // Generic contract binding to access the raw methods on +} + +// SystemContractErrorsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SystemContractErrorsCallerRaw struct { + Contract *SystemContractErrorsCaller // Generic read-only contract binding to access the raw methods on +} + +// SystemContractErrorsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SystemContractErrorsTransactorRaw struct { + Contract *SystemContractErrorsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSystemContractErrors creates a new instance of SystemContractErrors, bound to a specific deployed contract. +func NewSystemContractErrors(address common.Address, backend bind.ContractBackend) (*SystemContractErrors, error) { + contract, err := bindSystemContractErrors(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SystemContractErrors{SystemContractErrorsCaller: SystemContractErrorsCaller{contract: contract}, SystemContractErrorsTransactor: SystemContractErrorsTransactor{contract: contract}, SystemContractErrorsFilterer: SystemContractErrorsFilterer{contract: contract}}, nil +} + +// NewSystemContractErrorsCaller creates a new read-only instance of SystemContractErrors, bound to a specific deployed contract. +func NewSystemContractErrorsCaller(address common.Address, caller bind.ContractCaller) (*SystemContractErrorsCaller, error) { + contract, err := bindSystemContractErrors(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SystemContractErrorsCaller{contract: contract}, nil +} + +// NewSystemContractErrorsTransactor creates a new write-only instance of SystemContractErrors, bound to a specific deployed contract. +func NewSystemContractErrorsTransactor(address common.Address, transactor bind.ContractTransactor) (*SystemContractErrorsTransactor, error) { + contract, err := bindSystemContractErrors(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SystemContractErrorsTransactor{contract: contract}, nil +} + +// NewSystemContractErrorsFilterer creates a new log filterer instance of SystemContractErrors, bound to a specific deployed contract. +func NewSystemContractErrorsFilterer(address common.Address, filterer bind.ContractFilterer) (*SystemContractErrorsFilterer, error) { + contract, err := bindSystemContractErrors(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SystemContractErrorsFilterer{contract: contract}, nil +} + +// bindSystemContractErrors binds a generic wrapper to an already deployed contract. +func bindSystemContractErrors(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SystemContractErrorsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SystemContractErrors *SystemContractErrorsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SystemContractErrors.Contract.SystemContractErrorsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SystemContractErrors *SystemContractErrorsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SystemContractErrors.Contract.SystemContractErrorsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SystemContractErrors *SystemContractErrorsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SystemContractErrors.Contract.SystemContractErrorsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SystemContractErrors *SystemContractErrorsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SystemContractErrors.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SystemContractErrors *SystemContractErrorsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SystemContractErrors.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SystemContractErrors *SystemContractErrorsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SystemContractErrors.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/systemcontractmock.sol/systemcontractmock.go b/v2/pkg/systemcontractmock.sol/systemcontractmock.go new file mode 100644 index 00000000..4efd47d9 --- /dev/null +++ b/v2/pkg/systemcontractmock.sol/systemcontractmock.go @@ -0,0 +1,1176 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package systemcontractmock + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// SystemContractMockMetaData contains all meta data concerning the SystemContractMock contract. +var SystemContractMockMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"wzeta_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"uniswapv2Factory_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"uniswapv2Router02_\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"gasCoinZRC20ByChainId\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gasPriceByChainId\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gasZetaPoolByChainId\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"onCrossChainCall\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasCoinZRC20\",\"inputs\":[{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasPrice\",\"inputs\":[{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setWZETAContractAddress\",\"inputs\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"uniswapv2FactoryAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"uniswapv2PairFor\",\"inputs\":[{\"name\":\"factory\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenA\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenB\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"pair\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"uniswapv2Router02Address\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"wZetaContractAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"SetGasCoin\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetGasPrice\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetGasZetaPool\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetWZeta\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SystemContractDeployed\",\"inputs\":[],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CantBeIdenticalAddresses\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CantBeZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTarget\",\"inputs\":[]}]", + Bin: "0x608060405234801561001057600080fd5b50604051610b3f380380610b3f83398101604081905261002f916100b9565b600380546001600160a01b038086166001600160a01b0319928316179092556004805485841690831617905560058054928416929091169190911790556040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac590600090a15050506100fc565b80516001600160a01b03811681146100b457600080fd5b919050565b6000806000606084860312156100ce57600080fd5b6100d78461009d565b92506100e56020850161009d565b91506100f36040850161009d565b90509250925092565b610a348061010b6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806397770dff11610081578063d7fd7afb1161005b578063d7fd7afb146101f2578063d936a01214610220578063ee2815ba1461024057600080fd5b806397770dff146101b9578063a7cb0507146101cc578063c63585cc146101df57600080fd5b8063513a9c05116100b2578063513a9c0514610143578063569541b914610179578063842da36d1461019957600080fd5b80630be15547146100ce5780633c669d551461012e575b600080fd5b6101046100dc36600461071e565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61014161013c366004610760565b610253565b005b61010461015136600461071e565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6003546101049073ffffffffffffffffffffffffffffffffffffffff1681565b6005546101049073ffffffffffffffffffffffffffffffffffffffff1681565b6101416101c73660046107fd565b6103a0565b6101416101da36600461081f565b610419565b6101046101ed366004610841565b610467565b61021261020036600461071e565b60006020819052908152604090205481565b604051908152602001610125565b6004546101049073ffffffffffffffffffffffffffffffffffffffff1681565b61014161024e366004610884565b61059c565b604080516080810182526000606082019081528152336020820152468183015290517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526024820186905286169063a9059cbb906044016020604051808303816000875af11580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b91906108b0565b506040517fde43156e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063de43156e90610366908490899089908990899060040161091b565b600060405180830381600087803b15801561038057600080fd5b505af1158015610394573d6000803e3d6000fd5b50505050505050505050565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e9060200160405180910390a150565b6000828152602081815260409182902083905581518481529081018390527f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d91015b60405180910390a15050565b60008060006104768585610620565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084811b8216602084015283901b166034820152919350915086906048016040516020818303038152906040528051906020012060405160200161055c9291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b60008281526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d910161045b565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610688576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106106c25782846106c5565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610717576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b60006020828403121561073057600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461075b57600080fd5b919050565b60008060008060006080868803121561077857600080fd5b61078186610737565b945061078f60208701610737565b935060408601359250606086013567ffffffffffffffff8111156107b257600080fd5b8601601f810188136107c357600080fd5b803567ffffffffffffffff8111156107da57600080fd5b8860208284010111156107ec57600080fd5b959894975092955050506020019190565b60006020828403121561080f57600080fd5b61081882610737565b9392505050565b6000806040838503121561083257600080fd5b50508035926020909101359150565b60008060006060848603121561085657600080fd5b61085f84610737565b925061086d60208501610737565b915061087b60408501610737565b90509250925092565b6000806040838503121561089757600080fd5b823591506108a760208401610737565b90509250929050565b6000602082840312156108c257600080fd5b8151801515811461081857600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600086516060608084015280518060e085015260005b81811015610953576020818401810151610100878401015201610935565b5060008482016101000152602089015173ffffffffffffffffffffffffffffffffffffffff811660a0860152601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168401915050604088015160c084015273ffffffffffffffffffffffffffffffffffffffff871660208401528560408401526101008382030160608401526109f2610100820185876108d2565b9897505050505050505056fea2646970667358221220fbd69f8a6a30bdc247946500ad2bb4f7e9f585a260ef649595b89d427fb12f2064736f6c634300081a0033", +} + +// SystemContractMockABI is the input ABI used to generate the binding from. +// Deprecated: Use SystemContractMockMetaData.ABI instead. +var SystemContractMockABI = SystemContractMockMetaData.ABI + +// SystemContractMockBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use SystemContractMockMetaData.Bin instead. +var SystemContractMockBin = SystemContractMockMetaData.Bin + +// DeploySystemContractMock deploys a new Ethereum contract, binding an instance of SystemContractMock to it. +func DeploySystemContractMock(auth *bind.TransactOpts, backend bind.ContractBackend, wzeta_ common.Address, uniswapv2Factory_ common.Address, uniswapv2Router02_ common.Address) (common.Address, *types.Transaction, *SystemContractMock, error) { + parsed, err := SystemContractMockMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SystemContractMockBin), backend, wzeta_, uniswapv2Factory_, uniswapv2Router02_) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &SystemContractMock{SystemContractMockCaller: SystemContractMockCaller{contract: contract}, SystemContractMockTransactor: SystemContractMockTransactor{contract: contract}, SystemContractMockFilterer: SystemContractMockFilterer{contract: contract}}, nil +} + +// SystemContractMock is an auto generated Go binding around an Ethereum contract. +type SystemContractMock struct { + SystemContractMockCaller // Read-only binding to the contract + SystemContractMockTransactor // Write-only binding to the contract + SystemContractMockFilterer // Log filterer for contract events +} + +// SystemContractMockCaller is an auto generated read-only Go binding around an Ethereum contract. +type SystemContractMockCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractMockTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SystemContractMockTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractMockFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SystemContractMockFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemContractMockSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SystemContractMockSession struct { + Contract *SystemContractMock // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SystemContractMockCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SystemContractMockCallerSession struct { + Contract *SystemContractMockCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SystemContractMockTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SystemContractMockTransactorSession struct { + Contract *SystemContractMockTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SystemContractMockRaw is an auto generated low-level Go binding around an Ethereum contract. +type SystemContractMockRaw struct { + Contract *SystemContractMock // Generic contract binding to access the raw methods on +} + +// SystemContractMockCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SystemContractMockCallerRaw struct { + Contract *SystemContractMockCaller // Generic read-only contract binding to access the raw methods on +} + +// SystemContractMockTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SystemContractMockTransactorRaw struct { + Contract *SystemContractMockTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSystemContractMock creates a new instance of SystemContractMock, bound to a specific deployed contract. +func NewSystemContractMock(address common.Address, backend bind.ContractBackend) (*SystemContractMock, error) { + contract, err := bindSystemContractMock(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SystemContractMock{SystemContractMockCaller: SystemContractMockCaller{contract: contract}, SystemContractMockTransactor: SystemContractMockTransactor{contract: contract}, SystemContractMockFilterer: SystemContractMockFilterer{contract: contract}}, nil +} + +// NewSystemContractMockCaller creates a new read-only instance of SystemContractMock, bound to a specific deployed contract. +func NewSystemContractMockCaller(address common.Address, caller bind.ContractCaller) (*SystemContractMockCaller, error) { + contract, err := bindSystemContractMock(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SystemContractMockCaller{contract: contract}, nil +} + +// NewSystemContractMockTransactor creates a new write-only instance of SystemContractMock, bound to a specific deployed contract. +func NewSystemContractMockTransactor(address common.Address, transactor bind.ContractTransactor) (*SystemContractMockTransactor, error) { + contract, err := bindSystemContractMock(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SystemContractMockTransactor{contract: contract}, nil +} + +// NewSystemContractMockFilterer creates a new log filterer instance of SystemContractMock, bound to a specific deployed contract. +func NewSystemContractMockFilterer(address common.Address, filterer bind.ContractFilterer) (*SystemContractMockFilterer, error) { + contract, err := bindSystemContractMock(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SystemContractMockFilterer{contract: contract}, nil +} + +// bindSystemContractMock binds a generic wrapper to an already deployed contract. +func bindSystemContractMock(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SystemContractMockMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SystemContractMock *SystemContractMockRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SystemContractMock.Contract.SystemContractMockCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SystemContractMock *SystemContractMockRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SystemContractMock.Contract.SystemContractMockTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SystemContractMock *SystemContractMockRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SystemContractMock.Contract.SystemContractMockTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SystemContractMock *SystemContractMockCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SystemContractMock.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SystemContractMock *SystemContractMockTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SystemContractMock.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SystemContractMock *SystemContractMockTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SystemContractMock.Contract.contract.Transact(opts, method, params...) +} + +// GasCoinZRC20ByChainId is a free data retrieval call binding the contract method 0x0be15547. +// +// Solidity: function gasCoinZRC20ByChainId(uint256 ) view returns(address) +func (_SystemContractMock *SystemContractMockCaller) GasCoinZRC20ByChainId(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { + var out []interface{} + err := _SystemContractMock.contract.Call(opts, &out, "gasCoinZRC20ByChainId", arg0) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GasCoinZRC20ByChainId is a free data retrieval call binding the contract method 0x0be15547. +// +// Solidity: function gasCoinZRC20ByChainId(uint256 ) view returns(address) +func (_SystemContractMock *SystemContractMockSession) GasCoinZRC20ByChainId(arg0 *big.Int) (common.Address, error) { + return _SystemContractMock.Contract.GasCoinZRC20ByChainId(&_SystemContractMock.CallOpts, arg0) +} + +// GasCoinZRC20ByChainId is a free data retrieval call binding the contract method 0x0be15547. +// +// Solidity: function gasCoinZRC20ByChainId(uint256 ) view returns(address) +func (_SystemContractMock *SystemContractMockCallerSession) GasCoinZRC20ByChainId(arg0 *big.Int) (common.Address, error) { + return _SystemContractMock.Contract.GasCoinZRC20ByChainId(&_SystemContractMock.CallOpts, arg0) +} + +// GasPriceByChainId is a free data retrieval call binding the contract method 0xd7fd7afb. +// +// Solidity: function gasPriceByChainId(uint256 ) view returns(uint256) +func (_SystemContractMock *SystemContractMockCaller) GasPriceByChainId(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { + var out []interface{} + err := _SystemContractMock.contract.Call(opts, &out, "gasPriceByChainId", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GasPriceByChainId is a free data retrieval call binding the contract method 0xd7fd7afb. +// +// Solidity: function gasPriceByChainId(uint256 ) view returns(uint256) +func (_SystemContractMock *SystemContractMockSession) GasPriceByChainId(arg0 *big.Int) (*big.Int, error) { + return _SystemContractMock.Contract.GasPriceByChainId(&_SystemContractMock.CallOpts, arg0) +} + +// GasPriceByChainId is a free data retrieval call binding the contract method 0xd7fd7afb. +// +// Solidity: function gasPriceByChainId(uint256 ) view returns(uint256) +func (_SystemContractMock *SystemContractMockCallerSession) GasPriceByChainId(arg0 *big.Int) (*big.Int, error) { + return _SystemContractMock.Contract.GasPriceByChainId(&_SystemContractMock.CallOpts, arg0) +} + +// GasZetaPoolByChainId is a free data retrieval call binding the contract method 0x513a9c05. +// +// Solidity: function gasZetaPoolByChainId(uint256 ) view returns(address) +func (_SystemContractMock *SystemContractMockCaller) GasZetaPoolByChainId(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { + var out []interface{} + err := _SystemContractMock.contract.Call(opts, &out, "gasZetaPoolByChainId", arg0) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GasZetaPoolByChainId is a free data retrieval call binding the contract method 0x513a9c05. +// +// Solidity: function gasZetaPoolByChainId(uint256 ) view returns(address) +func (_SystemContractMock *SystemContractMockSession) GasZetaPoolByChainId(arg0 *big.Int) (common.Address, error) { + return _SystemContractMock.Contract.GasZetaPoolByChainId(&_SystemContractMock.CallOpts, arg0) +} + +// GasZetaPoolByChainId is a free data retrieval call binding the contract method 0x513a9c05. +// +// Solidity: function gasZetaPoolByChainId(uint256 ) view returns(address) +func (_SystemContractMock *SystemContractMockCallerSession) GasZetaPoolByChainId(arg0 *big.Int) (common.Address, error) { + return _SystemContractMock.Contract.GasZetaPoolByChainId(&_SystemContractMock.CallOpts, arg0) +} + +// Uniswapv2FactoryAddress is a free data retrieval call binding the contract method 0xd936a012. +// +// Solidity: function uniswapv2FactoryAddress() view returns(address) +func (_SystemContractMock *SystemContractMockCaller) Uniswapv2FactoryAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SystemContractMock.contract.Call(opts, &out, "uniswapv2FactoryAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Uniswapv2FactoryAddress is a free data retrieval call binding the contract method 0xd936a012. +// +// Solidity: function uniswapv2FactoryAddress() view returns(address) +func (_SystemContractMock *SystemContractMockSession) Uniswapv2FactoryAddress() (common.Address, error) { + return _SystemContractMock.Contract.Uniswapv2FactoryAddress(&_SystemContractMock.CallOpts) +} + +// Uniswapv2FactoryAddress is a free data retrieval call binding the contract method 0xd936a012. +// +// Solidity: function uniswapv2FactoryAddress() view returns(address) +func (_SystemContractMock *SystemContractMockCallerSession) Uniswapv2FactoryAddress() (common.Address, error) { + return _SystemContractMock.Contract.Uniswapv2FactoryAddress(&_SystemContractMock.CallOpts) +} + +// Uniswapv2PairFor is a free data retrieval call binding the contract method 0xc63585cc. +// +// Solidity: function uniswapv2PairFor(address factory, address tokenA, address tokenB) pure returns(address pair) +func (_SystemContractMock *SystemContractMockCaller) Uniswapv2PairFor(opts *bind.CallOpts, factory common.Address, tokenA common.Address, tokenB common.Address) (common.Address, error) { + var out []interface{} + err := _SystemContractMock.contract.Call(opts, &out, "uniswapv2PairFor", factory, tokenA, tokenB) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Uniswapv2PairFor is a free data retrieval call binding the contract method 0xc63585cc. +// +// Solidity: function uniswapv2PairFor(address factory, address tokenA, address tokenB) pure returns(address pair) +func (_SystemContractMock *SystemContractMockSession) Uniswapv2PairFor(factory common.Address, tokenA common.Address, tokenB common.Address) (common.Address, error) { + return _SystemContractMock.Contract.Uniswapv2PairFor(&_SystemContractMock.CallOpts, factory, tokenA, tokenB) +} + +// Uniswapv2PairFor is a free data retrieval call binding the contract method 0xc63585cc. +// +// Solidity: function uniswapv2PairFor(address factory, address tokenA, address tokenB) pure returns(address pair) +func (_SystemContractMock *SystemContractMockCallerSession) Uniswapv2PairFor(factory common.Address, tokenA common.Address, tokenB common.Address) (common.Address, error) { + return _SystemContractMock.Contract.Uniswapv2PairFor(&_SystemContractMock.CallOpts, factory, tokenA, tokenB) +} + +// Uniswapv2Router02Address is a free data retrieval call binding the contract method 0x842da36d. +// +// Solidity: function uniswapv2Router02Address() view returns(address) +func (_SystemContractMock *SystemContractMockCaller) Uniswapv2Router02Address(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SystemContractMock.contract.Call(opts, &out, "uniswapv2Router02Address") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Uniswapv2Router02Address is a free data retrieval call binding the contract method 0x842da36d. +// +// Solidity: function uniswapv2Router02Address() view returns(address) +func (_SystemContractMock *SystemContractMockSession) Uniswapv2Router02Address() (common.Address, error) { + return _SystemContractMock.Contract.Uniswapv2Router02Address(&_SystemContractMock.CallOpts) +} + +// Uniswapv2Router02Address is a free data retrieval call binding the contract method 0x842da36d. +// +// Solidity: function uniswapv2Router02Address() view returns(address) +func (_SystemContractMock *SystemContractMockCallerSession) Uniswapv2Router02Address() (common.Address, error) { + return _SystemContractMock.Contract.Uniswapv2Router02Address(&_SystemContractMock.CallOpts) +} + +// WZetaContractAddress is a free data retrieval call binding the contract method 0x569541b9. +// +// Solidity: function wZetaContractAddress() view returns(address) +func (_SystemContractMock *SystemContractMockCaller) WZetaContractAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SystemContractMock.contract.Call(opts, &out, "wZetaContractAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// WZetaContractAddress is a free data retrieval call binding the contract method 0x569541b9. +// +// Solidity: function wZetaContractAddress() view returns(address) +func (_SystemContractMock *SystemContractMockSession) WZetaContractAddress() (common.Address, error) { + return _SystemContractMock.Contract.WZetaContractAddress(&_SystemContractMock.CallOpts) +} + +// WZetaContractAddress is a free data retrieval call binding the contract method 0x569541b9. +// +// Solidity: function wZetaContractAddress() view returns(address) +func (_SystemContractMock *SystemContractMockCallerSession) WZetaContractAddress() (common.Address, error) { + return _SystemContractMock.Contract.WZetaContractAddress(&_SystemContractMock.CallOpts) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0x3c669d55. +// +// Solidity: function onCrossChainCall(address target, address zrc20, uint256 amount, bytes message) returns() +func (_SystemContractMock *SystemContractMockTransactor) OnCrossChainCall(opts *bind.TransactOpts, target common.Address, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _SystemContractMock.contract.Transact(opts, "onCrossChainCall", target, zrc20, amount, message) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0x3c669d55. +// +// Solidity: function onCrossChainCall(address target, address zrc20, uint256 amount, bytes message) returns() +func (_SystemContractMock *SystemContractMockSession) OnCrossChainCall(target common.Address, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _SystemContractMock.Contract.OnCrossChainCall(&_SystemContractMock.TransactOpts, target, zrc20, amount, message) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0x3c669d55. +// +// Solidity: function onCrossChainCall(address target, address zrc20, uint256 amount, bytes message) returns() +func (_SystemContractMock *SystemContractMockTransactorSession) OnCrossChainCall(target common.Address, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _SystemContractMock.Contract.OnCrossChainCall(&_SystemContractMock.TransactOpts, target, zrc20, amount, message) +} + +// SetGasCoinZRC20 is a paid mutator transaction binding the contract method 0xee2815ba. +// +// Solidity: function setGasCoinZRC20(uint256 chainID, address zrc20) returns() +func (_SystemContractMock *SystemContractMockTransactor) SetGasCoinZRC20(opts *bind.TransactOpts, chainID *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _SystemContractMock.contract.Transact(opts, "setGasCoinZRC20", chainID, zrc20) +} + +// SetGasCoinZRC20 is a paid mutator transaction binding the contract method 0xee2815ba. +// +// Solidity: function setGasCoinZRC20(uint256 chainID, address zrc20) returns() +func (_SystemContractMock *SystemContractMockSession) SetGasCoinZRC20(chainID *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _SystemContractMock.Contract.SetGasCoinZRC20(&_SystemContractMock.TransactOpts, chainID, zrc20) +} + +// SetGasCoinZRC20 is a paid mutator transaction binding the contract method 0xee2815ba. +// +// Solidity: function setGasCoinZRC20(uint256 chainID, address zrc20) returns() +func (_SystemContractMock *SystemContractMockTransactorSession) SetGasCoinZRC20(chainID *big.Int, zrc20 common.Address) (*types.Transaction, error) { + return _SystemContractMock.Contract.SetGasCoinZRC20(&_SystemContractMock.TransactOpts, chainID, zrc20) +} + +// SetGasPrice is a paid mutator transaction binding the contract method 0xa7cb0507. +// +// Solidity: function setGasPrice(uint256 chainID, uint256 price) returns() +func (_SystemContractMock *SystemContractMockTransactor) SetGasPrice(opts *bind.TransactOpts, chainID *big.Int, price *big.Int) (*types.Transaction, error) { + return _SystemContractMock.contract.Transact(opts, "setGasPrice", chainID, price) +} + +// SetGasPrice is a paid mutator transaction binding the contract method 0xa7cb0507. +// +// Solidity: function setGasPrice(uint256 chainID, uint256 price) returns() +func (_SystemContractMock *SystemContractMockSession) SetGasPrice(chainID *big.Int, price *big.Int) (*types.Transaction, error) { + return _SystemContractMock.Contract.SetGasPrice(&_SystemContractMock.TransactOpts, chainID, price) +} + +// SetGasPrice is a paid mutator transaction binding the contract method 0xa7cb0507. +// +// Solidity: function setGasPrice(uint256 chainID, uint256 price) returns() +func (_SystemContractMock *SystemContractMockTransactorSession) SetGasPrice(chainID *big.Int, price *big.Int) (*types.Transaction, error) { + return _SystemContractMock.Contract.SetGasPrice(&_SystemContractMock.TransactOpts, chainID, price) +} + +// SetWZETAContractAddress is a paid mutator transaction binding the contract method 0x97770dff. +// +// Solidity: function setWZETAContractAddress(address addr) returns() +func (_SystemContractMock *SystemContractMockTransactor) SetWZETAContractAddress(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { + return _SystemContractMock.contract.Transact(opts, "setWZETAContractAddress", addr) +} + +// SetWZETAContractAddress is a paid mutator transaction binding the contract method 0x97770dff. +// +// Solidity: function setWZETAContractAddress(address addr) returns() +func (_SystemContractMock *SystemContractMockSession) SetWZETAContractAddress(addr common.Address) (*types.Transaction, error) { + return _SystemContractMock.Contract.SetWZETAContractAddress(&_SystemContractMock.TransactOpts, addr) +} + +// SetWZETAContractAddress is a paid mutator transaction binding the contract method 0x97770dff. +// +// Solidity: function setWZETAContractAddress(address addr) returns() +func (_SystemContractMock *SystemContractMockTransactorSession) SetWZETAContractAddress(addr common.Address) (*types.Transaction, error) { + return _SystemContractMock.Contract.SetWZETAContractAddress(&_SystemContractMock.TransactOpts, addr) +} + +// SystemContractMockSetGasCoinIterator is returned from FilterSetGasCoin and is used to iterate over the raw logs and unpacked data for SetGasCoin events raised by the SystemContractMock contract. +type SystemContractMockSetGasCoinIterator struct { + Event *SystemContractMockSetGasCoin // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractMockSetGasCoinIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractMockSetGasCoin) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractMockSetGasCoin) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractMockSetGasCoinIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractMockSetGasCoinIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractMockSetGasCoin represents a SetGasCoin event raised by the SystemContractMock contract. +type SystemContractMockSetGasCoin struct { + Arg0 *big.Int + Arg1 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetGasCoin is a free log retrieval operation binding the contract event 0xd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d. +// +// Solidity: event SetGasCoin(uint256 arg0, address arg1) +func (_SystemContractMock *SystemContractMockFilterer) FilterSetGasCoin(opts *bind.FilterOpts) (*SystemContractMockSetGasCoinIterator, error) { + + logs, sub, err := _SystemContractMock.contract.FilterLogs(opts, "SetGasCoin") + if err != nil { + return nil, err + } + return &SystemContractMockSetGasCoinIterator{contract: _SystemContractMock.contract, event: "SetGasCoin", logs: logs, sub: sub}, nil +} + +// WatchSetGasCoin is a free log subscription operation binding the contract event 0xd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d. +// +// Solidity: event SetGasCoin(uint256 arg0, address arg1) +func (_SystemContractMock *SystemContractMockFilterer) WatchSetGasCoin(opts *bind.WatchOpts, sink chan<- *SystemContractMockSetGasCoin) (event.Subscription, error) { + + logs, sub, err := _SystemContractMock.contract.WatchLogs(opts, "SetGasCoin") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractMockSetGasCoin) + if err := _SystemContractMock.contract.UnpackLog(event, "SetGasCoin", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetGasCoin is a log parse operation binding the contract event 0xd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d. +// +// Solidity: event SetGasCoin(uint256 arg0, address arg1) +func (_SystemContractMock *SystemContractMockFilterer) ParseSetGasCoin(log types.Log) (*SystemContractMockSetGasCoin, error) { + event := new(SystemContractMockSetGasCoin) + if err := _SystemContractMock.contract.UnpackLog(event, "SetGasCoin", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemContractMockSetGasPriceIterator is returned from FilterSetGasPrice and is used to iterate over the raw logs and unpacked data for SetGasPrice events raised by the SystemContractMock contract. +type SystemContractMockSetGasPriceIterator struct { + Event *SystemContractMockSetGasPrice // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractMockSetGasPriceIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractMockSetGasPrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractMockSetGasPrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractMockSetGasPriceIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractMockSetGasPriceIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractMockSetGasPrice represents a SetGasPrice event raised by the SystemContractMock contract. +type SystemContractMockSetGasPrice struct { + Arg0 *big.Int + Arg1 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetGasPrice is a free log retrieval operation binding the contract event 0x49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d. +// +// Solidity: event SetGasPrice(uint256 arg0, uint256 arg1) +func (_SystemContractMock *SystemContractMockFilterer) FilterSetGasPrice(opts *bind.FilterOpts) (*SystemContractMockSetGasPriceIterator, error) { + + logs, sub, err := _SystemContractMock.contract.FilterLogs(opts, "SetGasPrice") + if err != nil { + return nil, err + } + return &SystemContractMockSetGasPriceIterator{contract: _SystemContractMock.contract, event: "SetGasPrice", logs: logs, sub: sub}, nil +} + +// WatchSetGasPrice is a free log subscription operation binding the contract event 0x49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d. +// +// Solidity: event SetGasPrice(uint256 arg0, uint256 arg1) +func (_SystemContractMock *SystemContractMockFilterer) WatchSetGasPrice(opts *bind.WatchOpts, sink chan<- *SystemContractMockSetGasPrice) (event.Subscription, error) { + + logs, sub, err := _SystemContractMock.contract.WatchLogs(opts, "SetGasPrice") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractMockSetGasPrice) + if err := _SystemContractMock.contract.UnpackLog(event, "SetGasPrice", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetGasPrice is a log parse operation binding the contract event 0x49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d. +// +// Solidity: event SetGasPrice(uint256 arg0, uint256 arg1) +func (_SystemContractMock *SystemContractMockFilterer) ParseSetGasPrice(log types.Log) (*SystemContractMockSetGasPrice, error) { + event := new(SystemContractMockSetGasPrice) + if err := _SystemContractMock.contract.UnpackLog(event, "SetGasPrice", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemContractMockSetGasZetaPoolIterator is returned from FilterSetGasZetaPool and is used to iterate over the raw logs and unpacked data for SetGasZetaPool events raised by the SystemContractMock contract. +type SystemContractMockSetGasZetaPoolIterator struct { + Event *SystemContractMockSetGasZetaPool // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractMockSetGasZetaPoolIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractMockSetGasZetaPool) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractMockSetGasZetaPool) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractMockSetGasZetaPoolIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractMockSetGasZetaPoolIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractMockSetGasZetaPool represents a SetGasZetaPool event raised by the SystemContractMock contract. +type SystemContractMockSetGasZetaPool struct { + Arg0 *big.Int + Arg1 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetGasZetaPool is a free log retrieval operation binding the contract event 0x0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e. +// +// Solidity: event SetGasZetaPool(uint256 arg0, address arg1) +func (_SystemContractMock *SystemContractMockFilterer) FilterSetGasZetaPool(opts *bind.FilterOpts) (*SystemContractMockSetGasZetaPoolIterator, error) { + + logs, sub, err := _SystemContractMock.contract.FilterLogs(opts, "SetGasZetaPool") + if err != nil { + return nil, err + } + return &SystemContractMockSetGasZetaPoolIterator{contract: _SystemContractMock.contract, event: "SetGasZetaPool", logs: logs, sub: sub}, nil +} + +// WatchSetGasZetaPool is a free log subscription operation binding the contract event 0x0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e. +// +// Solidity: event SetGasZetaPool(uint256 arg0, address arg1) +func (_SystemContractMock *SystemContractMockFilterer) WatchSetGasZetaPool(opts *bind.WatchOpts, sink chan<- *SystemContractMockSetGasZetaPool) (event.Subscription, error) { + + logs, sub, err := _SystemContractMock.contract.WatchLogs(opts, "SetGasZetaPool") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractMockSetGasZetaPool) + if err := _SystemContractMock.contract.UnpackLog(event, "SetGasZetaPool", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetGasZetaPool is a log parse operation binding the contract event 0x0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e. +// +// Solidity: event SetGasZetaPool(uint256 arg0, address arg1) +func (_SystemContractMock *SystemContractMockFilterer) ParseSetGasZetaPool(log types.Log) (*SystemContractMockSetGasZetaPool, error) { + event := new(SystemContractMockSetGasZetaPool) + if err := _SystemContractMock.contract.UnpackLog(event, "SetGasZetaPool", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemContractMockSetWZetaIterator is returned from FilterSetWZeta and is used to iterate over the raw logs and unpacked data for SetWZeta events raised by the SystemContractMock contract. +type SystemContractMockSetWZetaIterator struct { + Event *SystemContractMockSetWZeta // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractMockSetWZetaIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractMockSetWZeta) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractMockSetWZeta) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractMockSetWZetaIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractMockSetWZetaIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractMockSetWZeta represents a SetWZeta event raised by the SystemContractMock contract. +type SystemContractMockSetWZeta struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetWZeta is a free log retrieval operation binding the contract event 0xdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e. +// +// Solidity: event SetWZeta(address arg0) +func (_SystemContractMock *SystemContractMockFilterer) FilterSetWZeta(opts *bind.FilterOpts) (*SystemContractMockSetWZetaIterator, error) { + + logs, sub, err := _SystemContractMock.contract.FilterLogs(opts, "SetWZeta") + if err != nil { + return nil, err + } + return &SystemContractMockSetWZetaIterator{contract: _SystemContractMock.contract, event: "SetWZeta", logs: logs, sub: sub}, nil +} + +// WatchSetWZeta is a free log subscription operation binding the contract event 0xdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e. +// +// Solidity: event SetWZeta(address arg0) +func (_SystemContractMock *SystemContractMockFilterer) WatchSetWZeta(opts *bind.WatchOpts, sink chan<- *SystemContractMockSetWZeta) (event.Subscription, error) { + + logs, sub, err := _SystemContractMock.contract.WatchLogs(opts, "SetWZeta") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractMockSetWZeta) + if err := _SystemContractMock.contract.UnpackLog(event, "SetWZeta", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetWZeta is a log parse operation binding the contract event 0xdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e. +// +// Solidity: event SetWZeta(address arg0) +func (_SystemContractMock *SystemContractMockFilterer) ParseSetWZeta(log types.Log) (*SystemContractMockSetWZeta, error) { + event := new(SystemContractMockSetWZeta) + if err := _SystemContractMock.contract.UnpackLog(event, "SetWZeta", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemContractMockSystemContractDeployedIterator is returned from FilterSystemContractDeployed and is used to iterate over the raw logs and unpacked data for SystemContractDeployed events raised by the SystemContractMock contract. +type SystemContractMockSystemContractDeployedIterator struct { + Event *SystemContractMockSystemContractDeployed // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemContractMockSystemContractDeployedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemContractMockSystemContractDeployed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemContractMockSystemContractDeployed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemContractMockSystemContractDeployedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemContractMockSystemContractDeployedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemContractMockSystemContractDeployed represents a SystemContractDeployed event raised by the SystemContractMock contract. +type SystemContractMockSystemContractDeployed struct { + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSystemContractDeployed is a free log retrieval operation binding the contract event 0x80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5. +// +// Solidity: event SystemContractDeployed() +func (_SystemContractMock *SystemContractMockFilterer) FilterSystemContractDeployed(opts *bind.FilterOpts) (*SystemContractMockSystemContractDeployedIterator, error) { + + logs, sub, err := _SystemContractMock.contract.FilterLogs(opts, "SystemContractDeployed") + if err != nil { + return nil, err + } + return &SystemContractMockSystemContractDeployedIterator{contract: _SystemContractMock.contract, event: "SystemContractDeployed", logs: logs, sub: sub}, nil +} + +// WatchSystemContractDeployed is a free log subscription operation binding the contract event 0x80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5. +// +// Solidity: event SystemContractDeployed() +func (_SystemContractMock *SystemContractMockFilterer) WatchSystemContractDeployed(opts *bind.WatchOpts, sink chan<- *SystemContractMockSystemContractDeployed) (event.Subscription, error) { + + logs, sub, err := _SystemContractMock.contract.WatchLogs(opts, "SystemContractDeployed") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemContractMockSystemContractDeployed) + if err := _SystemContractMock.contract.UnpackLog(event, "SystemContractDeployed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSystemContractDeployed is a log parse operation binding the contract event 0x80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5. +// +// Solidity: event SystemContractDeployed() +func (_SystemContractMock *SystemContractMockFilterer) ParseSystemContractDeployed(log types.Log) (*SystemContractMockSystemContractDeployed, error) { + event := new(SystemContractMockSystemContractDeployed) + if err := _SystemContractMock.contract.UnpackLog(event, "SystemContractDeployed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/test.sol/test.go b/v2/pkg/test.sol/test.go new file mode 100644 index 00000000..1bf46ad4 --- /dev/null +++ b/v2/pkg/test.sol/test.go @@ -0,0 +1,3532 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package test + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdInvariantFuzzArtifactSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzArtifactSelector struct { + Artifact string + Selectors [][4]byte +} + +// StdInvariantFuzzInterface is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzInterface struct { + Addr common.Address + Artifacts []string +} + +// StdInvariantFuzzSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzSelector struct { + Addr common.Address + Selectors [][4]byte +} + +// TestMetaData contains all meta data concerning the Test contract. +var TestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"IS_TEST\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"failed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzArtifactSelector[]\",\"components\":[{\"name\":\"artifact\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetInterfaces\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzInterface[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"artifacts\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"log\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_address\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes32\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_int\",\"inputs\":[{\"name\":\"\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_address\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes32\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_string\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_string\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_uint\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"logs\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", +} + +// TestABI is the input ABI used to generate the binding from. +// Deprecated: Use TestMetaData.ABI instead. +var TestABI = TestMetaData.ABI + +// Test is an auto generated Go binding around an Ethereum contract. +type Test struct { + TestCaller // Read-only binding to the contract + TestTransactor // Write-only binding to the contract + TestFilterer // Log filterer for contract events +} + +// TestCaller is an auto generated read-only Go binding around an Ethereum contract. +type TestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type TestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type TestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type TestSession struct { + Contract *Test // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type TestCallerSession struct { + Contract *TestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// TestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type TestTransactorSession struct { + Contract *TestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TestRaw is an auto generated low-level Go binding around an Ethereum contract. +type TestRaw struct { + Contract *Test // Generic contract binding to access the raw methods on +} + +// TestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type TestCallerRaw struct { + Contract *TestCaller // Generic read-only contract binding to access the raw methods on +} + +// TestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type TestTransactorRaw struct { + Contract *TestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewTest creates a new instance of Test, bound to a specific deployed contract. +func NewTest(address common.Address, backend bind.ContractBackend) (*Test, error) { + contract, err := bindTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Test{TestCaller: TestCaller{contract: contract}, TestTransactor: TestTransactor{contract: contract}, TestFilterer: TestFilterer{contract: contract}}, nil +} + +// NewTestCaller creates a new read-only instance of Test, bound to a specific deployed contract. +func NewTestCaller(address common.Address, caller bind.ContractCaller) (*TestCaller, error) { + contract, err := bindTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &TestCaller{contract: contract}, nil +} + +// NewTestTransactor creates a new write-only instance of Test, bound to a specific deployed contract. +func NewTestTransactor(address common.Address, transactor bind.ContractTransactor) (*TestTransactor, error) { + contract, err := bindTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &TestTransactor{contract: contract}, nil +} + +// NewTestFilterer creates a new log filterer instance of Test, bound to a specific deployed contract. +func NewTestFilterer(address common.Address, filterer bind.ContractFilterer) (*TestFilterer, error) { + contract, err := bindTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &TestFilterer{contract: contract}, nil +} + +// bindTest binds a generic wrapper to an already deployed contract. +func bindTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := TestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Test *TestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Test.Contract.TestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Test *TestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Test.Contract.TestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Test *TestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Test.Contract.TestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Test *TestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Test.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Test *TestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Test.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Test *TestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Test.Contract.contract.Transact(opts, method, params...) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_Test *TestCaller) ISTEST(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "IS_TEST") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_Test *TestSession) ISTEST() (bool, error) { + return _Test.Contract.ISTEST(&_Test.CallOpts) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_Test *TestCallerSession) ISTEST() (bool, error) { + return _Test.Contract.ISTEST(&_Test.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_Test *TestCaller) ExcludeArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "excludeArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_Test *TestSession) ExcludeArtifacts() ([]string, error) { + return _Test.Contract.ExcludeArtifacts(&_Test.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_Test *TestCallerSession) ExcludeArtifacts() ([]string, error) { + return _Test.Contract.ExcludeArtifacts(&_Test.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_Test *TestCaller) ExcludeContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "excludeContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_Test *TestSession) ExcludeContracts() ([]common.Address, error) { + return _Test.Contract.ExcludeContracts(&_Test.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_Test *TestCallerSession) ExcludeContracts() ([]common.Address, error) { + return _Test.Contract.ExcludeContracts(&_Test.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_Test *TestCaller) ExcludeSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "excludeSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_Test *TestSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _Test.Contract.ExcludeSelectors(&_Test.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_Test *TestCallerSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _Test.Contract.ExcludeSelectors(&_Test.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_Test *TestCaller) ExcludeSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "excludeSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_Test *TestSession) ExcludeSenders() ([]common.Address, error) { + return _Test.Contract.ExcludeSenders(&_Test.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_Test *TestCallerSession) ExcludeSenders() ([]common.Address, error) { + return _Test.Contract.ExcludeSenders(&_Test.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_Test *TestCaller) Failed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "failed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_Test *TestSession) Failed() (bool, error) { + return _Test.Contract.Failed(&_Test.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_Test *TestCallerSession) Failed() (bool, error) { + return _Test.Contract.Failed(&_Test.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_Test *TestCaller) TargetArtifactSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzArtifactSelector, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "targetArtifactSelectors") + + if err != nil { + return *new([]StdInvariantFuzzArtifactSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzArtifactSelector)).(*[]StdInvariantFuzzArtifactSelector) + + return out0, err + +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_Test *TestSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _Test.Contract.TargetArtifactSelectors(&_Test.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_Test *TestCallerSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _Test.Contract.TargetArtifactSelectors(&_Test.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_Test *TestCaller) TargetArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "targetArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_Test *TestSession) TargetArtifacts() ([]string, error) { + return _Test.Contract.TargetArtifacts(&_Test.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_Test *TestCallerSession) TargetArtifacts() ([]string, error) { + return _Test.Contract.TargetArtifacts(&_Test.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_Test *TestCaller) TargetContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "targetContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_Test *TestSession) TargetContracts() ([]common.Address, error) { + return _Test.Contract.TargetContracts(&_Test.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_Test *TestCallerSession) TargetContracts() ([]common.Address, error) { + return _Test.Contract.TargetContracts(&_Test.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_Test *TestCaller) TargetInterfaces(opts *bind.CallOpts) ([]StdInvariantFuzzInterface, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "targetInterfaces") + + if err != nil { + return *new([]StdInvariantFuzzInterface), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzInterface)).(*[]StdInvariantFuzzInterface) + + return out0, err + +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_Test *TestSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _Test.Contract.TargetInterfaces(&_Test.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_Test *TestCallerSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _Test.Contract.TargetInterfaces(&_Test.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_Test *TestCaller) TargetSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "targetSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_Test *TestSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _Test.Contract.TargetSelectors(&_Test.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_Test *TestCallerSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _Test.Contract.TargetSelectors(&_Test.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_Test *TestCaller) TargetSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _Test.contract.Call(opts, &out, "targetSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_Test *TestSession) TargetSenders() ([]common.Address, error) { + return _Test.Contract.TargetSenders(&_Test.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_Test *TestCallerSession) TargetSenders() ([]common.Address, error) { + return _Test.Contract.TargetSenders(&_Test.CallOpts) +} + +// TestLogIterator is returned from FilterLog and is used to iterate over the raw logs and unpacked data for Log events raised by the Test contract. +type TestLogIterator struct { + Event *TestLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLog represents a Log event raised by the Test contract. +type TestLog struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLog is a free log retrieval operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_Test *TestFilterer) FilterLog(opts *bind.FilterOpts) (*TestLogIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log") + if err != nil { + return nil, err + } + return &TestLogIterator{contract: _Test.contract, event: "log", logs: logs, sub: sub}, nil +} + +// WatchLog is a free log subscription operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_Test *TestFilterer) WatchLog(opts *bind.WatchOpts, sink chan<- *TestLog) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLog) + if err := _Test.contract.UnpackLog(event, "log", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLog is a log parse operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_Test *TestFilterer) ParseLog(log types.Log) (*TestLog, error) { + event := new(TestLog) + if err := _Test.contract.UnpackLog(event, "log", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogAddressIterator is returned from FilterLogAddress and is used to iterate over the raw logs and unpacked data for LogAddress events raised by the Test contract. +type TestLogAddressIterator struct { + Event *TestLogAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogAddress represents a LogAddress event raised by the Test contract. +type TestLogAddress struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAddress is a free log retrieval operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_Test *TestFilterer) FilterLogAddress(opts *bind.FilterOpts) (*TestLogAddressIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_address") + if err != nil { + return nil, err + } + return &TestLogAddressIterator{contract: _Test.contract, event: "log_address", logs: logs, sub: sub}, nil +} + +// WatchLogAddress is a free log subscription operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_Test *TestFilterer) WatchLogAddress(opts *bind.WatchOpts, sink chan<- *TestLogAddress) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogAddress) + if err := _Test.contract.UnpackLog(event, "log_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogAddress is a log parse operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_Test *TestFilterer) ParseLogAddress(log types.Log) (*TestLogAddress, error) { + event := new(TestLogAddress) + if err := _Test.contract.UnpackLog(event, "log_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogArrayIterator is returned from FilterLogArray and is used to iterate over the raw logs and unpacked data for LogArray events raised by the Test contract. +type TestLogArrayIterator struct { + Event *TestLogArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogArray represents a LogArray event raised by the Test contract. +type TestLogArray struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray is a free log retrieval operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_Test *TestFilterer) FilterLogArray(opts *bind.FilterOpts) (*TestLogArrayIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_array") + if err != nil { + return nil, err + } + return &TestLogArrayIterator{contract: _Test.contract, event: "log_array", logs: logs, sub: sub}, nil +} + +// WatchLogArray is a free log subscription operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_Test *TestFilterer) WatchLogArray(opts *bind.WatchOpts, sink chan<- *TestLogArray) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogArray) + if err := _Test.contract.UnpackLog(event, "log_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray is a log parse operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_Test *TestFilterer) ParseLogArray(log types.Log) (*TestLogArray, error) { + event := new(TestLogArray) + if err := _Test.contract.UnpackLog(event, "log_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogArray0Iterator is returned from FilterLogArray0 and is used to iterate over the raw logs and unpacked data for LogArray0 events raised by the Test contract. +type TestLogArray0Iterator struct { + Event *TestLogArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogArray0 represents a LogArray0 event raised by the Test contract. +type TestLogArray0 struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray0 is a free log retrieval operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_Test *TestFilterer) FilterLogArray0(opts *bind.FilterOpts) (*TestLogArray0Iterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return &TestLogArray0Iterator{contract: _Test.contract, event: "log_array0", logs: logs, sub: sub}, nil +} + +// WatchLogArray0 is a free log subscription operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_Test *TestFilterer) WatchLogArray0(opts *bind.WatchOpts, sink chan<- *TestLogArray0) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogArray0) + if err := _Test.contract.UnpackLog(event, "log_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray0 is a log parse operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_Test *TestFilterer) ParseLogArray0(log types.Log) (*TestLogArray0, error) { + event := new(TestLogArray0) + if err := _Test.contract.UnpackLog(event, "log_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogArray1Iterator is returned from FilterLogArray1 and is used to iterate over the raw logs and unpacked data for LogArray1 events raised by the Test contract. +type TestLogArray1Iterator struct { + Event *TestLogArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogArray1 represents a LogArray1 event raised by the Test contract. +type TestLogArray1 struct { + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray1 is a free log retrieval operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_Test *TestFilterer) FilterLogArray1(opts *bind.FilterOpts) (*TestLogArray1Iterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return &TestLogArray1Iterator{contract: _Test.contract, event: "log_array1", logs: logs, sub: sub}, nil +} + +// WatchLogArray1 is a free log subscription operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_Test *TestFilterer) WatchLogArray1(opts *bind.WatchOpts, sink chan<- *TestLogArray1) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogArray1) + if err := _Test.contract.UnpackLog(event, "log_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray1 is a log parse operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_Test *TestFilterer) ParseLogArray1(log types.Log) (*TestLogArray1, error) { + event := new(TestLogArray1) + if err := _Test.contract.UnpackLog(event, "log_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogBytesIterator is returned from FilterLogBytes and is used to iterate over the raw logs and unpacked data for LogBytes events raised by the Test contract. +type TestLogBytesIterator struct { + Event *TestLogBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogBytes represents a LogBytes event raised by the Test contract. +type TestLogBytes struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes is a free log retrieval operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_Test *TestFilterer) FilterLogBytes(opts *bind.FilterOpts) (*TestLogBytesIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return &TestLogBytesIterator{contract: _Test.contract, event: "log_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogBytes is a free log subscription operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_Test *TestFilterer) WatchLogBytes(opts *bind.WatchOpts, sink chan<- *TestLogBytes) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogBytes) + if err := _Test.contract.UnpackLog(event, "log_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes is a log parse operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_Test *TestFilterer) ParseLogBytes(log types.Log) (*TestLogBytes, error) { + event := new(TestLogBytes) + if err := _Test.contract.UnpackLog(event, "log_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogBytes32Iterator is returned from FilterLogBytes32 and is used to iterate over the raw logs and unpacked data for LogBytes32 events raised by the Test contract. +type TestLogBytes32Iterator struct { + Event *TestLogBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogBytes32 represents a LogBytes32 event raised by the Test contract. +type TestLogBytes32 struct { + Arg0 [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes32 is a free log retrieval operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_Test *TestFilterer) FilterLogBytes32(opts *bind.FilterOpts) (*TestLogBytes32Iterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return &TestLogBytes32Iterator{contract: _Test.contract, event: "log_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogBytes32 is a free log subscription operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_Test *TestFilterer) WatchLogBytes32(opts *bind.WatchOpts, sink chan<- *TestLogBytes32) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogBytes32) + if err := _Test.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes32 is a log parse operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_Test *TestFilterer) ParseLogBytes32(log types.Log) (*TestLogBytes32, error) { + event := new(TestLogBytes32) + if err := _Test.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogIntIterator is returned from FilterLogInt and is used to iterate over the raw logs and unpacked data for LogInt events raised by the Test contract. +type TestLogIntIterator struct { + Event *TestLogInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogInt represents a LogInt event raised by the Test contract. +type TestLogInt struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogInt is a free log retrieval operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_Test *TestFilterer) FilterLogInt(opts *bind.FilterOpts) (*TestLogIntIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_int") + if err != nil { + return nil, err + } + return &TestLogIntIterator{contract: _Test.contract, event: "log_int", logs: logs, sub: sub}, nil +} + +// WatchLogInt is a free log subscription operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_Test *TestFilterer) WatchLogInt(opts *bind.WatchOpts, sink chan<- *TestLogInt) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogInt) + if err := _Test.contract.UnpackLog(event, "log_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogInt is a log parse operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_Test *TestFilterer) ParseLogInt(log types.Log) (*TestLogInt, error) { + event := new(TestLogInt) + if err := _Test.contract.UnpackLog(event, "log_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedAddressIterator is returned from FilterLogNamedAddress and is used to iterate over the raw logs and unpacked data for LogNamedAddress events raised by the Test contract. +type TestLogNamedAddressIterator struct { + Event *TestLogNamedAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedAddress represents a LogNamedAddress event raised by the Test contract. +type TestLogNamedAddress struct { + Key string + Val common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedAddress is a free log retrieval operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_Test *TestFilterer) FilterLogNamedAddress(opts *bind.FilterOpts) (*TestLogNamedAddressIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return &TestLogNamedAddressIterator{contract: _Test.contract, event: "log_named_address", logs: logs, sub: sub}, nil +} + +// WatchLogNamedAddress is a free log subscription operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_Test *TestFilterer) WatchLogNamedAddress(opts *bind.WatchOpts, sink chan<- *TestLogNamedAddress) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedAddress) + if err := _Test.contract.UnpackLog(event, "log_named_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedAddress is a log parse operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_Test *TestFilterer) ParseLogNamedAddress(log types.Log) (*TestLogNamedAddress, error) { + event := new(TestLogNamedAddress) + if err := _Test.contract.UnpackLog(event, "log_named_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedArrayIterator is returned from FilterLogNamedArray and is used to iterate over the raw logs and unpacked data for LogNamedArray events raised by the Test contract. +type TestLogNamedArrayIterator struct { + Event *TestLogNamedArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedArray represents a LogNamedArray event raised by the Test contract. +type TestLogNamedArray struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray is a free log retrieval operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_Test *TestFilterer) FilterLogNamedArray(opts *bind.FilterOpts) (*TestLogNamedArrayIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return &TestLogNamedArrayIterator{contract: _Test.contract, event: "log_named_array", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray is a free log subscription operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_Test *TestFilterer) WatchLogNamedArray(opts *bind.WatchOpts, sink chan<- *TestLogNamedArray) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedArray) + if err := _Test.contract.UnpackLog(event, "log_named_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray is a log parse operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_Test *TestFilterer) ParseLogNamedArray(log types.Log) (*TestLogNamedArray, error) { + event := new(TestLogNamedArray) + if err := _Test.contract.UnpackLog(event, "log_named_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedArray0Iterator is returned from FilterLogNamedArray0 and is used to iterate over the raw logs and unpacked data for LogNamedArray0 events raised by the Test contract. +type TestLogNamedArray0Iterator struct { + Event *TestLogNamedArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedArray0 represents a LogNamedArray0 event raised by the Test contract. +type TestLogNamedArray0 struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray0 is a free log retrieval operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_Test *TestFilterer) FilterLogNamedArray0(opts *bind.FilterOpts) (*TestLogNamedArray0Iterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return &TestLogNamedArray0Iterator{contract: _Test.contract, event: "log_named_array0", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray0 is a free log subscription operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_Test *TestFilterer) WatchLogNamedArray0(opts *bind.WatchOpts, sink chan<- *TestLogNamedArray0) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedArray0) + if err := _Test.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray0 is a log parse operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_Test *TestFilterer) ParseLogNamedArray0(log types.Log) (*TestLogNamedArray0, error) { + event := new(TestLogNamedArray0) + if err := _Test.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedArray1Iterator is returned from FilterLogNamedArray1 and is used to iterate over the raw logs and unpacked data for LogNamedArray1 events raised by the Test contract. +type TestLogNamedArray1Iterator struct { + Event *TestLogNamedArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedArray1 represents a LogNamedArray1 event raised by the Test contract. +type TestLogNamedArray1 struct { + Key string + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray1 is a free log retrieval operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_Test *TestFilterer) FilterLogNamedArray1(opts *bind.FilterOpts) (*TestLogNamedArray1Iterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return &TestLogNamedArray1Iterator{contract: _Test.contract, event: "log_named_array1", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray1 is a free log subscription operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_Test *TestFilterer) WatchLogNamedArray1(opts *bind.WatchOpts, sink chan<- *TestLogNamedArray1) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedArray1) + if err := _Test.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray1 is a log parse operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_Test *TestFilterer) ParseLogNamedArray1(log types.Log) (*TestLogNamedArray1, error) { + event := new(TestLogNamedArray1) + if err := _Test.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedBytesIterator is returned from FilterLogNamedBytes and is used to iterate over the raw logs and unpacked data for LogNamedBytes events raised by the Test contract. +type TestLogNamedBytesIterator struct { + Event *TestLogNamedBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedBytes represents a LogNamedBytes event raised by the Test contract. +type TestLogNamedBytes struct { + Key string + Val []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes is a free log retrieval operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_Test *TestFilterer) FilterLogNamedBytes(opts *bind.FilterOpts) (*TestLogNamedBytesIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return &TestLogNamedBytesIterator{contract: _Test.contract, event: "log_named_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes is a free log subscription operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_Test *TestFilterer) WatchLogNamedBytes(opts *bind.WatchOpts, sink chan<- *TestLogNamedBytes) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedBytes) + if err := _Test.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes is a log parse operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_Test *TestFilterer) ParseLogNamedBytes(log types.Log) (*TestLogNamedBytes, error) { + event := new(TestLogNamedBytes) + if err := _Test.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedBytes32Iterator is returned from FilterLogNamedBytes32 and is used to iterate over the raw logs and unpacked data for LogNamedBytes32 events raised by the Test contract. +type TestLogNamedBytes32Iterator struct { + Event *TestLogNamedBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedBytes32 represents a LogNamedBytes32 event raised by the Test contract. +type TestLogNamedBytes32 struct { + Key string + Val [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes32 is a free log retrieval operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_Test *TestFilterer) FilterLogNamedBytes32(opts *bind.FilterOpts) (*TestLogNamedBytes32Iterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return &TestLogNamedBytes32Iterator{contract: _Test.contract, event: "log_named_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes32 is a free log subscription operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_Test *TestFilterer) WatchLogNamedBytes32(opts *bind.WatchOpts, sink chan<- *TestLogNamedBytes32) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedBytes32) + if err := _Test.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes32 is a log parse operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_Test *TestFilterer) ParseLogNamedBytes32(log types.Log) (*TestLogNamedBytes32, error) { + event := new(TestLogNamedBytes32) + if err := _Test.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedDecimalIntIterator is returned from FilterLogNamedDecimalInt and is used to iterate over the raw logs and unpacked data for LogNamedDecimalInt events raised by the Test contract. +type TestLogNamedDecimalIntIterator struct { + Event *TestLogNamedDecimalInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedDecimalIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedDecimalIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedDecimalIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedDecimalInt represents a LogNamedDecimalInt event raised by the Test contract. +type TestLogNamedDecimalInt struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalInt is a free log retrieval operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_Test *TestFilterer) FilterLogNamedDecimalInt(opts *bind.FilterOpts) (*TestLogNamedDecimalIntIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return &TestLogNamedDecimalIntIterator{contract: _Test.contract, event: "log_named_decimal_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalInt is a free log subscription operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_Test *TestFilterer) WatchLogNamedDecimalInt(opts *bind.WatchOpts, sink chan<- *TestLogNamedDecimalInt) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedDecimalInt) + if err := _Test.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalInt is a log parse operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_Test *TestFilterer) ParseLogNamedDecimalInt(log types.Log) (*TestLogNamedDecimalInt, error) { + event := new(TestLogNamedDecimalInt) + if err := _Test.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedDecimalUintIterator is returned from FilterLogNamedDecimalUint and is used to iterate over the raw logs and unpacked data for LogNamedDecimalUint events raised by the Test contract. +type TestLogNamedDecimalUintIterator struct { + Event *TestLogNamedDecimalUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedDecimalUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedDecimalUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedDecimalUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedDecimalUint represents a LogNamedDecimalUint event raised by the Test contract. +type TestLogNamedDecimalUint struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalUint is a free log retrieval operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_Test *TestFilterer) FilterLogNamedDecimalUint(opts *bind.FilterOpts) (*TestLogNamedDecimalUintIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return &TestLogNamedDecimalUintIterator{contract: _Test.contract, event: "log_named_decimal_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalUint is a free log subscription operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_Test *TestFilterer) WatchLogNamedDecimalUint(opts *bind.WatchOpts, sink chan<- *TestLogNamedDecimalUint) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedDecimalUint) + if err := _Test.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalUint is a log parse operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_Test *TestFilterer) ParseLogNamedDecimalUint(log types.Log) (*TestLogNamedDecimalUint, error) { + event := new(TestLogNamedDecimalUint) + if err := _Test.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedIntIterator is returned from FilterLogNamedInt and is used to iterate over the raw logs and unpacked data for LogNamedInt events raised by the Test contract. +type TestLogNamedIntIterator struct { + Event *TestLogNamedInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedInt represents a LogNamedInt event raised by the Test contract. +type TestLogNamedInt struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedInt is a free log retrieval operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_Test *TestFilterer) FilterLogNamedInt(opts *bind.FilterOpts) (*TestLogNamedIntIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return &TestLogNamedIntIterator{contract: _Test.contract, event: "log_named_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedInt is a free log subscription operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_Test *TestFilterer) WatchLogNamedInt(opts *bind.WatchOpts, sink chan<- *TestLogNamedInt) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedInt) + if err := _Test.contract.UnpackLog(event, "log_named_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedInt is a log parse operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_Test *TestFilterer) ParseLogNamedInt(log types.Log) (*TestLogNamedInt, error) { + event := new(TestLogNamedInt) + if err := _Test.contract.UnpackLog(event, "log_named_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedStringIterator is returned from FilterLogNamedString and is used to iterate over the raw logs and unpacked data for LogNamedString events raised by the Test contract. +type TestLogNamedStringIterator struct { + Event *TestLogNamedString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedString represents a LogNamedString event raised by the Test contract. +type TestLogNamedString struct { + Key string + Val string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedString is a free log retrieval operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_Test *TestFilterer) FilterLogNamedString(opts *bind.FilterOpts) (*TestLogNamedStringIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return &TestLogNamedStringIterator{contract: _Test.contract, event: "log_named_string", logs: logs, sub: sub}, nil +} + +// WatchLogNamedString is a free log subscription operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_Test *TestFilterer) WatchLogNamedString(opts *bind.WatchOpts, sink chan<- *TestLogNamedString) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedString) + if err := _Test.contract.UnpackLog(event, "log_named_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedString is a log parse operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_Test *TestFilterer) ParseLogNamedString(log types.Log) (*TestLogNamedString, error) { + event := new(TestLogNamedString) + if err := _Test.contract.UnpackLog(event, "log_named_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogNamedUintIterator is returned from FilterLogNamedUint and is used to iterate over the raw logs and unpacked data for LogNamedUint events raised by the Test contract. +type TestLogNamedUintIterator struct { + Event *TestLogNamedUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogNamedUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogNamedUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogNamedUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogNamedUint represents a LogNamedUint event raised by the Test contract. +type TestLogNamedUint struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedUint is a free log retrieval operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_Test *TestFilterer) FilterLogNamedUint(opts *bind.FilterOpts) (*TestLogNamedUintIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return &TestLogNamedUintIterator{contract: _Test.contract, event: "log_named_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedUint is a free log subscription operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_Test *TestFilterer) WatchLogNamedUint(opts *bind.WatchOpts, sink chan<- *TestLogNamedUint) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogNamedUint) + if err := _Test.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedUint is a log parse operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_Test *TestFilterer) ParseLogNamedUint(log types.Log) (*TestLogNamedUint, error) { + event := new(TestLogNamedUint) + if err := _Test.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogStringIterator is returned from FilterLogString and is used to iterate over the raw logs and unpacked data for LogString events raised by the Test contract. +type TestLogStringIterator struct { + Event *TestLogString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogString represents a LogString event raised by the Test contract. +type TestLogString struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogString is a free log retrieval operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_Test *TestFilterer) FilterLogString(opts *bind.FilterOpts) (*TestLogStringIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_string") + if err != nil { + return nil, err + } + return &TestLogStringIterator{contract: _Test.contract, event: "log_string", logs: logs, sub: sub}, nil +} + +// WatchLogString is a free log subscription operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_Test *TestFilterer) WatchLogString(opts *bind.WatchOpts, sink chan<- *TestLogString) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogString) + if err := _Test.contract.UnpackLog(event, "log_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogString is a log parse operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_Test *TestFilterer) ParseLogString(log types.Log) (*TestLogString, error) { + event := new(TestLogString) + if err := _Test.contract.UnpackLog(event, "log_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogUintIterator is returned from FilterLogUint and is used to iterate over the raw logs and unpacked data for LogUint events raised by the Test contract. +type TestLogUintIterator struct { + Event *TestLogUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogUint represents a LogUint event raised by the Test contract. +type TestLogUint struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogUint is a free log retrieval operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_Test *TestFilterer) FilterLogUint(opts *bind.FilterOpts) (*TestLogUintIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return &TestLogUintIterator{contract: _Test.contract, event: "log_uint", logs: logs, sub: sub}, nil +} + +// WatchLogUint is a free log subscription operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_Test *TestFilterer) WatchLogUint(opts *bind.WatchOpts, sink chan<- *TestLogUint) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogUint) + if err := _Test.contract.UnpackLog(event, "log_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogUint is a log parse operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_Test *TestFilterer) ParseLogUint(log types.Log) (*TestLogUint, error) { + event := new(TestLogUint) + if err := _Test.contract.UnpackLog(event, "log_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestLogsIterator is returned from FilterLogs and is used to iterate over the raw logs and unpacked data for Logs events raised by the Test contract. +type TestLogsIterator struct { + Event *TestLogs // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestLogsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestLogsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestLogsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestLogs represents a Logs event raised by the Test contract. +type TestLogs struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogs is a free log retrieval operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_Test *TestFilterer) FilterLogs(opts *bind.FilterOpts) (*TestLogsIterator, error) { + + logs, sub, err := _Test.contract.FilterLogs(opts, "logs") + if err != nil { + return nil, err + } + return &TestLogsIterator{contract: _Test.contract, event: "logs", logs: logs, sub: sub}, nil +} + +// WatchLogs is a free log subscription operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_Test *TestFilterer) WatchLogs(opts *bind.WatchOpts, sink chan<- *TestLogs) (event.Subscription, error) { + + logs, sub, err := _Test.contract.WatchLogs(opts, "logs") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestLogs) + if err := _Test.contract.UnpackLog(event, "logs", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogs is a log parse operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_Test *TestFilterer) ParseLogs(log types.Log) (*TestLogs, error) { + event := new(TestLogs) + if err := _Test.contract.UnpackLog(event, "logs", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/testerc20.sol/testerc20.go b/v2/pkg/testerc20.sol/testerc20.go new file mode 100644 index 00000000..aa9751ba --- /dev/null +++ b/v2/pkg/testerc20.sol/testerc20.go @@ -0,0 +1,781 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package testerc20 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// TestERC20MetaData contains all meta data concerning the TestERC20 contract. +var TestERC20MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ERC20InsufficientAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InsufficientBalance\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidApprover\",\"inputs\":[{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSender\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSpender\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}]}]", + Bin: "0x608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033", +} + +// TestERC20ABI is the input ABI used to generate the binding from. +// Deprecated: Use TestERC20MetaData.ABI instead. +var TestERC20ABI = TestERC20MetaData.ABI + +// TestERC20Bin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use TestERC20MetaData.Bin instead. +var TestERC20Bin = TestERC20MetaData.Bin + +// DeployTestERC20 deploys a new Ethereum contract, binding an instance of TestERC20 to it. +func DeployTestERC20(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string) (common.Address, *types.Transaction, *TestERC20, error) { + parsed, err := TestERC20MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(TestERC20Bin), backend, name, symbol) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &TestERC20{TestERC20Caller: TestERC20Caller{contract: contract}, TestERC20Transactor: TestERC20Transactor{contract: contract}, TestERC20Filterer: TestERC20Filterer{contract: contract}}, nil +} + +// TestERC20 is an auto generated Go binding around an Ethereum contract. +type TestERC20 struct { + TestERC20Caller // Read-only binding to the contract + TestERC20Transactor // Write-only binding to the contract + TestERC20Filterer // Log filterer for contract events +} + +// TestERC20Caller is an auto generated read-only Go binding around an Ethereum contract. +type TestERC20Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestERC20Transactor is an auto generated write-only Go binding around an Ethereum contract. +type TestERC20Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type TestERC20Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestERC20Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type TestERC20Session struct { + Contract *TestERC20 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TestERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type TestERC20CallerSession struct { + Contract *TestERC20Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// TestERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type TestERC20TransactorSession struct { + Contract *TestERC20Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TestERC20Raw is an auto generated low-level Go binding around an Ethereum contract. +type TestERC20Raw struct { + Contract *TestERC20 // Generic contract binding to access the raw methods on +} + +// TestERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type TestERC20CallerRaw struct { + Contract *TestERC20Caller // Generic read-only contract binding to access the raw methods on +} + +// TestERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type TestERC20TransactorRaw struct { + Contract *TestERC20Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewTestERC20 creates a new instance of TestERC20, bound to a specific deployed contract. +func NewTestERC20(address common.Address, backend bind.ContractBackend) (*TestERC20, error) { + contract, err := bindTestERC20(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &TestERC20{TestERC20Caller: TestERC20Caller{contract: contract}, TestERC20Transactor: TestERC20Transactor{contract: contract}, TestERC20Filterer: TestERC20Filterer{contract: contract}}, nil +} + +// NewTestERC20Caller creates a new read-only instance of TestERC20, bound to a specific deployed contract. +func NewTestERC20Caller(address common.Address, caller bind.ContractCaller) (*TestERC20Caller, error) { + contract, err := bindTestERC20(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &TestERC20Caller{contract: contract}, nil +} + +// NewTestERC20Transactor creates a new write-only instance of TestERC20, bound to a specific deployed contract. +func NewTestERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*TestERC20Transactor, error) { + contract, err := bindTestERC20(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &TestERC20Transactor{contract: contract}, nil +} + +// NewTestERC20Filterer creates a new log filterer instance of TestERC20, bound to a specific deployed contract. +func NewTestERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*TestERC20Filterer, error) { + contract, err := bindTestERC20(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &TestERC20Filterer{contract: contract}, nil +} + +// bindTestERC20 binds a generic wrapper to an already deployed contract. +func bindTestERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := TestERC20MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TestERC20 *TestERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TestERC20.Contract.TestERC20Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TestERC20 *TestERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TestERC20.Contract.TestERC20Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TestERC20 *TestERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TestERC20.Contract.TestERC20Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TestERC20 *TestERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TestERC20.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TestERC20 *TestERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TestERC20.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TestERC20 *TestERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TestERC20.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_TestERC20 *TestERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _TestERC20.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_TestERC20 *TestERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _TestERC20.Contract.Allowance(&_TestERC20.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_TestERC20 *TestERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _TestERC20.Contract.Allowance(&_TestERC20.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_TestERC20 *TestERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _TestERC20.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_TestERC20 *TestERC20Session) BalanceOf(account common.Address) (*big.Int, error) { + return _TestERC20.Contract.BalanceOf(&_TestERC20.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_TestERC20 *TestERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _TestERC20.Contract.BalanceOf(&_TestERC20.CallOpts, account) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_TestERC20 *TestERC20Caller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _TestERC20.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_TestERC20 *TestERC20Session) Decimals() (uint8, error) { + return _TestERC20.Contract.Decimals(&_TestERC20.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_TestERC20 *TestERC20CallerSession) Decimals() (uint8, error) { + return _TestERC20.Contract.Decimals(&_TestERC20.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_TestERC20 *TestERC20Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _TestERC20.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_TestERC20 *TestERC20Session) Name() (string, error) { + return _TestERC20.Contract.Name(&_TestERC20.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_TestERC20 *TestERC20CallerSession) Name() (string, error) { + return _TestERC20.Contract.Name(&_TestERC20.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_TestERC20 *TestERC20Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _TestERC20.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_TestERC20 *TestERC20Session) Symbol() (string, error) { + return _TestERC20.Contract.Symbol(&_TestERC20.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_TestERC20 *TestERC20CallerSession) Symbol() (string, error) { + return _TestERC20.Contract.Symbol(&_TestERC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_TestERC20 *TestERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TestERC20.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_TestERC20 *TestERC20Session) TotalSupply() (*big.Int, error) { + return _TestERC20.Contract.TotalSupply(&_TestERC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_TestERC20 *TestERC20CallerSession) TotalSupply() (*big.Int, error) { + return _TestERC20.Contract.TotalSupply(&_TestERC20.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_TestERC20 *TestERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) { + return _TestERC20.contract.Transact(opts, "approve", spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_TestERC20 *TestERC20Session) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _TestERC20.Contract.Approve(&_TestERC20.TransactOpts, spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_TestERC20 *TestERC20TransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _TestERC20.Contract.Approve(&_TestERC20.TransactOpts, spender, value) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(address to, uint256 amount) returns() +func (_TestERC20 *TestERC20Transactor) Mint(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _TestERC20.contract.Transact(opts, "mint", to, amount) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(address to, uint256 amount) returns() +func (_TestERC20 *TestERC20Session) Mint(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _TestERC20.Contract.Mint(&_TestERC20.TransactOpts, to, amount) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(address to, uint256 amount) returns() +func (_TestERC20 *TestERC20TransactorSession) Mint(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _TestERC20.Contract.Mint(&_TestERC20.TransactOpts, to, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_TestERC20 *TestERC20Transactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) { + return _TestERC20.contract.Transact(opts, "transfer", to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_TestERC20 *TestERC20Session) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _TestERC20.Contract.Transfer(&_TestERC20.TransactOpts, to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_TestERC20 *TestERC20TransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _TestERC20.Contract.Transfer(&_TestERC20.TransactOpts, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_TestERC20 *TestERC20Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _TestERC20.contract.Transact(opts, "transferFrom", from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_TestERC20 *TestERC20Session) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _TestERC20.Contract.TransferFrom(&_TestERC20.TransactOpts, from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_TestERC20 *TestERC20TransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _TestERC20.Contract.TransferFrom(&_TestERC20.TransactOpts, from, to, value) +} + +// TestERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the TestERC20 contract. +type TestERC20ApprovalIterator struct { + Event *TestERC20Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestERC20ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestERC20ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestERC20ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestERC20Approval represents a Approval event raised by the TestERC20 contract. +type TestERC20Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_TestERC20 *TestERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*TestERC20ApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _TestERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &TestERC20ApprovalIterator{contract: _TestERC20.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_TestERC20 *TestERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *TestERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _TestERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestERC20Approval) + if err := _TestERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_TestERC20 *TestERC20Filterer) ParseApproval(log types.Log) (*TestERC20Approval, error) { + event := new(TestERC20Approval) + if err := _TestERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the TestERC20 contract. +type TestERC20TransferIterator struct { + Event *TestERC20Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestERC20TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestERC20TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestERC20TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestERC20Transfer represents a Transfer event raised by the TestERC20 contract. +type TestERC20Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_TestERC20 *TestERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*TestERC20TransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _TestERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &TestERC20TransferIterator{contract: _TestERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_TestERC20 *TestERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *TestERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _TestERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestERC20Transfer) + if err := _TestERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_TestERC20 *TestERC20Filterer) ParseTransfer(log types.Log) (*TestERC20Transfer, error) { + event := new(TestERC20Transfer) + if err := _TestERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/testzcontract.sol/testzcontract.go b/v2/pkg/testzcontract.sol/testzcontract.go new file mode 100644 index 00000000..81bfb866 --- /dev/null +++ b/v2/pkg/testzcontract.sol/testzcontract.go @@ -0,0 +1,577 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package testzcontract + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// RevertContext is an auto generated low-level Go binding around an user-defined struct. +type RevertContext struct { + Origin []byte + Sender common.Address + ChainID *big.Int +} + +// ZContext is an auto generated low-level Go binding around an user-defined struct. +type ZContext struct { + Origin []byte + Sender common.Address + ChainID *big.Int +} + +// TestZContractMetaData contains all meta data concerning the TestZContract contract. +var TestZContractMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"onCrossChainCall\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structzContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onRevert\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structrevertContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ContextData\",\"inputs\":[{\"name\":\"origin\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"msgSender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ContextDataRevert\",\"inputs\":[{\"name\":\"origin\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"msgSender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false}]", + Bin: "0x6080604052348015600f57600080fd5b506105208061001f6000396000f3fe60806040526004361061002a5760003560e01c806369582bee14610033578063de43156e1461005357005b3661003157005b005b34801561003f57600080fd5b5061003161004e3660046101ba565b610073565b34801561005f57600080fd5b5061003161006e3660046101ba565b6100ee565b6060811561008a5761008782840184610273565b90505b7ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999486100b58780610369565b6100c560408a0160208b016103ce565b896040013533866040516100de969594939291906103f0565b60405180910390a1505050505050565b606081156101055761010282840184610273565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e6100b58780610369565b60006060828403121561014257600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461016c57600080fd5b919050565b60008083601f84011261018357600080fd5b50813567ffffffffffffffff81111561019b57600080fd5b6020830191508360208285010111156101b357600080fd5b9250929050565b6000806000806000608086880312156101d257600080fd5b853567ffffffffffffffff8111156101e957600080fd5b6101f588828901610130565b95505061020460208701610148565b935060408601359250606086013567ffffffffffffffff81111561022757600080fd5b61023388828901610171565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561028557600080fd5b813567ffffffffffffffff81111561029c57600080fd5b8201601f810184136102ad57600080fd5b803567ffffffffffffffff8111156102c7576102c7610244565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561033357610333610244565b60405281815282820160200186101561034b57600080fd5b81602084016020830137600091810160200191909152949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261039e57600080fd5b83018035915067ffffffffffffffff8211156103b957600080fd5b6020019150368190038213156101b357600080fd5b6000602082840312156103e057600080fd5b6103e982610148565b9392505050565b60a081528560a0820152858760c0830137600060c0878301015260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f880116820173ffffffffffffffffffffffffffffffffffffffff8716602084015285604084015273ffffffffffffffffffffffffffffffffffffffff8516606084015260c083820301608084015283518060c083015260005b818110156104a557602081870181015184830160e0015201610488565b50600060e0838301810191909152601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101019897505050505050505056fea2646970667358221220f4d1ccb9c8450e782e1c77412473fd37637a5c83a2a3272307d8c8bc8e8c7a3364736f6c634300081a0033", +} + +// TestZContractABI is the input ABI used to generate the binding from. +// Deprecated: Use TestZContractMetaData.ABI instead. +var TestZContractABI = TestZContractMetaData.ABI + +// TestZContractBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use TestZContractMetaData.Bin instead. +var TestZContractBin = TestZContractMetaData.Bin + +// DeployTestZContract deploys a new Ethereum contract, binding an instance of TestZContract to it. +func DeployTestZContract(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *TestZContract, error) { + parsed, err := TestZContractMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(TestZContractBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &TestZContract{TestZContractCaller: TestZContractCaller{contract: contract}, TestZContractTransactor: TestZContractTransactor{contract: contract}, TestZContractFilterer: TestZContractFilterer{contract: contract}}, nil +} + +// TestZContract is an auto generated Go binding around an Ethereum contract. +type TestZContract struct { + TestZContractCaller // Read-only binding to the contract + TestZContractTransactor // Write-only binding to the contract + TestZContractFilterer // Log filterer for contract events +} + +// TestZContractCaller is an auto generated read-only Go binding around an Ethereum contract. +type TestZContractCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestZContractTransactor is an auto generated write-only Go binding around an Ethereum contract. +type TestZContractTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestZContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type TestZContractFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestZContractSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type TestZContractSession struct { + Contract *TestZContract // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TestZContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type TestZContractCallerSession struct { + Contract *TestZContractCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// TestZContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type TestZContractTransactorSession struct { + Contract *TestZContractTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TestZContractRaw is an auto generated low-level Go binding around an Ethereum contract. +type TestZContractRaw struct { + Contract *TestZContract // Generic contract binding to access the raw methods on +} + +// TestZContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type TestZContractCallerRaw struct { + Contract *TestZContractCaller // Generic read-only contract binding to access the raw methods on +} + +// TestZContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type TestZContractTransactorRaw struct { + Contract *TestZContractTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewTestZContract creates a new instance of TestZContract, bound to a specific deployed contract. +func NewTestZContract(address common.Address, backend bind.ContractBackend) (*TestZContract, error) { + contract, err := bindTestZContract(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &TestZContract{TestZContractCaller: TestZContractCaller{contract: contract}, TestZContractTransactor: TestZContractTransactor{contract: contract}, TestZContractFilterer: TestZContractFilterer{contract: contract}}, nil +} + +// NewTestZContractCaller creates a new read-only instance of TestZContract, bound to a specific deployed contract. +func NewTestZContractCaller(address common.Address, caller bind.ContractCaller) (*TestZContractCaller, error) { + contract, err := bindTestZContract(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &TestZContractCaller{contract: contract}, nil +} + +// NewTestZContractTransactor creates a new write-only instance of TestZContract, bound to a specific deployed contract. +func NewTestZContractTransactor(address common.Address, transactor bind.ContractTransactor) (*TestZContractTransactor, error) { + contract, err := bindTestZContract(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &TestZContractTransactor{contract: contract}, nil +} + +// NewTestZContractFilterer creates a new log filterer instance of TestZContract, bound to a specific deployed contract. +func NewTestZContractFilterer(address common.Address, filterer bind.ContractFilterer) (*TestZContractFilterer, error) { + contract, err := bindTestZContract(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &TestZContractFilterer{contract: contract}, nil +} + +// bindTestZContract binds a generic wrapper to an already deployed contract. +func bindTestZContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := TestZContractMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TestZContract *TestZContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TestZContract.Contract.TestZContractCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TestZContract *TestZContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TestZContract.Contract.TestZContractTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TestZContract *TestZContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TestZContract.Contract.TestZContractTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TestZContract *TestZContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TestZContract.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TestZContract *TestZContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TestZContract.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TestZContract *TestZContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TestZContract.Contract.contract.Transact(opts, method, params...) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0xde43156e. +// +// Solidity: function onCrossChainCall((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_TestZContract *TestZContractTransactor) OnCrossChainCall(opts *bind.TransactOpts, context ZContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _TestZContract.contract.Transact(opts, "onCrossChainCall", context, zrc20, amount, message) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0xde43156e. +// +// Solidity: function onCrossChainCall((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_TestZContract *TestZContractSession) OnCrossChainCall(context ZContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _TestZContract.Contract.OnCrossChainCall(&_TestZContract.TransactOpts, context, zrc20, amount, message) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0xde43156e. +// +// Solidity: function onCrossChainCall((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_TestZContract *TestZContractTransactorSession) OnCrossChainCall(context ZContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _TestZContract.Contract.OnCrossChainCall(&_TestZContract.TransactOpts, context, zrc20, amount, message) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x69582bee. +// +// Solidity: function onRevert((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_TestZContract *TestZContractTransactor) OnRevert(opts *bind.TransactOpts, context RevertContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _TestZContract.contract.Transact(opts, "onRevert", context, zrc20, amount, message) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x69582bee. +// +// Solidity: function onRevert((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_TestZContract *TestZContractSession) OnRevert(context RevertContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _TestZContract.Contract.OnRevert(&_TestZContract.TransactOpts, context, zrc20, amount, message) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x69582bee. +// +// Solidity: function onRevert((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_TestZContract *TestZContractTransactorSession) OnRevert(context RevertContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _TestZContract.Contract.OnRevert(&_TestZContract.TransactOpts, context, zrc20, amount, message) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_TestZContract *TestZContractTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _TestZContract.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_TestZContract *TestZContractSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _TestZContract.Contract.Fallback(&_TestZContract.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_TestZContract *TestZContractTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _TestZContract.Contract.Fallback(&_TestZContract.TransactOpts, calldata) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_TestZContract *TestZContractTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TestZContract.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_TestZContract *TestZContractSession) Receive() (*types.Transaction, error) { + return _TestZContract.Contract.Receive(&_TestZContract.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_TestZContract *TestZContractTransactorSession) Receive() (*types.Transaction, error) { + return _TestZContract.Contract.Receive(&_TestZContract.TransactOpts) +} + +// TestZContractContextDataIterator is returned from FilterContextData and is used to iterate over the raw logs and unpacked data for ContextData events raised by the TestZContract contract. +type TestZContractContextDataIterator struct { + Event *TestZContractContextData // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestZContractContextDataIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestZContractContextData) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestZContractContextData) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestZContractContextDataIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestZContractContextDataIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestZContractContextData represents a ContextData event raised by the TestZContract contract. +type TestZContractContextData struct { + Origin []byte + Sender common.Address + ChainID *big.Int + MsgSender common.Address + Message string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterContextData is a free log retrieval operation binding the contract event 0xcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e. +// +// Solidity: event ContextData(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_TestZContract *TestZContractFilterer) FilterContextData(opts *bind.FilterOpts) (*TestZContractContextDataIterator, error) { + + logs, sub, err := _TestZContract.contract.FilterLogs(opts, "ContextData") + if err != nil { + return nil, err + } + return &TestZContractContextDataIterator{contract: _TestZContract.contract, event: "ContextData", logs: logs, sub: sub}, nil +} + +// WatchContextData is a free log subscription operation binding the contract event 0xcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e. +// +// Solidity: event ContextData(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_TestZContract *TestZContractFilterer) WatchContextData(opts *bind.WatchOpts, sink chan<- *TestZContractContextData) (event.Subscription, error) { + + logs, sub, err := _TestZContract.contract.WatchLogs(opts, "ContextData") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestZContractContextData) + if err := _TestZContract.contract.UnpackLog(event, "ContextData", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseContextData is a log parse operation binding the contract event 0xcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e. +// +// Solidity: event ContextData(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_TestZContract *TestZContractFilterer) ParseContextData(log types.Log) (*TestZContractContextData, error) { + event := new(TestZContractContextData) + if err := _TestZContract.contract.UnpackLog(event, "ContextData", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestZContractContextDataRevertIterator is returned from FilterContextDataRevert and is used to iterate over the raw logs and unpacked data for ContextDataRevert events raised by the TestZContract contract. +type TestZContractContextDataRevertIterator struct { + Event *TestZContractContextDataRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestZContractContextDataRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestZContractContextDataRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestZContractContextDataRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestZContractContextDataRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestZContractContextDataRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestZContractContextDataRevert represents a ContextDataRevert event raised by the TestZContract contract. +type TestZContractContextDataRevert struct { + Origin []byte + Sender common.Address + ChainID *big.Int + MsgSender common.Address + Message string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterContextDataRevert is a free log retrieval operation binding the contract event 0xfdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e99948. +// +// Solidity: event ContextDataRevert(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_TestZContract *TestZContractFilterer) FilterContextDataRevert(opts *bind.FilterOpts) (*TestZContractContextDataRevertIterator, error) { + + logs, sub, err := _TestZContract.contract.FilterLogs(opts, "ContextDataRevert") + if err != nil { + return nil, err + } + return &TestZContractContextDataRevertIterator{contract: _TestZContract.contract, event: "ContextDataRevert", logs: logs, sub: sub}, nil +} + +// WatchContextDataRevert is a free log subscription operation binding the contract event 0xfdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e99948. +// +// Solidity: event ContextDataRevert(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_TestZContract *TestZContractFilterer) WatchContextDataRevert(opts *bind.WatchOpts, sink chan<- *TestZContractContextDataRevert) (event.Subscription, error) { + + logs, sub, err := _TestZContract.contract.WatchLogs(opts, "ContextDataRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestZContractContextDataRevert) + if err := _TestZContract.contract.UnpackLog(event, "ContextDataRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseContextDataRevert is a log parse operation binding the contract event 0xfdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e99948. +// +// Solidity: event ContextDataRevert(bytes origin, address sender, uint256 chainID, address msgSender, string message) +func (_TestZContract *TestZContractFilterer) ParseContextDataRevert(log types.Log) (*TestZContractContextDataRevert, error) { + event := new(TestZContractContextDataRevert) + if err := _TestZContract.contract.UnpackLog(event, "ContextDataRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/transparentupgradeableproxy.sol/itransparentupgradeableproxy.go b/v2/pkg/transparentupgradeableproxy.sol/itransparentupgradeableproxy.go new file mode 100644 index 00000000..2ab286f2 --- /dev/null +++ b/v2/pkg/transparentupgradeableproxy.sol/itransparentupgradeableproxy.go @@ -0,0 +1,625 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package transparentupgradeableproxy + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ITransparentUpgradeableProxyMetaData contains all meta data concerning the ITransparentUpgradeableProxy contract. +var ITransparentUpgradeableProxyMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"upgradeToAndCall\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"AdminChanged\",\"inputs\":[{\"name\":\"previousAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BeaconUpgraded\",\"inputs\":[{\"name\":\"beacon\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false}]", +} + +// ITransparentUpgradeableProxyABI is the input ABI used to generate the binding from. +// Deprecated: Use ITransparentUpgradeableProxyMetaData.ABI instead. +var ITransparentUpgradeableProxyABI = ITransparentUpgradeableProxyMetaData.ABI + +// ITransparentUpgradeableProxy is an auto generated Go binding around an Ethereum contract. +type ITransparentUpgradeableProxy struct { + ITransparentUpgradeableProxyCaller // Read-only binding to the contract + ITransparentUpgradeableProxyTransactor // Write-only binding to the contract + ITransparentUpgradeableProxyFilterer // Log filterer for contract events +} + +// ITransparentUpgradeableProxyCaller is an auto generated read-only Go binding around an Ethereum contract. +type ITransparentUpgradeableProxyCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ITransparentUpgradeableProxyTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ITransparentUpgradeableProxyTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ITransparentUpgradeableProxyFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ITransparentUpgradeableProxyFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ITransparentUpgradeableProxySession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ITransparentUpgradeableProxySession struct { + Contract *ITransparentUpgradeableProxy // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ITransparentUpgradeableProxyCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ITransparentUpgradeableProxyCallerSession struct { + Contract *ITransparentUpgradeableProxyCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ITransparentUpgradeableProxyTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ITransparentUpgradeableProxyTransactorSession struct { + Contract *ITransparentUpgradeableProxyTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ITransparentUpgradeableProxyRaw is an auto generated low-level Go binding around an Ethereum contract. +type ITransparentUpgradeableProxyRaw struct { + Contract *ITransparentUpgradeableProxy // Generic contract binding to access the raw methods on +} + +// ITransparentUpgradeableProxyCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ITransparentUpgradeableProxyCallerRaw struct { + Contract *ITransparentUpgradeableProxyCaller // Generic read-only contract binding to access the raw methods on +} + +// ITransparentUpgradeableProxyTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ITransparentUpgradeableProxyTransactorRaw struct { + Contract *ITransparentUpgradeableProxyTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewITransparentUpgradeableProxy creates a new instance of ITransparentUpgradeableProxy, bound to a specific deployed contract. +func NewITransparentUpgradeableProxy(address common.Address, backend bind.ContractBackend) (*ITransparentUpgradeableProxy, error) { + contract, err := bindITransparentUpgradeableProxy(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ITransparentUpgradeableProxy{ITransparentUpgradeableProxyCaller: ITransparentUpgradeableProxyCaller{contract: contract}, ITransparentUpgradeableProxyTransactor: ITransparentUpgradeableProxyTransactor{contract: contract}, ITransparentUpgradeableProxyFilterer: ITransparentUpgradeableProxyFilterer{contract: contract}}, nil +} + +// NewITransparentUpgradeableProxyCaller creates a new read-only instance of ITransparentUpgradeableProxy, bound to a specific deployed contract. +func NewITransparentUpgradeableProxyCaller(address common.Address, caller bind.ContractCaller) (*ITransparentUpgradeableProxyCaller, error) { + contract, err := bindITransparentUpgradeableProxy(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ITransparentUpgradeableProxyCaller{contract: contract}, nil +} + +// NewITransparentUpgradeableProxyTransactor creates a new write-only instance of ITransparentUpgradeableProxy, bound to a specific deployed contract. +func NewITransparentUpgradeableProxyTransactor(address common.Address, transactor bind.ContractTransactor) (*ITransparentUpgradeableProxyTransactor, error) { + contract, err := bindITransparentUpgradeableProxy(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ITransparentUpgradeableProxyTransactor{contract: contract}, nil +} + +// NewITransparentUpgradeableProxyFilterer creates a new log filterer instance of ITransparentUpgradeableProxy, bound to a specific deployed contract. +func NewITransparentUpgradeableProxyFilterer(address common.Address, filterer bind.ContractFilterer) (*ITransparentUpgradeableProxyFilterer, error) { + contract, err := bindITransparentUpgradeableProxy(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ITransparentUpgradeableProxyFilterer{contract: contract}, nil +} + +// bindITransparentUpgradeableProxy binds a generic wrapper to an already deployed contract. +func bindITransparentUpgradeableProxy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ITransparentUpgradeableProxyMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ITransparentUpgradeableProxy.Contract.ITransparentUpgradeableProxyCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ITransparentUpgradeableProxy.Contract.ITransparentUpgradeableProxyTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ITransparentUpgradeableProxy.Contract.ITransparentUpgradeableProxyTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ITransparentUpgradeableProxy.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ITransparentUpgradeableProxy.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ITransparentUpgradeableProxy.Contract.contract.Transact(opts, method, params...) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address , bytes ) payable returns() +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyTransactor) UpgradeToAndCall(opts *bind.TransactOpts, arg0 common.Address, arg1 []byte) (*types.Transaction, error) { + return _ITransparentUpgradeableProxy.contract.Transact(opts, "upgradeToAndCall", arg0, arg1) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address , bytes ) payable returns() +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxySession) UpgradeToAndCall(arg0 common.Address, arg1 []byte) (*types.Transaction, error) { + return _ITransparentUpgradeableProxy.Contract.UpgradeToAndCall(&_ITransparentUpgradeableProxy.TransactOpts, arg0, arg1) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address , bytes ) payable returns() +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyTransactorSession) UpgradeToAndCall(arg0 common.Address, arg1 []byte) (*types.Transaction, error) { + return _ITransparentUpgradeableProxy.Contract.UpgradeToAndCall(&_ITransparentUpgradeableProxy.TransactOpts, arg0, arg1) +} + +// ITransparentUpgradeableProxyAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the ITransparentUpgradeableProxy contract. +type ITransparentUpgradeableProxyAdminChangedIterator struct { + Event *ITransparentUpgradeableProxyAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ITransparentUpgradeableProxyAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ITransparentUpgradeableProxyAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ITransparentUpgradeableProxyAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ITransparentUpgradeableProxyAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ITransparentUpgradeableProxyAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ITransparentUpgradeableProxyAdminChanged represents a AdminChanged event raised by the ITransparentUpgradeableProxy contract. +type ITransparentUpgradeableProxyAdminChanged struct { + PreviousAdmin common.Address + NewAdmin common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*ITransparentUpgradeableProxyAdminChangedIterator, error) { + + logs, sub, err := _ITransparentUpgradeableProxy.contract.FilterLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return &ITransparentUpgradeableProxyAdminChangedIterator{contract: _ITransparentUpgradeableProxy.contract, event: "AdminChanged", logs: logs, sub: sub}, nil +} + +// WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *ITransparentUpgradeableProxyAdminChanged) (event.Subscription, error) { + + logs, sub, err := _ITransparentUpgradeableProxy.contract.WatchLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ITransparentUpgradeableProxyAdminChanged) + if err := _ITransparentUpgradeableProxy.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyFilterer) ParseAdminChanged(log types.Log) (*ITransparentUpgradeableProxyAdminChanged, error) { + event := new(ITransparentUpgradeableProxyAdminChanged) + if err := _ITransparentUpgradeableProxy.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ITransparentUpgradeableProxyBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the ITransparentUpgradeableProxy contract. +type ITransparentUpgradeableProxyBeaconUpgradedIterator struct { + Event *ITransparentUpgradeableProxyBeaconUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ITransparentUpgradeableProxyBeaconUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ITransparentUpgradeableProxyBeaconUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ITransparentUpgradeableProxyBeaconUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ITransparentUpgradeableProxyBeaconUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ITransparentUpgradeableProxyBeaconUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ITransparentUpgradeableProxyBeaconUpgraded represents a BeaconUpgraded event raised by the ITransparentUpgradeableProxy contract. +type ITransparentUpgradeableProxyBeaconUpgraded struct { + Beacon common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*ITransparentUpgradeableProxyBeaconUpgradedIterator, error) { + + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _ITransparentUpgradeableProxy.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) + if err != nil { + return nil, err + } + return &ITransparentUpgradeableProxyBeaconUpgradedIterator{contract: _ITransparentUpgradeableProxy.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil +} + +// WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *ITransparentUpgradeableProxyBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { + + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _ITransparentUpgradeableProxy.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ITransparentUpgradeableProxyBeaconUpgraded) + if err := _ITransparentUpgradeableProxy.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyFilterer) ParseBeaconUpgraded(log types.Log) (*ITransparentUpgradeableProxyBeaconUpgraded, error) { + event := new(ITransparentUpgradeableProxyBeaconUpgraded) + if err := _ITransparentUpgradeableProxy.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ITransparentUpgradeableProxyUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the ITransparentUpgradeableProxy contract. +type ITransparentUpgradeableProxyUpgradedIterator struct { + Event *ITransparentUpgradeableProxyUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ITransparentUpgradeableProxyUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ITransparentUpgradeableProxyUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ITransparentUpgradeableProxyUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ITransparentUpgradeableProxyUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ITransparentUpgradeableProxyUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ITransparentUpgradeableProxyUpgraded represents a Upgraded event raised by the ITransparentUpgradeableProxy contract. +type ITransparentUpgradeableProxyUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*ITransparentUpgradeableProxyUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _ITransparentUpgradeableProxy.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &ITransparentUpgradeableProxyUpgradedIterator{contract: _ITransparentUpgradeableProxy.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *ITransparentUpgradeableProxyUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _ITransparentUpgradeableProxy.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ITransparentUpgradeableProxyUpgraded) + if err := _ITransparentUpgradeableProxy.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_ITransparentUpgradeableProxy *ITransparentUpgradeableProxyFilterer) ParseUpgraded(log types.Log) (*ITransparentUpgradeableProxyUpgraded, error) { + event := new(ITransparentUpgradeableProxyUpgraded) + if err := _ITransparentUpgradeableProxy.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/transparentupgradeableproxy.sol/transparentupgradeableproxy.go b/v2/pkg/transparentupgradeableproxy.sol/transparentupgradeableproxy.go new file mode 100644 index 00000000..8daf55df --- /dev/null +++ b/v2/pkg/transparentupgradeableproxy.sol/transparentupgradeableproxy.go @@ -0,0 +1,503 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package transparentupgradeableproxy + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// TransparentUpgradeableProxyMetaData contains all meta data concerning the TransparentUpgradeableProxy contract. +var TransparentUpgradeableProxyMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_logic\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"payable\"},{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"AdminChanged\",\"inputs\":[{\"name\":\"previousAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967InvalidAdmin\",\"inputs\":[{\"name\":\"admin\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967InvalidImplementation\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967NonPayable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ProxyDeniedAdminAccess\",\"inputs\":[]}]", + Bin: "0x60a060405260405161117a38038061117a8339810160408190526100229161039d565b828161002e828261008f565b50508160405161003d9061033a565b6001600160a01b039091168152602001604051809103906000f080158015610069573d6000803e3d6000fd5b506001600160a01b031660805261008761008260805190565b6100ee565b50505061048f565b6100988261015c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100e2576100dd82826101db565b505050565b6100ea610252565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012e60008051602061115a833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015981610273565b50565b806001600160a01b03163b60000361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101f89190610473565b600060405180830381855af49150503d8060008114610233576040519150601f19603f3d011682016040523d82523d6000602084013e610238565b606091505b5090925090506102498583836102b2565b95945050505050565b34156102715760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029d57604051633173bdd160e11b81526000600482015260240161018e565b8060008051602061115a8339815191526101ba565b6060826102c7576102c282610311565b61030a565b81511580156102de57506001600160a01b0384163b155b1561030757604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b8051156103215780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b61068480610ad683390190565b80516001600160a01b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561039457818101518382015260200161037c565b50506000910152565b6000806000606084860312156103b257600080fd5b6103bb84610347565b92506103c960208501610347565b60408501519092506001600160401b038111156103e557600080fd5b8401601f810186136103f657600080fd5b80516001600160401b0381111561040f5761040f610363565b604051601f8201601f19908116603f011681016001600160401b038111828210171561043d5761043d610363565b60405281815282820160200188101561045557600080fd5b610466826020830160208601610379565b8093505050509250925092565b60008251610485818460208701610379565b9190910192915050565b60805161062d6104a960003960006010015261062d6000f3fe608060405261000c61000e565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036100d2576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100c8576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100d06100da565b565b6100d0610109565b6000806100ea366004818461044d565b8101906100f791906104a6565b915091506101058282610119565b5050565b6100d0610114610181565b6101c6565b610122826101ea565b60405173ffffffffffffffffffffffffffffffffffffffff8316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101795761017482826102be565b505050565b610105610341565b60006101c17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156101e5573d6000f35b3d6000fd5b8073ffffffffffffffffffffffffffffffffffffffff163b600003610258576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102e891906105c8565b600060405180830381855af49150503d8060008114610323576040519150601f19603f3d011682016040523d82523d6000602084013e610328565b606091505b5091509150610338858383610379565b95945050505050565b34156100d0576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608261038e576103898261040b565b610404565b81511580156103b2575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610401576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161024f565b50805b9392505050565b80511561041b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808585111561045d57600080fd5b8386111561046a57600080fd5b5050820193919092039150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156104b957600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146104dd57600080fd5b9150602083013567ffffffffffffffff8111156104f957600080fd5b8301601f8101851361050a57600080fd5b803567ffffffffffffffff81111561052457610524610477565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561059057610590610477565b6040528181528282016020018710156105a857600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000825160005b818110156105e957602081860181015185830152016105cf565b50600092019182525091905056fea2646970667358221220fd77e8da75db1db8869da9f85c4ad64fb3db9f30cb52edf1c23c9afbda1e8dc664736f6c634300081a0033608060405234801561001057600080fd5b5060405161068438038061068483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610587806100fd6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100b0578063ad3cb1cc146100c3578063f2fde38b1461011957600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b50610074610139565b005b34801561008257600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100746100be366004610364565b61014d565b3480156100cf57600080fd5b5061010c6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a791906104e3565b34801561012557600080fd5b506100746101343660046104fd565b6101e2565b61014161024b565b61014b600061029e565b565b61015561024b565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef2869034906101ab908690869060040161051a565b6000604051808303818588803b1580156101c457600080fd5b505af11580156101d8573d6000803e3d6000fd5b5050505050505050565b6101ea61024b565b73ffffffffffffffffffffffffffffffffffffffff811661023f576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6102488161029e565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461014b576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610236565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff8116811461024857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561037957600080fd5b833561038481610313565b9250602084013561039481610313565b9150604084013567ffffffffffffffff8111156103b057600080fd5b8401601f810186136103c157600080fd5b803567ffffffffffffffff8111156103db576103db610335565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561044757610447610335565b60405281815282820160200188101561045f57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b818110156104a557602081850181015186830182015201610489565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006104f6602083018461047f565b9392505050565b60006020828403121561050f57600080fd5b81356104f681610313565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000610549604083018461047f565b94935050505056fea2646970667358221220b68ea0eca96d97adca0a037e1efb26b5d3e690e9fbc1913bb4a08e597cfc70f164736f6c634300081a0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", +} + +// TransparentUpgradeableProxyABI is the input ABI used to generate the binding from. +// Deprecated: Use TransparentUpgradeableProxyMetaData.ABI instead. +var TransparentUpgradeableProxyABI = TransparentUpgradeableProxyMetaData.ABI + +// TransparentUpgradeableProxyBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use TransparentUpgradeableProxyMetaData.Bin instead. +var TransparentUpgradeableProxyBin = TransparentUpgradeableProxyMetaData.Bin + +// DeployTransparentUpgradeableProxy deploys a new Ethereum contract, binding an instance of TransparentUpgradeableProxy to it. +func DeployTransparentUpgradeableProxy(auth *bind.TransactOpts, backend bind.ContractBackend, _logic common.Address, initialOwner common.Address, _data []byte) (common.Address, *types.Transaction, *TransparentUpgradeableProxy, error) { + parsed, err := TransparentUpgradeableProxyMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(TransparentUpgradeableProxyBin), backend, _logic, initialOwner, _data) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &TransparentUpgradeableProxy{TransparentUpgradeableProxyCaller: TransparentUpgradeableProxyCaller{contract: contract}, TransparentUpgradeableProxyTransactor: TransparentUpgradeableProxyTransactor{contract: contract}, TransparentUpgradeableProxyFilterer: TransparentUpgradeableProxyFilterer{contract: contract}}, nil +} + +// TransparentUpgradeableProxy is an auto generated Go binding around an Ethereum contract. +type TransparentUpgradeableProxy struct { + TransparentUpgradeableProxyCaller // Read-only binding to the contract + TransparentUpgradeableProxyTransactor // Write-only binding to the contract + TransparentUpgradeableProxyFilterer // Log filterer for contract events +} + +// TransparentUpgradeableProxyCaller is an auto generated read-only Go binding around an Ethereum contract. +type TransparentUpgradeableProxyCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TransparentUpgradeableProxyTransactor is an auto generated write-only Go binding around an Ethereum contract. +type TransparentUpgradeableProxyTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TransparentUpgradeableProxyFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type TransparentUpgradeableProxyFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TransparentUpgradeableProxySession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type TransparentUpgradeableProxySession struct { + Contract *TransparentUpgradeableProxy // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TransparentUpgradeableProxyCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type TransparentUpgradeableProxyCallerSession struct { + Contract *TransparentUpgradeableProxyCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// TransparentUpgradeableProxyTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type TransparentUpgradeableProxyTransactorSession struct { + Contract *TransparentUpgradeableProxyTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TransparentUpgradeableProxyRaw is an auto generated low-level Go binding around an Ethereum contract. +type TransparentUpgradeableProxyRaw struct { + Contract *TransparentUpgradeableProxy // Generic contract binding to access the raw methods on +} + +// TransparentUpgradeableProxyCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type TransparentUpgradeableProxyCallerRaw struct { + Contract *TransparentUpgradeableProxyCaller // Generic read-only contract binding to access the raw methods on +} + +// TransparentUpgradeableProxyTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type TransparentUpgradeableProxyTransactorRaw struct { + Contract *TransparentUpgradeableProxyTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewTransparentUpgradeableProxy creates a new instance of TransparentUpgradeableProxy, bound to a specific deployed contract. +func NewTransparentUpgradeableProxy(address common.Address, backend bind.ContractBackend) (*TransparentUpgradeableProxy, error) { + contract, err := bindTransparentUpgradeableProxy(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &TransparentUpgradeableProxy{TransparentUpgradeableProxyCaller: TransparentUpgradeableProxyCaller{contract: contract}, TransparentUpgradeableProxyTransactor: TransparentUpgradeableProxyTransactor{contract: contract}, TransparentUpgradeableProxyFilterer: TransparentUpgradeableProxyFilterer{contract: contract}}, nil +} + +// NewTransparentUpgradeableProxyCaller creates a new read-only instance of TransparentUpgradeableProxy, bound to a specific deployed contract. +func NewTransparentUpgradeableProxyCaller(address common.Address, caller bind.ContractCaller) (*TransparentUpgradeableProxyCaller, error) { + contract, err := bindTransparentUpgradeableProxy(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &TransparentUpgradeableProxyCaller{contract: contract}, nil +} + +// NewTransparentUpgradeableProxyTransactor creates a new write-only instance of TransparentUpgradeableProxy, bound to a specific deployed contract. +func NewTransparentUpgradeableProxyTransactor(address common.Address, transactor bind.ContractTransactor) (*TransparentUpgradeableProxyTransactor, error) { + contract, err := bindTransparentUpgradeableProxy(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &TransparentUpgradeableProxyTransactor{contract: contract}, nil +} + +// NewTransparentUpgradeableProxyFilterer creates a new log filterer instance of TransparentUpgradeableProxy, bound to a specific deployed contract. +func NewTransparentUpgradeableProxyFilterer(address common.Address, filterer bind.ContractFilterer) (*TransparentUpgradeableProxyFilterer, error) { + contract, err := bindTransparentUpgradeableProxy(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &TransparentUpgradeableProxyFilterer{contract: contract}, nil +} + +// bindTransparentUpgradeableProxy binds a generic wrapper to an already deployed contract. +func bindTransparentUpgradeableProxy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := TransparentUpgradeableProxyMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TransparentUpgradeableProxy.Contract.TransparentUpgradeableProxyCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TransparentUpgradeableProxy.Contract.TransparentUpgradeableProxyTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TransparentUpgradeableProxy.Contract.TransparentUpgradeableProxyTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TransparentUpgradeableProxy.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TransparentUpgradeableProxy.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TransparentUpgradeableProxy.Contract.contract.Transact(opts, method, params...) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _TransparentUpgradeableProxy.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxySession) Fallback(calldata []byte) (*types.Transaction, error) { + return _TransparentUpgradeableProxy.Contract.Fallback(&_TransparentUpgradeableProxy.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _TransparentUpgradeableProxy.Contract.Fallback(&_TransparentUpgradeableProxy.TransactOpts, calldata) +} + +// TransparentUpgradeableProxyAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the TransparentUpgradeableProxy contract. +type TransparentUpgradeableProxyAdminChangedIterator struct { + Event *TransparentUpgradeableProxyAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TransparentUpgradeableProxyAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TransparentUpgradeableProxyAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TransparentUpgradeableProxyAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TransparentUpgradeableProxyAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TransparentUpgradeableProxyAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TransparentUpgradeableProxyAdminChanged represents a AdminChanged event raised by the TransparentUpgradeableProxy contract. +type TransparentUpgradeableProxyAdminChanged struct { + PreviousAdmin common.Address + NewAdmin common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*TransparentUpgradeableProxyAdminChangedIterator, error) { + + logs, sub, err := _TransparentUpgradeableProxy.contract.FilterLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return &TransparentUpgradeableProxyAdminChangedIterator{contract: _TransparentUpgradeableProxy.contract, event: "AdminChanged", logs: logs, sub: sub}, nil +} + +// WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *TransparentUpgradeableProxyAdminChanged) (event.Subscription, error) { + + logs, sub, err := _TransparentUpgradeableProxy.contract.WatchLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TransparentUpgradeableProxyAdminChanged) + if err := _TransparentUpgradeableProxy.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyFilterer) ParseAdminChanged(log types.Log) (*TransparentUpgradeableProxyAdminChanged, error) { + event := new(TransparentUpgradeableProxyAdminChanged) + if err := _TransparentUpgradeableProxy.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TransparentUpgradeableProxyUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the TransparentUpgradeableProxy contract. +type TransparentUpgradeableProxyUpgradedIterator struct { + Event *TransparentUpgradeableProxyUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TransparentUpgradeableProxyUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TransparentUpgradeableProxyUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TransparentUpgradeableProxyUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TransparentUpgradeableProxyUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TransparentUpgradeableProxyUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TransparentUpgradeableProxyUpgraded represents a Upgraded event raised by the TransparentUpgradeableProxy contract. +type TransparentUpgradeableProxyUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*TransparentUpgradeableProxyUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _TransparentUpgradeableProxy.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &TransparentUpgradeableProxyUpgradedIterator{contract: _TransparentUpgradeableProxy.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *TransparentUpgradeableProxyUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _TransparentUpgradeableProxy.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TransparentUpgradeableProxyUpgraded) + if err := _TransparentUpgradeableProxy.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_TransparentUpgradeableProxy *TransparentUpgradeableProxyFilterer) ParseUpgraded(log types.Log) (*TransparentUpgradeableProxyUpgraded, error) { + event := new(TransparentUpgradeableProxyUpgraded) + if err := _TransparentUpgradeableProxy.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/upgradeablebeacon.sol/upgradeablebeacon.go b/v2/pkg/upgradeablebeacon.sol/upgradeablebeacon.go new file mode 100644 index 00000000..84321070 --- /dev/null +++ b/v2/pkg/upgradeablebeacon.sol/upgradeablebeacon.go @@ -0,0 +1,625 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package upgradeablebeacon + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// UpgradeableBeaconMetaData contains all meta data concerning the UpgradeableBeacon contract. +var UpgradeableBeaconMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"implementation_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"implementation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgradeTo\",\"inputs\":[{\"name\":\"newImplementation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BeaconInvalidImplementation\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]}]", + Bin: "0x608060405234801561001057600080fd5b5060405161054538038061054583398101604081905261002f91610165565b806001600160a01b03811661005f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61006881610079565b50610072826100c9565b5050610198565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b6000036100ff5760405163211eb15960e21b81526001600160a01b0382166004820152602401610056565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b80516001600160a01b038116811461016057600080fd5b919050565b6000806040838503121561017857600080fd5b61018183610149565b915061018f60208401610149565b90509250929050565b61039e806101a76000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063715018a611610050578063715018a6146100c45780638da5cb5b146100cc578063f2fde38b146100ea57600080fd5b80633659cfe61461006c5780635c60da1b14610081575b600080fd5b61007f61007a36600461032b565b6100fd565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f610111565b60005473ffffffffffffffffffffffffffffffffffffffff1661009b565b61007f6100f836600461032b565b610125565b61010561018b565b61010e816101de565b50565b61011961018b565b61012360006102b6565b565b61012d61018b565b73ffffffffffffffffffffffffffffffffffffffff8116610182576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b61010e816102b6565b60005473ffffffffffffffffffffffffffffffffffffffff163314610123576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610179565b8073ffffffffffffffffffffffffffffffffffffffff163b600003610247576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610179565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561033d57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461036157600080fd5b939250505056fea264697066735822122063e6ac8c10cb14b9254b2b497f04ed7c7aa519086cae45504282764c66a749f364736f6c634300081a0033", +} + +// UpgradeableBeaconABI is the input ABI used to generate the binding from. +// Deprecated: Use UpgradeableBeaconMetaData.ABI instead. +var UpgradeableBeaconABI = UpgradeableBeaconMetaData.ABI + +// UpgradeableBeaconBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use UpgradeableBeaconMetaData.Bin instead. +var UpgradeableBeaconBin = UpgradeableBeaconMetaData.Bin + +// DeployUpgradeableBeacon deploys a new Ethereum contract, binding an instance of UpgradeableBeacon to it. +func DeployUpgradeableBeacon(auth *bind.TransactOpts, backend bind.ContractBackend, implementation_ common.Address, initialOwner common.Address) (common.Address, *types.Transaction, *UpgradeableBeacon, error) { + parsed, err := UpgradeableBeaconMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(UpgradeableBeaconBin), backend, implementation_, initialOwner) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &UpgradeableBeacon{UpgradeableBeaconCaller: UpgradeableBeaconCaller{contract: contract}, UpgradeableBeaconTransactor: UpgradeableBeaconTransactor{contract: contract}, UpgradeableBeaconFilterer: UpgradeableBeaconFilterer{contract: contract}}, nil +} + +// UpgradeableBeacon is an auto generated Go binding around an Ethereum contract. +type UpgradeableBeacon struct { + UpgradeableBeaconCaller // Read-only binding to the contract + UpgradeableBeaconTransactor // Write-only binding to the contract + UpgradeableBeaconFilterer // Log filterer for contract events +} + +// UpgradeableBeaconCaller is an auto generated read-only Go binding around an Ethereum contract. +type UpgradeableBeaconCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradeableBeaconTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UpgradeableBeaconTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradeableBeaconFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UpgradeableBeaconFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradeableBeaconSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UpgradeableBeaconSession struct { + Contract *UpgradeableBeacon // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UpgradeableBeaconCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UpgradeableBeaconCallerSession struct { + Contract *UpgradeableBeaconCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UpgradeableBeaconTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UpgradeableBeaconTransactorSession struct { + Contract *UpgradeableBeaconTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UpgradeableBeaconRaw is an auto generated low-level Go binding around an Ethereum contract. +type UpgradeableBeaconRaw struct { + Contract *UpgradeableBeacon // Generic contract binding to access the raw methods on +} + +// UpgradeableBeaconCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UpgradeableBeaconCallerRaw struct { + Contract *UpgradeableBeaconCaller // Generic read-only contract binding to access the raw methods on +} + +// UpgradeableBeaconTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UpgradeableBeaconTransactorRaw struct { + Contract *UpgradeableBeaconTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUpgradeableBeacon creates a new instance of UpgradeableBeacon, bound to a specific deployed contract. +func NewUpgradeableBeacon(address common.Address, backend bind.ContractBackend) (*UpgradeableBeacon, error) { + contract, err := bindUpgradeableBeacon(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &UpgradeableBeacon{UpgradeableBeaconCaller: UpgradeableBeaconCaller{contract: contract}, UpgradeableBeaconTransactor: UpgradeableBeaconTransactor{contract: contract}, UpgradeableBeaconFilterer: UpgradeableBeaconFilterer{contract: contract}}, nil +} + +// NewUpgradeableBeaconCaller creates a new read-only instance of UpgradeableBeacon, bound to a specific deployed contract. +func NewUpgradeableBeaconCaller(address common.Address, caller bind.ContractCaller) (*UpgradeableBeaconCaller, error) { + contract, err := bindUpgradeableBeacon(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UpgradeableBeaconCaller{contract: contract}, nil +} + +// NewUpgradeableBeaconTransactor creates a new write-only instance of UpgradeableBeacon, bound to a specific deployed contract. +func NewUpgradeableBeaconTransactor(address common.Address, transactor bind.ContractTransactor) (*UpgradeableBeaconTransactor, error) { + contract, err := bindUpgradeableBeacon(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UpgradeableBeaconTransactor{contract: contract}, nil +} + +// NewUpgradeableBeaconFilterer creates a new log filterer instance of UpgradeableBeacon, bound to a specific deployed contract. +func NewUpgradeableBeaconFilterer(address common.Address, filterer bind.ContractFilterer) (*UpgradeableBeaconFilterer, error) { + contract, err := bindUpgradeableBeacon(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UpgradeableBeaconFilterer{contract: contract}, nil +} + +// bindUpgradeableBeacon binds a generic wrapper to an already deployed contract. +func bindUpgradeableBeacon(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := UpgradeableBeaconMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_UpgradeableBeacon *UpgradeableBeaconRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UpgradeableBeacon.Contract.UpgradeableBeaconCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_UpgradeableBeacon *UpgradeableBeaconRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradeableBeacon.Contract.UpgradeableBeaconTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UpgradeableBeacon *UpgradeableBeaconRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UpgradeableBeacon.Contract.UpgradeableBeaconTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_UpgradeableBeacon *UpgradeableBeaconCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UpgradeableBeacon.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_UpgradeableBeacon *UpgradeableBeaconTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradeableBeacon.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UpgradeableBeacon *UpgradeableBeaconTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UpgradeableBeacon.Contract.contract.Transact(opts, method, params...) +} + +// Implementation is a free data retrieval call binding the contract method 0x5c60da1b. +// +// Solidity: function implementation() view returns(address) +func (_UpgradeableBeacon *UpgradeableBeaconCaller) Implementation(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _UpgradeableBeacon.contract.Call(opts, &out, "implementation") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Implementation is a free data retrieval call binding the contract method 0x5c60da1b. +// +// Solidity: function implementation() view returns(address) +func (_UpgradeableBeacon *UpgradeableBeaconSession) Implementation() (common.Address, error) { + return _UpgradeableBeacon.Contract.Implementation(&_UpgradeableBeacon.CallOpts) +} + +// Implementation is a free data retrieval call binding the contract method 0x5c60da1b. +// +// Solidity: function implementation() view returns(address) +func (_UpgradeableBeacon *UpgradeableBeaconCallerSession) Implementation() (common.Address, error) { + return _UpgradeableBeacon.Contract.Implementation(&_UpgradeableBeacon.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UpgradeableBeacon *UpgradeableBeaconCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _UpgradeableBeacon.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UpgradeableBeacon *UpgradeableBeaconSession) Owner() (common.Address, error) { + return _UpgradeableBeacon.Contract.Owner(&_UpgradeableBeacon.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UpgradeableBeacon *UpgradeableBeaconCallerSession) Owner() (common.Address, error) { + return _UpgradeableBeacon.Contract.Owner(&_UpgradeableBeacon.CallOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UpgradeableBeacon *UpgradeableBeaconTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradeableBeacon.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UpgradeableBeacon *UpgradeableBeaconSession) RenounceOwnership() (*types.Transaction, error) { + return _UpgradeableBeacon.Contract.RenounceOwnership(&_UpgradeableBeacon.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UpgradeableBeacon *UpgradeableBeaconTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _UpgradeableBeacon.Contract.RenounceOwnership(&_UpgradeableBeacon.TransactOpts) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UpgradeableBeacon *UpgradeableBeaconTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _UpgradeableBeacon.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UpgradeableBeacon *UpgradeableBeaconSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _UpgradeableBeacon.Contract.TransferOwnership(&_UpgradeableBeacon.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UpgradeableBeacon *UpgradeableBeaconTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _UpgradeableBeacon.Contract.TransferOwnership(&_UpgradeableBeacon.TransactOpts, newOwner) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address newImplementation) returns() +func (_UpgradeableBeacon *UpgradeableBeaconTransactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) { + return _UpgradeableBeacon.contract.Transact(opts, "upgradeTo", newImplementation) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address newImplementation) returns() +func (_UpgradeableBeacon *UpgradeableBeaconSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { + return _UpgradeableBeacon.Contract.UpgradeTo(&_UpgradeableBeacon.TransactOpts, newImplementation) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address newImplementation) returns() +func (_UpgradeableBeacon *UpgradeableBeaconTransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { + return _UpgradeableBeacon.Contract.UpgradeTo(&_UpgradeableBeacon.TransactOpts, newImplementation) +} + +// UpgradeableBeaconOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the UpgradeableBeacon contract. +type UpgradeableBeaconOwnershipTransferredIterator struct { + Event *UpgradeableBeaconOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UpgradeableBeaconOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UpgradeableBeaconOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UpgradeableBeaconOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UpgradeableBeaconOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UpgradeableBeaconOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UpgradeableBeaconOwnershipTransferred represents a OwnershipTransferred event raised by the UpgradeableBeacon contract. +type UpgradeableBeaconOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_UpgradeableBeacon *UpgradeableBeaconFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*UpgradeableBeaconOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _UpgradeableBeacon.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &UpgradeableBeaconOwnershipTransferredIterator{contract: _UpgradeableBeacon.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_UpgradeableBeacon *UpgradeableBeaconFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *UpgradeableBeaconOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _UpgradeableBeacon.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UpgradeableBeaconOwnershipTransferred) + if err := _UpgradeableBeacon.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_UpgradeableBeacon *UpgradeableBeaconFilterer) ParseOwnershipTransferred(log types.Log) (*UpgradeableBeaconOwnershipTransferred, error) { + event := new(UpgradeableBeaconOwnershipTransferred) + if err := _UpgradeableBeacon.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UpgradeableBeaconUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the UpgradeableBeacon contract. +type UpgradeableBeaconUpgradedIterator struct { + Event *UpgradeableBeaconUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UpgradeableBeaconUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UpgradeableBeaconUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UpgradeableBeaconUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UpgradeableBeaconUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UpgradeableBeaconUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UpgradeableBeaconUpgraded represents a Upgraded event raised by the UpgradeableBeacon contract. +type UpgradeableBeaconUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_UpgradeableBeacon *UpgradeableBeaconFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*UpgradeableBeaconUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _UpgradeableBeacon.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &UpgradeableBeaconUpgradedIterator{contract: _UpgradeableBeacon.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_UpgradeableBeacon *UpgradeableBeaconFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *UpgradeableBeaconUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _UpgradeableBeacon.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UpgradeableBeaconUpgraded) + if err := _UpgradeableBeacon.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_UpgradeableBeacon *UpgradeableBeaconFilterer) ParseUpgraded(log types.Log) (*UpgradeableBeaconUpgraded, error) { + event := new(UpgradeableBeaconUpgraded) + if err := _UpgradeableBeacon.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/upgrades.sol/unsafeupgrades.go b/v2/pkg/upgrades.sol/unsafeupgrades.go new file mode 100644 index 00000000..77ba4cef --- /dev/null +++ b/v2/pkg/upgrades.sol/unsafeupgrades.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package upgrades + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// UnsafeUpgradesMetaData contains all meta data concerning the UnsafeUpgrades contract. +var UnsafeUpgradesMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a8c6579bef17eaa32858dad8f0a978dbaffc961c79df88bb0e4527ab3c4a8abf64736f6c634300081a0033", +} + +// UnsafeUpgradesABI is the input ABI used to generate the binding from. +// Deprecated: Use UnsafeUpgradesMetaData.ABI instead. +var UnsafeUpgradesABI = UnsafeUpgradesMetaData.ABI + +// UnsafeUpgradesBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use UnsafeUpgradesMetaData.Bin instead. +var UnsafeUpgradesBin = UnsafeUpgradesMetaData.Bin + +// DeployUnsafeUpgrades deploys a new Ethereum contract, binding an instance of UnsafeUpgrades to it. +func DeployUnsafeUpgrades(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *UnsafeUpgrades, error) { + parsed, err := UnsafeUpgradesMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(UnsafeUpgradesBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &UnsafeUpgrades{UnsafeUpgradesCaller: UnsafeUpgradesCaller{contract: contract}, UnsafeUpgradesTransactor: UnsafeUpgradesTransactor{contract: contract}, UnsafeUpgradesFilterer: UnsafeUpgradesFilterer{contract: contract}}, nil +} + +// UnsafeUpgrades is an auto generated Go binding around an Ethereum contract. +type UnsafeUpgrades struct { + UnsafeUpgradesCaller // Read-only binding to the contract + UnsafeUpgradesTransactor // Write-only binding to the contract + UnsafeUpgradesFilterer // Log filterer for contract events +} + +// UnsafeUpgradesCaller is an auto generated read-only Go binding around an Ethereum contract. +type UnsafeUpgradesCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UnsafeUpgradesTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UnsafeUpgradesTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UnsafeUpgradesFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UnsafeUpgradesFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UnsafeUpgradesSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UnsafeUpgradesSession struct { + Contract *UnsafeUpgrades // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UnsafeUpgradesCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UnsafeUpgradesCallerSession struct { + Contract *UnsafeUpgradesCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UnsafeUpgradesTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UnsafeUpgradesTransactorSession struct { + Contract *UnsafeUpgradesTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UnsafeUpgradesRaw is an auto generated low-level Go binding around an Ethereum contract. +type UnsafeUpgradesRaw struct { + Contract *UnsafeUpgrades // Generic contract binding to access the raw methods on +} + +// UnsafeUpgradesCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UnsafeUpgradesCallerRaw struct { + Contract *UnsafeUpgradesCaller // Generic read-only contract binding to access the raw methods on +} + +// UnsafeUpgradesTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UnsafeUpgradesTransactorRaw struct { + Contract *UnsafeUpgradesTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUnsafeUpgrades creates a new instance of UnsafeUpgrades, bound to a specific deployed contract. +func NewUnsafeUpgrades(address common.Address, backend bind.ContractBackend) (*UnsafeUpgrades, error) { + contract, err := bindUnsafeUpgrades(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &UnsafeUpgrades{UnsafeUpgradesCaller: UnsafeUpgradesCaller{contract: contract}, UnsafeUpgradesTransactor: UnsafeUpgradesTransactor{contract: contract}, UnsafeUpgradesFilterer: UnsafeUpgradesFilterer{contract: contract}}, nil +} + +// NewUnsafeUpgradesCaller creates a new read-only instance of UnsafeUpgrades, bound to a specific deployed contract. +func NewUnsafeUpgradesCaller(address common.Address, caller bind.ContractCaller) (*UnsafeUpgradesCaller, error) { + contract, err := bindUnsafeUpgrades(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UnsafeUpgradesCaller{contract: contract}, nil +} + +// NewUnsafeUpgradesTransactor creates a new write-only instance of UnsafeUpgrades, bound to a specific deployed contract. +func NewUnsafeUpgradesTransactor(address common.Address, transactor bind.ContractTransactor) (*UnsafeUpgradesTransactor, error) { + contract, err := bindUnsafeUpgrades(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UnsafeUpgradesTransactor{contract: contract}, nil +} + +// NewUnsafeUpgradesFilterer creates a new log filterer instance of UnsafeUpgrades, bound to a specific deployed contract. +func NewUnsafeUpgradesFilterer(address common.Address, filterer bind.ContractFilterer) (*UnsafeUpgradesFilterer, error) { + contract, err := bindUnsafeUpgrades(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UnsafeUpgradesFilterer{contract: contract}, nil +} + +// bindUnsafeUpgrades binds a generic wrapper to an already deployed contract. +func bindUnsafeUpgrades(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := UnsafeUpgradesMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_UnsafeUpgrades *UnsafeUpgradesRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UnsafeUpgrades.Contract.UnsafeUpgradesCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_UnsafeUpgrades *UnsafeUpgradesRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UnsafeUpgrades.Contract.UnsafeUpgradesTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UnsafeUpgrades *UnsafeUpgradesRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UnsafeUpgrades.Contract.UnsafeUpgradesTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_UnsafeUpgrades *UnsafeUpgradesCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UnsafeUpgrades.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_UnsafeUpgrades *UnsafeUpgradesTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UnsafeUpgrades.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UnsafeUpgrades *UnsafeUpgradesTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UnsafeUpgrades.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/upgrades.sol/upgrades.go b/v2/pkg/upgrades.sol/upgrades.go new file mode 100644 index 00000000..b70dc9d1 --- /dev/null +++ b/v2/pkg/upgrades.sol/upgrades.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package upgrades + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// UpgradesMetaData contains all meta data concerning the Upgrades contract. +var UpgradesMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122042a8949f763d346efc4ef702a00fdf6609161775b1912f6f50023d3ad26a011c64736f6c634300081a0033", +} + +// UpgradesABI is the input ABI used to generate the binding from. +// Deprecated: Use UpgradesMetaData.ABI instead. +var UpgradesABI = UpgradesMetaData.ABI + +// UpgradesBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use UpgradesMetaData.Bin instead. +var UpgradesBin = UpgradesMetaData.Bin + +// DeployUpgrades deploys a new Ethereum contract, binding an instance of Upgrades to it. +func DeployUpgrades(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Upgrades, error) { + parsed, err := UpgradesMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(UpgradesBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Upgrades{UpgradesCaller: UpgradesCaller{contract: contract}, UpgradesTransactor: UpgradesTransactor{contract: contract}, UpgradesFilterer: UpgradesFilterer{contract: contract}}, nil +} + +// Upgrades is an auto generated Go binding around an Ethereum contract. +type Upgrades struct { + UpgradesCaller // Read-only binding to the contract + UpgradesTransactor // Write-only binding to the contract + UpgradesFilterer // Log filterer for contract events +} + +// UpgradesCaller is an auto generated read-only Go binding around an Ethereum contract. +type UpgradesCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradesTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UpgradesTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradesFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UpgradesFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradesSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UpgradesSession struct { + Contract *Upgrades // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UpgradesCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UpgradesCallerSession struct { + Contract *UpgradesCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UpgradesTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UpgradesTransactorSession struct { + Contract *UpgradesTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UpgradesRaw is an auto generated low-level Go binding around an Ethereum contract. +type UpgradesRaw struct { + Contract *Upgrades // Generic contract binding to access the raw methods on +} + +// UpgradesCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UpgradesCallerRaw struct { + Contract *UpgradesCaller // Generic read-only contract binding to access the raw methods on +} + +// UpgradesTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UpgradesTransactorRaw struct { + Contract *UpgradesTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUpgrades creates a new instance of Upgrades, bound to a specific deployed contract. +func NewUpgrades(address common.Address, backend bind.ContractBackend) (*Upgrades, error) { + contract, err := bindUpgrades(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Upgrades{UpgradesCaller: UpgradesCaller{contract: contract}, UpgradesTransactor: UpgradesTransactor{contract: contract}, UpgradesFilterer: UpgradesFilterer{contract: contract}}, nil +} + +// NewUpgradesCaller creates a new read-only instance of Upgrades, bound to a specific deployed contract. +func NewUpgradesCaller(address common.Address, caller bind.ContractCaller) (*UpgradesCaller, error) { + contract, err := bindUpgrades(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UpgradesCaller{contract: contract}, nil +} + +// NewUpgradesTransactor creates a new write-only instance of Upgrades, bound to a specific deployed contract. +func NewUpgradesTransactor(address common.Address, transactor bind.ContractTransactor) (*UpgradesTransactor, error) { + contract, err := bindUpgrades(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UpgradesTransactor{contract: contract}, nil +} + +// NewUpgradesFilterer creates a new log filterer instance of Upgrades, bound to a specific deployed contract. +func NewUpgradesFilterer(address common.Address, filterer bind.ContractFilterer) (*UpgradesFilterer, error) { + contract, err := bindUpgrades(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UpgradesFilterer{contract: contract}, nil +} + +// bindUpgrades binds a generic wrapper to an already deployed contract. +func bindUpgrades(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := UpgradesMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Upgrades *UpgradesRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Upgrades.Contract.UpgradesCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Upgrades *UpgradesRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Upgrades.Contract.UpgradesTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Upgrades *UpgradesRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Upgrades.Contract.UpgradesTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Upgrades *UpgradesCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Upgrades.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Upgrades *UpgradesTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Upgrades.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Upgrades *UpgradesTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Upgrades.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/utils.sol/utils.go b/v2/pkg/utils.sol/utils.go new file mode 100644 index 00000000..7996ef18 --- /dev/null +++ b/v2/pkg/utils.sol/utils.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package utils + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// UtilsMetaData contains all meta data concerning the Utils contract. +var UtilsMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206afe1c95da41d35f78d2d391c1bd30d43de62ada64479615bc7636778f554acd64736f6c634300081a0033", +} + +// UtilsABI is the input ABI used to generate the binding from. +// Deprecated: Use UtilsMetaData.ABI instead. +var UtilsABI = UtilsMetaData.ABI + +// UtilsBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use UtilsMetaData.Bin instead. +var UtilsBin = UtilsMetaData.Bin + +// DeployUtils deploys a new Ethereum contract, binding an instance of Utils to it. +func DeployUtils(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Utils, error) { + parsed, err := UtilsMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(UtilsBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Utils{UtilsCaller: UtilsCaller{contract: contract}, UtilsTransactor: UtilsTransactor{contract: contract}, UtilsFilterer: UtilsFilterer{contract: contract}}, nil +} + +// Utils is an auto generated Go binding around an Ethereum contract. +type Utils struct { + UtilsCaller // Read-only binding to the contract + UtilsTransactor // Write-only binding to the contract + UtilsFilterer // Log filterer for contract events +} + +// UtilsCaller is an auto generated read-only Go binding around an Ethereum contract. +type UtilsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UtilsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UtilsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UtilsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UtilsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UtilsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UtilsSession struct { + Contract *Utils // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UtilsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UtilsCallerSession struct { + Contract *UtilsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UtilsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UtilsTransactorSession struct { + Contract *UtilsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UtilsRaw is an auto generated low-level Go binding around an Ethereum contract. +type UtilsRaw struct { + Contract *Utils // Generic contract binding to access the raw methods on +} + +// UtilsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UtilsCallerRaw struct { + Contract *UtilsCaller // Generic read-only contract binding to access the raw methods on +} + +// UtilsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UtilsTransactorRaw struct { + Contract *UtilsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUtils creates a new instance of Utils, bound to a specific deployed contract. +func NewUtils(address common.Address, backend bind.ContractBackend) (*Utils, error) { + contract, err := bindUtils(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Utils{UtilsCaller: UtilsCaller{contract: contract}, UtilsTransactor: UtilsTransactor{contract: contract}, UtilsFilterer: UtilsFilterer{contract: contract}}, nil +} + +// NewUtilsCaller creates a new read-only instance of Utils, bound to a specific deployed contract. +func NewUtilsCaller(address common.Address, caller bind.ContractCaller) (*UtilsCaller, error) { + contract, err := bindUtils(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UtilsCaller{contract: contract}, nil +} + +// NewUtilsTransactor creates a new write-only instance of Utils, bound to a specific deployed contract. +func NewUtilsTransactor(address common.Address, transactor bind.ContractTransactor) (*UtilsTransactor, error) { + contract, err := bindUtils(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UtilsTransactor{contract: contract}, nil +} + +// NewUtilsFilterer creates a new log filterer instance of Utils, bound to a specific deployed contract. +func NewUtilsFilterer(address common.Address, filterer bind.ContractFilterer) (*UtilsFilterer, error) { + contract, err := bindUtils(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UtilsFilterer{contract: contract}, nil +} + +// bindUtils binds a generic wrapper to an already deployed contract. +func bindUtils(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := UtilsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Utils *UtilsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Utils.Contract.UtilsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Utils *UtilsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Utils.Contract.UtilsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Utils *UtilsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Utils.Contract.UtilsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Utils *UtilsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Utils.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Utils *UtilsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Utils.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Utils *UtilsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Utils.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/utils/strings.sol/strings.go b/v2/pkg/utils/strings.sol/strings.go new file mode 100644 index 00000000..5c5a03ac --- /dev/null +++ b/v2/pkg/utils/strings.sol/strings.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package strings + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StringsMetaData contains all meta data concerning the Strings contract. +var StringsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"StringsInsufficientHexLength\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"length\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dcce55e68788eb53af38b2c11af076a07cd1e8f2cba23bcb93cbc6cafe3918ef64736f6c634300081a0033", +} + +// StringsABI is the input ABI used to generate the binding from. +// Deprecated: Use StringsMetaData.ABI instead. +var StringsABI = StringsMetaData.ABI + +// StringsBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use StringsMetaData.Bin instead. +var StringsBin = StringsMetaData.Bin + +// DeployStrings deploys a new Ethereum contract, binding an instance of Strings to it. +func DeployStrings(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Strings, error) { + parsed, err := StringsMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StringsBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Strings{StringsCaller: StringsCaller{contract: contract}, StringsTransactor: StringsTransactor{contract: contract}, StringsFilterer: StringsFilterer{contract: contract}}, nil +} + +// Strings is an auto generated Go binding around an Ethereum contract. +type Strings struct { + StringsCaller // Read-only binding to the contract + StringsTransactor // Write-only binding to the contract + StringsFilterer // Log filterer for contract events +} + +// StringsCaller is an auto generated read-only Go binding around an Ethereum contract. +type StringsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StringsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StringsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StringsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StringsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// StringsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type StringsSession struct { + Contract *Strings // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StringsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type StringsCallerSession struct { + Contract *StringsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// StringsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type StringsTransactorSession struct { + Contract *StringsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// StringsRaw is an auto generated low-level Go binding around an Ethereum contract. +type StringsRaw struct { + Contract *Strings // Generic contract binding to access the raw methods on +} + +// StringsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StringsCallerRaw struct { + Contract *StringsCaller // Generic read-only contract binding to access the raw methods on +} + +// StringsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StringsTransactorRaw struct { + Contract *StringsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewStrings creates a new instance of Strings, bound to a specific deployed contract. +func NewStrings(address common.Address, backend bind.ContractBackend) (*Strings, error) { + contract, err := bindStrings(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Strings{StringsCaller: StringsCaller{contract: contract}, StringsTransactor: StringsTransactor{contract: contract}, StringsFilterer: StringsFilterer{contract: contract}}, nil +} + +// NewStringsCaller creates a new read-only instance of Strings, bound to a specific deployed contract. +func NewStringsCaller(address common.Address, caller bind.ContractCaller) (*StringsCaller, error) { + contract, err := bindStrings(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &StringsCaller{contract: contract}, nil +} + +// NewStringsTransactor creates a new write-only instance of Strings, bound to a specific deployed contract. +func NewStringsTransactor(address common.Address, transactor bind.ContractTransactor) (*StringsTransactor, error) { + contract, err := bindStrings(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &StringsTransactor{contract: contract}, nil +} + +// NewStringsFilterer creates a new log filterer instance of Strings, bound to a specific deployed contract. +func NewStringsFilterer(address common.Address, filterer bind.ContractFilterer) (*StringsFilterer, error) { + contract, err := bindStrings(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &StringsFilterer{contract: contract}, nil +} + +// bindStrings binds a generic wrapper to an already deployed contract. +func bindStrings(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StringsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Strings *StringsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Strings.Contract.StringsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Strings *StringsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Strings.Contract.StringsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Strings *StringsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Strings.Contract.StringsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Strings *StringsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Strings.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Strings *StringsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Strings.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Strings *StringsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Strings.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/uupsupgradeable.sol/uupsupgradeable.go b/v2/pkg/uupsupgradeable.sol/uupsupgradeable.go new file mode 100644 index 00000000..fa578367 --- /dev/null +++ b/v2/pkg/uupsupgradeable.sol/uupsupgradeable.go @@ -0,0 +1,542 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package uupsupgradeable + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// UUPSUpgradeableMetaData contains all meta data concerning the UUPSUpgradeable contract. +var UUPSUpgradeableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"UPGRADE_INTERFACE_VERSION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proxiableUUID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"upgradeToAndCall\",\"inputs\":[{\"name\":\"newImplementation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967InvalidImplementation\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC1967NonPayable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UUPSUnauthorizedCallContext\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UUPSUnsupportedProxiableUUID\",\"inputs\":[{\"name\":\"slot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}]", +} + +// UUPSUpgradeableABI is the input ABI used to generate the binding from. +// Deprecated: Use UUPSUpgradeableMetaData.ABI instead. +var UUPSUpgradeableABI = UUPSUpgradeableMetaData.ABI + +// UUPSUpgradeable is an auto generated Go binding around an Ethereum contract. +type UUPSUpgradeable struct { + UUPSUpgradeableCaller // Read-only binding to the contract + UUPSUpgradeableTransactor // Write-only binding to the contract + UUPSUpgradeableFilterer // Log filterer for contract events +} + +// UUPSUpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. +type UUPSUpgradeableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UUPSUpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UUPSUpgradeableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UUPSUpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UUPSUpgradeableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UUPSUpgradeableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UUPSUpgradeableSession struct { + Contract *UUPSUpgradeable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UUPSUpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UUPSUpgradeableCallerSession struct { + Contract *UUPSUpgradeableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UUPSUpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UUPSUpgradeableTransactorSession struct { + Contract *UUPSUpgradeableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UUPSUpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. +type UUPSUpgradeableRaw struct { + Contract *UUPSUpgradeable // Generic contract binding to access the raw methods on +} + +// UUPSUpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UUPSUpgradeableCallerRaw struct { + Contract *UUPSUpgradeableCaller // Generic read-only contract binding to access the raw methods on +} + +// UUPSUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UUPSUpgradeableTransactorRaw struct { + Contract *UUPSUpgradeableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUUPSUpgradeable creates a new instance of UUPSUpgradeable, bound to a specific deployed contract. +func NewUUPSUpgradeable(address common.Address, backend bind.ContractBackend) (*UUPSUpgradeable, error) { + contract, err := bindUUPSUpgradeable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &UUPSUpgradeable{UUPSUpgradeableCaller: UUPSUpgradeableCaller{contract: contract}, UUPSUpgradeableTransactor: UUPSUpgradeableTransactor{contract: contract}, UUPSUpgradeableFilterer: UUPSUpgradeableFilterer{contract: contract}}, nil +} + +// NewUUPSUpgradeableCaller creates a new read-only instance of UUPSUpgradeable, bound to a specific deployed contract. +func NewUUPSUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*UUPSUpgradeableCaller, error) { + contract, err := bindUUPSUpgradeable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UUPSUpgradeableCaller{contract: contract}, nil +} + +// NewUUPSUpgradeableTransactor creates a new write-only instance of UUPSUpgradeable, bound to a specific deployed contract. +func NewUUPSUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*UUPSUpgradeableTransactor, error) { + contract, err := bindUUPSUpgradeable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UUPSUpgradeableTransactor{contract: contract}, nil +} + +// NewUUPSUpgradeableFilterer creates a new log filterer instance of UUPSUpgradeable, bound to a specific deployed contract. +func NewUUPSUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*UUPSUpgradeableFilterer, error) { + contract, err := bindUUPSUpgradeable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UUPSUpgradeableFilterer{contract: contract}, nil +} + +// bindUUPSUpgradeable binds a generic wrapper to an already deployed contract. +func bindUUPSUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := UUPSUpgradeableMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_UUPSUpgradeable *UUPSUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UUPSUpgradeable.Contract.UUPSUpgradeableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_UUPSUpgradeable *UUPSUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UUPSUpgradeable.Contract.UUPSUpgradeableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UUPSUpgradeable *UUPSUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UUPSUpgradeable.Contract.UUPSUpgradeableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_UUPSUpgradeable *UUPSUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UUPSUpgradeable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_UUPSUpgradeable *UUPSUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UUPSUpgradeable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UUPSUpgradeable *UUPSUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UUPSUpgradeable.Contract.contract.Transact(opts, method, params...) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_UUPSUpgradeable *UUPSUpgradeableCaller) UPGRADEINTERFACEVERSION(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _UUPSUpgradeable.contract.Call(opts, &out, "UPGRADE_INTERFACE_VERSION") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_UUPSUpgradeable *UUPSUpgradeableSession) UPGRADEINTERFACEVERSION() (string, error) { + return _UUPSUpgradeable.Contract.UPGRADEINTERFACEVERSION(&_UUPSUpgradeable.CallOpts) +} + +// UPGRADEINTERFACEVERSION is a free data retrieval call binding the contract method 0xad3cb1cc. +// +// Solidity: function UPGRADE_INTERFACE_VERSION() view returns(string) +func (_UUPSUpgradeable *UUPSUpgradeableCallerSession) UPGRADEINTERFACEVERSION() (string, error) { + return _UUPSUpgradeable.Contract.UPGRADEINTERFACEVERSION(&_UUPSUpgradeable.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_UUPSUpgradeable *UUPSUpgradeableCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _UUPSUpgradeable.contract.Call(opts, &out, "proxiableUUID") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_UUPSUpgradeable *UUPSUpgradeableSession) ProxiableUUID() ([32]byte, error) { + return _UUPSUpgradeable.Contract.ProxiableUUID(&_UUPSUpgradeable.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_UUPSUpgradeable *UUPSUpgradeableCallerSession) ProxiableUUID() ([32]byte, error) { + return _UUPSUpgradeable.Contract.ProxiableUUID(&_UUPSUpgradeable.CallOpts) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_UUPSUpgradeable *UUPSUpgradeableTransactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _UUPSUpgradeable.contract.Transact(opts, "upgradeToAndCall", newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_UUPSUpgradeable *UUPSUpgradeableSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _UUPSUpgradeable.Contract.UpgradeToAndCall(&_UUPSUpgradeable.TransactOpts, newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_UUPSUpgradeable *UUPSUpgradeableTransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _UUPSUpgradeable.Contract.UpgradeToAndCall(&_UUPSUpgradeable.TransactOpts, newImplementation, data) +} + +// UUPSUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the UUPSUpgradeable contract. +type UUPSUpgradeableInitializedIterator struct { + Event *UUPSUpgradeableInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UUPSUpgradeableInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UUPSUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UUPSUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UUPSUpgradeableInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UUPSUpgradeableInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UUPSUpgradeableInitialized represents a Initialized event raised by the UUPSUpgradeable contract. +type UUPSUpgradeableInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_UUPSUpgradeable *UUPSUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*UUPSUpgradeableInitializedIterator, error) { + + logs, sub, err := _UUPSUpgradeable.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &UUPSUpgradeableInitializedIterator{contract: _UUPSUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_UUPSUpgradeable *UUPSUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *UUPSUpgradeableInitialized) (event.Subscription, error) { + + logs, sub, err := _UUPSUpgradeable.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UUPSUpgradeableInitialized) + if err := _UUPSUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_UUPSUpgradeable *UUPSUpgradeableFilterer) ParseInitialized(log types.Log) (*UUPSUpgradeableInitialized, error) { + event := new(UUPSUpgradeableInitialized) + if err := _UUPSUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UUPSUpgradeableUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the UUPSUpgradeable contract. +type UUPSUpgradeableUpgradedIterator struct { + Event *UUPSUpgradeableUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UUPSUpgradeableUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UUPSUpgradeableUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UUPSUpgradeableUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UUPSUpgradeableUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UUPSUpgradeableUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UUPSUpgradeableUpgraded represents a Upgraded event raised by the UUPSUpgradeable contract. +type UUPSUpgradeableUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_UUPSUpgradeable *UUPSUpgradeableFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*UUPSUpgradeableUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _UUPSUpgradeable.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &UUPSUpgradeableUpgradedIterator{contract: _UUPSUpgradeable.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_UUPSUpgradeable *UUPSUpgradeableFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *UUPSUpgradeableUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _UUPSUpgradeable.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UUPSUpgradeableUpgraded) + if err := _UUPSUpgradeable.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_UUPSUpgradeable *UUPSUpgradeableFilterer) ParseUpgraded(log types.Log) (*UUPSUpgradeableUpgraded, error) { + event := new(UUPSUpgradeableUpgraded) + if err := _UUPSUpgradeable.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/versions.sol/versions.go b/v2/pkg/versions.sol/versions.go new file mode 100644 index 00000000..c8964778 --- /dev/null +++ b/v2/pkg/versions.sol/versions.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package versions + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// VersionsMetaData contains all meta data concerning the Versions contract. +var VersionsMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122090ff21952ff1b506f8e4635b0cb2c5eeb7fc0f5af845cdf577eb795be255d68d64736f6c634300081a0033", +} + +// VersionsABI is the input ABI used to generate the binding from. +// Deprecated: Use VersionsMetaData.ABI instead. +var VersionsABI = VersionsMetaData.ABI + +// VersionsBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use VersionsMetaData.Bin instead. +var VersionsBin = VersionsMetaData.Bin + +// DeployVersions deploys a new Ethereum contract, binding an instance of Versions to it. +func DeployVersions(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Versions, error) { + parsed, err := VersionsMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(VersionsBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Versions{VersionsCaller: VersionsCaller{contract: contract}, VersionsTransactor: VersionsTransactor{contract: contract}, VersionsFilterer: VersionsFilterer{contract: contract}}, nil +} + +// Versions is an auto generated Go binding around an Ethereum contract. +type Versions struct { + VersionsCaller // Read-only binding to the contract + VersionsTransactor // Write-only binding to the contract + VersionsFilterer // Log filterer for contract events +} + +// VersionsCaller is an auto generated read-only Go binding around an Ethereum contract. +type VersionsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VersionsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type VersionsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VersionsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type VersionsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VersionsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type VersionsSession struct { + Contract *Versions // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// VersionsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type VersionsCallerSession struct { + Contract *VersionsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// VersionsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type VersionsTransactorSession struct { + Contract *VersionsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// VersionsRaw is an auto generated low-level Go binding around an Ethereum contract. +type VersionsRaw struct { + Contract *Versions // Generic contract binding to access the raw methods on +} + +// VersionsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type VersionsCallerRaw struct { + Contract *VersionsCaller // Generic read-only contract binding to access the raw methods on +} + +// VersionsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type VersionsTransactorRaw struct { + Contract *VersionsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewVersions creates a new instance of Versions, bound to a specific deployed contract. +func NewVersions(address common.Address, backend bind.ContractBackend) (*Versions, error) { + contract, err := bindVersions(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Versions{VersionsCaller: VersionsCaller{contract: contract}, VersionsTransactor: VersionsTransactor{contract: contract}, VersionsFilterer: VersionsFilterer{contract: contract}}, nil +} + +// NewVersionsCaller creates a new read-only instance of Versions, bound to a specific deployed contract. +func NewVersionsCaller(address common.Address, caller bind.ContractCaller) (*VersionsCaller, error) { + contract, err := bindVersions(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &VersionsCaller{contract: contract}, nil +} + +// NewVersionsTransactor creates a new write-only instance of Versions, bound to a specific deployed contract. +func NewVersionsTransactor(address common.Address, transactor bind.ContractTransactor) (*VersionsTransactor, error) { + contract, err := bindVersions(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &VersionsTransactor{contract: contract}, nil +} + +// NewVersionsFilterer creates a new log filterer instance of Versions, bound to a specific deployed contract. +func NewVersionsFilterer(address common.Address, filterer bind.ContractFilterer) (*VersionsFilterer, error) { + contract, err := bindVersions(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &VersionsFilterer{contract: contract}, nil +} + +// bindVersions binds a generic wrapper to an already deployed contract. +func bindVersions(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := VersionsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Versions *VersionsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Versions.Contract.VersionsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Versions *VersionsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Versions.Contract.VersionsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Versions *VersionsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Versions.Contract.VersionsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Versions *VersionsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Versions.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Versions *VersionsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Versions.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Versions *VersionsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Versions.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/vm.sol/vm.go b/v2/pkg/vm.sol/vm.go new file mode 100644 index 00000000..8b4908be --- /dev/null +++ b/v2/pkg/vm.sol/vm.go @@ -0,0 +1,11096 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package vm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// VmSafeAccountAccess is an auto generated low-level Go binding around an user-defined struct. +type VmSafeAccountAccess struct { + ChainInfo VmSafeChainInfo + Kind uint8 + Account common.Address + Accessor common.Address + Initialized bool + OldBalance *big.Int + NewBalance *big.Int + DeployedCode []byte + Value *big.Int + Data []byte + Reverted bool + StorageAccesses []VmSafeStorageAccess + Depth uint64 +} + +// VmSafeChainInfo is an auto generated low-level Go binding around an user-defined struct. +type VmSafeChainInfo struct { + ForkId *big.Int + ChainId *big.Int +} + +// VmSafeDirEntry is an auto generated low-level Go binding around an user-defined struct. +type VmSafeDirEntry struct { + ErrorMessage string + Path string + Depth uint64 + IsDir bool + IsSymlink bool +} + +// VmSafeEthGetLogs is an auto generated low-level Go binding around an user-defined struct. +type VmSafeEthGetLogs struct { + Emitter common.Address + Topics [][32]byte + Data []byte + BlockHash [32]byte + BlockNumber uint64 + TransactionHash [32]byte + TransactionIndex uint64 + LogIndex *big.Int + Removed bool +} + +// VmSafeFfiResult is an auto generated low-level Go binding around an user-defined struct. +type VmSafeFfiResult struct { + ExitCode int32 + Stdout []byte + Stderr []byte +} + +// VmSafeFsMetadata is an auto generated low-level Go binding around an user-defined struct. +type VmSafeFsMetadata struct { + IsDir bool + IsSymlink bool + Length *big.Int + ReadOnly bool + Modified *big.Int + Accessed *big.Int + Created *big.Int +} + +// VmSafeGas is an auto generated low-level Go binding around an user-defined struct. +type VmSafeGas struct { + GasLimit uint64 + GasTotalUsed uint64 + GasMemoryUsed uint64 + GasRefunded int64 + GasRemaining uint64 +} + +// VmSafeLog is an auto generated low-level Go binding around an user-defined struct. +type VmSafeLog struct { + Topics [][32]byte + Data []byte + Emitter common.Address +} + +// VmSafeRpc is an auto generated low-level Go binding around an user-defined struct. +type VmSafeRpc struct { + Key string + Url string +} + +// VmSafeStorageAccess is an auto generated low-level Go binding around an user-defined struct. +type VmSafeStorageAccess struct { + Account common.Address + Slot [32]byte + IsWrite bool + PreviousValue [32]byte + NewValue [32]byte + Reverted bool +} + +// VmSafeWallet is an auto generated low-level Go binding around an user-defined struct. +type VmSafeWallet struct { + Addr common.Address + PublicKeyX *big.Int + PublicKeyY *big.Int + PrivateKey *big.Int +} + +// VmMetaData contains all meta data concerning the Vm contract. +var VmMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"accesses\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"readSlots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"writeSlots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"activeFork\",\"inputs\":[],\"outputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addr\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"keyAddr\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"allowCheatcodes\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbs\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbs\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbs\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbs\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbsDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbsDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbsDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbsDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRel\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRel\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRel\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRel\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRelDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRelDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRelDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRelDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"right\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"right\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"right\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"right\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"right\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"right\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"right\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"right\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"right\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"right\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"right\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"right\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"right\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"right\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"right\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"right\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"right\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"right\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"right\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"right\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"right\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"right\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"right\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"right\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertFalse\",\"inputs\":[{\"name\":\"condition\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertFalse\",\"inputs\":[{\"name\":\"condition\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGe\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGe\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGe\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGe\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGt\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGt\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGt\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGt\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLe\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLe\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLe\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLe\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLt\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLt\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLt\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLt\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"right\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"right\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"right\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"right\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"right\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"right\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"right\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"right\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"right\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"right\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"right\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"right\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"right\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"right\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"right\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"right\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"right\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"right\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"right\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"right\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"right\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"right\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"right\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"right\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertTrue\",\"inputs\":[{\"name\":\"condition\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertTrue\",\"inputs\":[{\"name\":\"condition\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assume\",\"inputs\":[{\"name\":\"condition\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"blobBaseFee\",\"inputs\":[{\"name\":\"newBlobBaseFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"blobhashes\",\"inputs\":[{\"name\":\"hashes\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"breakpoint\",\"inputs\":[{\"name\":\"char\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"breakpoint\",\"inputs\":[{\"name\":\"char\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"broadcast\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"broadcast\",\"inputs\":[{\"name\":\"signer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"broadcast\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"chainId\",\"inputs\":[{\"name\":\"newChainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"clearMockedCalls\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"closeFile\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"coinbase\",\"inputs\":[{\"name\":\"newCoinbase\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"computeCreate2Address\",\"inputs\":[{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"initCodeHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"computeCreate2Address\",\"inputs\":[{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"initCodeHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"deployer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"computeCreateAddress\",\"inputs\":[{\"name\":\"deployer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"copyFile\",\"inputs\":[{\"name\":\"from\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"to\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"copied\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"recursive\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createFork\",\"inputs\":[{\"name\":\"urlOrAlias\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createFork\",\"inputs\":[{\"name\":\"urlOrAlias\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createFork\",\"inputs\":[{\"name\":\"urlOrAlias\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"txHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createSelectFork\",\"inputs\":[{\"name\":\"urlOrAlias\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createSelectFork\",\"inputs\":[{\"name\":\"urlOrAlias\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"txHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createSelectFork\",\"inputs\":[{\"name\":\"urlOrAlias\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createWallet\",\"inputs\":[{\"name\":\"walletLabel\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"wallet\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Wallet\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"publicKeyX\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"publicKeyY\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createWallet\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"wallet\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Wallet\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"publicKeyX\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"publicKeyY\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createWallet\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"walletLabel\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"wallet\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Wallet\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"publicKeyX\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"publicKeyY\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deal\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newBalance\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deleteSnapshot\",\"inputs\":[{\"name\":\"snapshotId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deleteSnapshots\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deployCode\",\"inputs\":[{\"name\":\"artifactPath\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"constructorArgs\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"deployedAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deployCode\",\"inputs\":[{\"name\":\"artifactPath\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"deployedAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deriveKey\",\"inputs\":[{\"name\":\"mnemonic\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"derivationPath\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"index\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"language\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"deriveKey\",\"inputs\":[{\"name\":\"mnemonic\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"index\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"language\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"deriveKey\",\"inputs\":[{\"name\":\"mnemonic\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"index\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"deriveKey\",\"inputs\":[{\"name\":\"mnemonic\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"derivationPath\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"index\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"difficulty\",\"inputs\":[{\"name\":\"newDifficulty\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"dumpState\",\"inputs\":[{\"name\":\"pathToStateJson\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ensNamehash\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"envAddress\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envAddress\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBool\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBool\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBytes\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBytes\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBytes32\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBytes32\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envExists\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envInt\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envInt\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envString\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envString\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envUint\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envUint\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"etch\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newRuntimeBytecode\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"eth_getLogs\",\"inputs\":[{\"name\":\"fromBlock\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"toBlock\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"topics\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"logs\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.EthGetLogs[]\",\"components\":[{\"name\":\"emitter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"topics\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"blockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"transactionHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"transactionIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"logIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"removed\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"exists\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectCall\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"msgValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"gas\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectCall\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"msgValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"gas\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"count\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectCall\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"msgValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"count\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectCall\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectCall\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"count\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectCall\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"msgValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectCallMinGas\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"msgValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"minGas\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectCallMinGas\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"msgValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"minGas\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"count\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectEmit\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectEmit\",\"inputs\":[{\"name\":\"checkTopic1\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkTopic2\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkTopic3\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkData\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectEmit\",\"inputs\":[{\"name\":\"checkTopic1\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkTopic2\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkTopic3\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkData\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"emitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectEmit\",\"inputs\":[{\"name\":\"emitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectEmitAnonymous\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectEmitAnonymous\",\"inputs\":[{\"name\":\"emitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectEmitAnonymous\",\"inputs\":[{\"name\":\"checkTopic0\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkTopic1\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkTopic2\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkTopic3\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkData\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"emitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectEmitAnonymous\",\"inputs\":[{\"name\":\"checkTopic0\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkTopic1\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkTopic2\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkTopic3\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"checkData\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectRevert\",\"inputs\":[{\"name\":\"revertData\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectRevert\",\"inputs\":[{\"name\":\"revertData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectRevert\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectSafeMemory\",\"inputs\":[{\"name\":\"min\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"max\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"expectSafeMemoryCall\",\"inputs\":[{\"name\":\"min\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"max\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"fee\",\"inputs\":[{\"name\":\"newBasefee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ffi\",\"inputs\":[{\"name\":\"commandInput\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"fsMetadata\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"metadata\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.FsMetadata\",\"components\":[{\"name\":\"isDir\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"isSymlink\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"length\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"readOnly\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"modified\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"accessed\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"created\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlobBaseFee\",\"inputs\":[],\"outputs\":[{\"name\":\"blobBaseFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlobhashes\",\"inputs\":[],\"outputs\":[{\"name\":\"hashes\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"height\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlockTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"timestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCode\",\"inputs\":[{\"name\":\"artifactPath\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"creationBytecode\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDeployedCode\",\"inputs\":[{\"name\":\"artifactPath\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"runtimeBytecode\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLabel\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"currentLabel\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMappingKeyAndParentOf\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"elementSlot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"found\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"key\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"parent\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getMappingLength\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"mappingSlot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"length\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getMappingSlotAt\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"mappingSlot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"idx\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getNonce\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"nonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNonce\",\"inputs\":[{\"name\":\"wallet\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Wallet\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"publicKeyX\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"publicKeyY\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"nonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getRecordedLogs\",\"inputs\":[],\"outputs\":[{\"name\":\"logs\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.Log[]\",\"components\":[{\"name\":\"topics\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"emitter\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"indexOf\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"isContext\",\"inputs\":[{\"name\":\"context\",\"type\":\"uint8\",\"internalType\":\"enumVmSafe.ForgeContext\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isFile\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isPersistent\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"persistent\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"keyExists\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"keyExistsJson\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"keyExistsToml\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"label\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newLabel\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastCallGas\",\"inputs\":[],\"outputs\":[{\"name\":\"gas\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Gas\",\"components\":[{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasTotalUsed\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasMemoryUsed\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasRefunded\",\"type\":\"int64\",\"internalType\":\"int64\"},{\"name\":\"gasRemaining\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"load\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"slot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"loadAllocs\",\"inputs\":[{\"name\":\"pathToAllocsJson\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"makePersistent\",\"inputs\":[{\"name\":\"accounts\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"makePersistent\",\"inputs\":[{\"name\":\"account0\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"account1\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"makePersistent\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"makePersistent\",\"inputs\":[{\"name\":\"account0\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"account1\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"account2\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"mockCall\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"msgValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"returnData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"mockCall\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"returnData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"mockCallRevert\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"msgValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"revertData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"mockCallRevert\",\"inputs\":[{\"name\":\"callee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"revertData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"parseAddress\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseBool\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseBytes\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseBytes32\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseInt\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJson\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"abiEncodedData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJson\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"abiEncodedData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonAddress\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonAddressArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBool\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBoolArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBytes\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBytes32\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBytes32Array\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBytesArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonInt\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonIntArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonKeys\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"keys\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonString\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonStringArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonType\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"typeDescription\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonType\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"typeDescription\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonTypeArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"typeDescription\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonUint\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonUintArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseToml\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"abiEncodedData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseToml\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"abiEncodedData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlAddress\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlAddressArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBool\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBoolArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBytes\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBytes32\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBytes32Array\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBytesArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlInt\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlIntArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlKeys\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"keys\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlString\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlStringArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlUint\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlUintArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseUint\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"pauseGasMetering\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"prank\",\"inputs\":[{\"name\":\"msgSender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"txOrigin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"prank\",\"inputs\":[{\"name\":\"msgSender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"prevrandao\",\"inputs\":[{\"name\":\"newPrevrandao\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"prevrandao\",\"inputs\":[{\"name\":\"newPrevrandao\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"projectRoot\",\"inputs\":[],\"outputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"prompt\",\"inputs\":[{\"name\":\"promptText\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"promptAddress\",\"inputs\":[{\"name\":\"promptText\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"promptSecret\",\"inputs\":[{\"name\":\"promptText\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"promptSecretUint\",\"inputs\":[{\"name\":\"promptText\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"promptUint\",\"inputs\":[{\"name\":\"promptText\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"randomAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"randomUint\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"randomUint\",\"inputs\":[{\"name\":\"min\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"max\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"readCallers\",\"inputs\":[],\"outputs\":[{\"name\":\"callerMode\",\"type\":\"uint8\",\"internalType\":\"enumVmSafe.CallerMode\"},{\"name\":\"msgSender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"txOrigin\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"readDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"maxDepth\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"entries\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.DirEntry[]\",\"components\":[{\"name\":\"errorMessage\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"depth\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"isDir\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"isSymlink\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"maxDepth\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"followLinks\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[{\"name\":\"entries\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.DirEntry[]\",\"components\":[{\"name\":\"errorMessage\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"depth\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"isDir\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"isSymlink\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"entries\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.DirEntry[]\",\"components\":[{\"name\":\"errorMessage\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"depth\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"isDir\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"isSymlink\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readFile\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readFileBinary\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readLine\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"line\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readLink\",\"inputs\":[{\"name\":\"linkPath\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"targetPath\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"record\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"recordLogs\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rememberKey\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"keyAddr\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"recursive\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeFile\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"replace\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"from\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"to\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"output\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"resetNonce\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resumeGasMetering\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revertTo\",\"inputs\":[{\"name\":\"snapshotId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revertToAndDelete\",\"inputs\":[{\"name\":\"snapshotId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokePersistent\",\"inputs\":[{\"name\":\"accounts\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokePersistent\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"roll\",\"inputs\":[{\"name\":\"newHeight\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rollFork\",\"inputs\":[{\"name\":\"txHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rollFork\",\"inputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rollFork\",\"inputs\":[{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rollFork\",\"inputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"txHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rpc\",\"inputs\":[{\"name\":\"urlOrAlias\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"method\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"params\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rpc\",\"inputs\":[{\"name\":\"method\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"params\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rpcUrl\",\"inputs\":[{\"name\":\"rpcAlias\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"rpcUrlStructs\",\"inputs\":[],\"outputs\":[{\"name\":\"urls\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.Rpc[]\",\"components\":[{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"url\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"rpcUrls\",\"inputs\":[],\"outputs\":[{\"name\":\"urls\",\"type\":\"string[2][]\",\"internalType\":\"string[2][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"selectFork\",\"inputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeAddress\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeAddress\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBool\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBool\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBytes\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBytes\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBytes32\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBytes32\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeInt\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeInt\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeJson\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeJsonType\",\"inputs\":[{\"name\":\"typeDescription\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"serializeJsonType\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"typeDescription\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeString\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeString\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeUint\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeUint\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeUintToHex\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setBlockhash\",\"inputs\":[{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"blockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEnv\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setNonce\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newNonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setNonceUnsafe\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newNonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sign\",\"inputs\":[{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"sign\",\"inputs\":[{\"name\":\"signer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"sign\",\"inputs\":[{\"name\":\"wallet\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Wallet\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"publicKeyX\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"publicKeyY\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sign\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"signP256\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"skip\",\"inputs\":[{\"name\":\"skipTest\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sleep\",\"inputs\":[{\"name\":\"duration\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"snapshot\",\"inputs\":[],\"outputs\":[{\"name\":\"snapshotId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"split\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delimiter\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"outputs\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"startBroadcast\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"startBroadcast\",\"inputs\":[{\"name\":\"signer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"startBroadcast\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"startMappingRecording\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"startPrank\",\"inputs\":[{\"name\":\"msgSender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"startPrank\",\"inputs\":[{\"name\":\"msgSender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"txOrigin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"startStateDiffRecording\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stopAndReturnStateDiff\",\"inputs\":[],\"outputs\":[{\"name\":\"accountAccesses\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.AccountAccess[]\",\"components\":[{\"name\":\"chainInfo\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.ChainInfo\",\"components\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"kind\",\"type\":\"uint8\",\"internalType\":\"enumVmSafe.AccountAccessKind\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"accessor\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialized\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"oldBalance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"newBalance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"deployedCode\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"reverted\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"storageAccesses\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.StorageAccess[]\",\"components\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"slot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"isWrite\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"previousValue\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"newValue\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"reverted\",\"type\":\"bool\",\"internalType\":\"bool\"}]},{\"name\":\"depth\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stopBroadcast\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stopExpectSafeMemory\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stopMappingRecording\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stopPrank\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"store\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"slot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"toBase64\",\"inputs\":[{\"name\":\"data\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toBase64\",\"inputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toBase64URL\",\"inputs\":[{\"name\":\"data\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toBase64URL\",\"inputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toLowercase\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"output\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toUppercase\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"output\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"transact\",\"inputs\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"txHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transact\",\"inputs\":[{\"name\":\"txHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"trim\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"output\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"tryFfi\",\"inputs\":[{\"name\":\"commandInput\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.FfiResult\",\"components\":[{\"name\":\"exitCode\",\"type\":\"int32\",\"internalType\":\"int32\"},{\"name\":\"stdout\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"stderr\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"txGasPrice\",\"inputs\":[{\"name\":\"newGasPrice\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unixTime\",\"inputs\":[],\"outputs\":[{\"name\":\"milliseconds\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"warp\",\"inputs\":[{\"name\":\"newTimestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeFile\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"data\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeFileBinary\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeJson\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeJson\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeLine\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"data\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeToml\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeToml\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", +} + +// VmABI is the input ABI used to generate the binding from. +// Deprecated: Use VmMetaData.ABI instead. +var VmABI = VmMetaData.ABI + +// Vm is an auto generated Go binding around an Ethereum contract. +type Vm struct { + VmCaller // Read-only binding to the contract + VmTransactor // Write-only binding to the contract + VmFilterer // Log filterer for contract events +} + +// VmCaller is an auto generated read-only Go binding around an Ethereum contract. +type VmCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VmTransactor is an auto generated write-only Go binding around an Ethereum contract. +type VmTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VmFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type VmFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VmSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type VmSession struct { + Contract *Vm // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// VmCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type VmCallerSession struct { + Contract *VmCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// VmTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type VmTransactorSession struct { + Contract *VmTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// VmRaw is an auto generated low-level Go binding around an Ethereum contract. +type VmRaw struct { + Contract *Vm // Generic contract binding to access the raw methods on +} + +// VmCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type VmCallerRaw struct { + Contract *VmCaller // Generic read-only contract binding to access the raw methods on +} + +// VmTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type VmTransactorRaw struct { + Contract *VmTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewVm creates a new instance of Vm, bound to a specific deployed contract. +func NewVm(address common.Address, backend bind.ContractBackend) (*Vm, error) { + contract, err := bindVm(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Vm{VmCaller: VmCaller{contract: contract}, VmTransactor: VmTransactor{contract: contract}, VmFilterer: VmFilterer{contract: contract}}, nil +} + +// NewVmCaller creates a new read-only instance of Vm, bound to a specific deployed contract. +func NewVmCaller(address common.Address, caller bind.ContractCaller) (*VmCaller, error) { + contract, err := bindVm(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &VmCaller{contract: contract}, nil +} + +// NewVmTransactor creates a new write-only instance of Vm, bound to a specific deployed contract. +func NewVmTransactor(address common.Address, transactor bind.ContractTransactor) (*VmTransactor, error) { + contract, err := bindVm(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &VmTransactor{contract: contract}, nil +} + +// NewVmFilterer creates a new log filterer instance of Vm, bound to a specific deployed contract. +func NewVmFilterer(address common.Address, filterer bind.ContractFilterer) (*VmFilterer, error) { + contract, err := bindVm(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &VmFilterer{contract: contract}, nil +} + +// bindVm binds a generic wrapper to an already deployed contract. +func bindVm(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := VmMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Vm *VmRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Vm.Contract.VmCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Vm *VmRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.Contract.VmTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Vm *VmRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Vm.Contract.VmTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Vm *VmCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Vm.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Vm *VmTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Vm *VmTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Vm.Contract.contract.Transact(opts, method, params...) +} + +// ActiveFork is a free data retrieval call binding the contract method 0x2f103f22. +// +// Solidity: function activeFork() view returns(uint256 forkId) +func (_Vm *VmCaller) ActiveFork(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "activeFork") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ActiveFork is a free data retrieval call binding the contract method 0x2f103f22. +// +// Solidity: function activeFork() view returns(uint256 forkId) +func (_Vm *VmSession) ActiveFork() (*big.Int, error) { + return _Vm.Contract.ActiveFork(&_Vm.CallOpts) +} + +// ActiveFork is a free data retrieval call binding the contract method 0x2f103f22. +// +// Solidity: function activeFork() view returns(uint256 forkId) +func (_Vm *VmCallerSession) ActiveFork() (*big.Int, error) { + return _Vm.Contract.ActiveFork(&_Vm.CallOpts) +} + +// Addr is a free data retrieval call binding the contract method 0xffa18649. +// +// Solidity: function addr(uint256 privateKey) pure returns(address keyAddr) +func (_Vm *VmCaller) Addr(opts *bind.CallOpts, privateKey *big.Int) (common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "addr", privateKey) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Addr is a free data retrieval call binding the contract method 0xffa18649. +// +// Solidity: function addr(uint256 privateKey) pure returns(address keyAddr) +func (_Vm *VmSession) Addr(privateKey *big.Int) (common.Address, error) { + return _Vm.Contract.Addr(&_Vm.CallOpts, privateKey) +} + +// Addr is a free data retrieval call binding the contract method 0xffa18649. +// +// Solidity: function addr(uint256 privateKey) pure returns(address keyAddr) +func (_Vm *VmCallerSession) Addr(privateKey *big.Int) (common.Address, error) { + return _Vm.Contract.Addr(&_Vm.CallOpts, privateKey) +} + +// AssertApproxEqAbs is a free data retrieval call binding the contract method 0x16d207c6. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta) pure returns() +func (_Vm *VmCaller) AssertApproxEqAbs(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqAbs", left, right, maxDelta) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbs is a free data retrieval call binding the contract method 0x16d207c6. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta) pure returns() +func (_Vm *VmSession) AssertApproxEqAbs(left *big.Int, right *big.Int, maxDelta *big.Int) error { + return _Vm.Contract.AssertApproxEqAbs(&_Vm.CallOpts, left, right, maxDelta) +} + +// AssertApproxEqAbs is a free data retrieval call binding the contract method 0x16d207c6. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqAbs(left *big.Int, right *big.Int, maxDelta *big.Int) error { + return _Vm.Contract.AssertApproxEqAbs(&_Vm.CallOpts, left, right, maxDelta) +} + +// AssertApproxEqAbs0 is a free data retrieval call binding the contract method 0x240f839d. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta) pure returns() +func (_Vm *VmCaller) AssertApproxEqAbs0(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqAbs0", left, right, maxDelta) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbs0 is a free data retrieval call binding the contract method 0x240f839d. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta) pure returns() +func (_Vm *VmSession) AssertApproxEqAbs0(left *big.Int, right *big.Int, maxDelta *big.Int) error { + return _Vm.Contract.AssertApproxEqAbs0(&_Vm.CallOpts, left, right, maxDelta) +} + +// AssertApproxEqAbs0 is a free data retrieval call binding the contract method 0x240f839d. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqAbs0(left *big.Int, right *big.Int, maxDelta *big.Int) error { + return _Vm.Contract.AssertApproxEqAbs0(&_Vm.CallOpts, left, right, maxDelta) +} + +// AssertApproxEqAbs1 is a free data retrieval call binding the contract method 0x8289e621. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta, string error) pure returns() +func (_Vm *VmCaller) AssertApproxEqAbs1(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqAbs1", left, right, maxDelta, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbs1 is a free data retrieval call binding the contract method 0x8289e621. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta, string error) pure returns() +func (_Vm *VmSession) AssertApproxEqAbs1(left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqAbs1(&_Vm.CallOpts, left, right, maxDelta, error) +} + +// AssertApproxEqAbs1 is a free data retrieval call binding the contract method 0x8289e621. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta, string error) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqAbs1(left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqAbs1(&_Vm.CallOpts, left, right, maxDelta, error) +} + +// AssertApproxEqAbs2 is a free data retrieval call binding the contract method 0xf710b062. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta, string error) pure returns() +func (_Vm *VmCaller) AssertApproxEqAbs2(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqAbs2", left, right, maxDelta, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbs2 is a free data retrieval call binding the contract method 0xf710b062. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta, string error) pure returns() +func (_Vm *VmSession) AssertApproxEqAbs2(left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqAbs2(&_Vm.CallOpts, left, right, maxDelta, error) +} + +// AssertApproxEqAbs2 is a free data retrieval call binding the contract method 0xf710b062. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta, string error) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqAbs2(left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqAbs2(&_Vm.CallOpts, left, right, maxDelta, error) +} + +// AssertApproxEqAbsDecimal is a free data retrieval call binding the contract method 0x045c55ce. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertApproxEqAbsDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqAbsDecimal", left, right, maxDelta, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbsDecimal is a free data retrieval call binding the contract method 0x045c55ce. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertApproxEqAbsDecimal(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertApproxEqAbsDecimal(&_Vm.CallOpts, left, right, maxDelta, decimals) +} + +// AssertApproxEqAbsDecimal is a free data retrieval call binding the contract method 0x045c55ce. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqAbsDecimal(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertApproxEqAbsDecimal(&_Vm.CallOpts, left, right, maxDelta, decimals) +} + +// AssertApproxEqAbsDecimal0 is a free data retrieval call binding the contract method 0x3d5bc8bc. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertApproxEqAbsDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqAbsDecimal0", left, right, maxDelta, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbsDecimal0 is a free data retrieval call binding the contract method 0x3d5bc8bc. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertApproxEqAbsDecimal0(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertApproxEqAbsDecimal0(&_Vm.CallOpts, left, right, maxDelta, decimals) +} + +// AssertApproxEqAbsDecimal0 is a free data retrieval call binding the contract method 0x3d5bc8bc. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqAbsDecimal0(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertApproxEqAbsDecimal0(&_Vm.CallOpts, left, right, maxDelta, decimals) +} + +// AssertApproxEqAbsDecimal1 is a free data retrieval call binding the contract method 0x60429eb2. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertApproxEqAbsDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqAbsDecimal1", left, right, maxDelta, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbsDecimal1 is a free data retrieval call binding the contract method 0x60429eb2. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertApproxEqAbsDecimal1(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqAbsDecimal1(&_Vm.CallOpts, left, right, maxDelta, decimals, error) +} + +// AssertApproxEqAbsDecimal1 is a free data retrieval call binding the contract method 0x60429eb2. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqAbsDecimal1(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqAbsDecimal1(&_Vm.CallOpts, left, right, maxDelta, decimals, error) +} + +// AssertApproxEqAbsDecimal2 is a free data retrieval call binding the contract method 0x6a5066d4. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertApproxEqAbsDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqAbsDecimal2", left, right, maxDelta, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbsDecimal2 is a free data retrieval call binding the contract method 0x6a5066d4. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertApproxEqAbsDecimal2(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqAbsDecimal2(&_Vm.CallOpts, left, right, maxDelta, decimals, error) +} + +// AssertApproxEqAbsDecimal2 is a free data retrieval call binding the contract method 0x6a5066d4. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqAbsDecimal2(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqAbsDecimal2(&_Vm.CallOpts, left, right, maxDelta, decimals, error) +} + +// AssertApproxEqRel is a free data retrieval call binding the contract method 0x1ecb7d33. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta, string error) pure returns() +func (_Vm *VmCaller) AssertApproxEqRel(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqRel", left, right, maxPercentDelta, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRel is a free data retrieval call binding the contract method 0x1ecb7d33. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta, string error) pure returns() +func (_Vm *VmSession) AssertApproxEqRel(left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqRel(&_Vm.CallOpts, left, right, maxPercentDelta, error) +} + +// AssertApproxEqRel is a free data retrieval call binding the contract method 0x1ecb7d33. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta, string error) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqRel(left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqRel(&_Vm.CallOpts, left, right, maxPercentDelta, error) +} + +// AssertApproxEqRel0 is a free data retrieval call binding the contract method 0x8cf25ef4. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta) pure returns() +func (_Vm *VmCaller) AssertApproxEqRel0(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqRel0", left, right, maxPercentDelta) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRel0 is a free data retrieval call binding the contract method 0x8cf25ef4. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta) pure returns() +func (_Vm *VmSession) AssertApproxEqRel0(left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + return _Vm.Contract.AssertApproxEqRel0(&_Vm.CallOpts, left, right, maxPercentDelta) +} + +// AssertApproxEqRel0 is a free data retrieval call binding the contract method 0x8cf25ef4. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqRel0(left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + return _Vm.Contract.AssertApproxEqRel0(&_Vm.CallOpts, left, right, maxPercentDelta) +} + +// AssertApproxEqRel1 is a free data retrieval call binding the contract method 0xef277d72. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta, string error) pure returns() +func (_Vm *VmCaller) AssertApproxEqRel1(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqRel1", left, right, maxPercentDelta, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRel1 is a free data retrieval call binding the contract method 0xef277d72. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta, string error) pure returns() +func (_Vm *VmSession) AssertApproxEqRel1(left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqRel1(&_Vm.CallOpts, left, right, maxPercentDelta, error) +} + +// AssertApproxEqRel1 is a free data retrieval call binding the contract method 0xef277d72. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta, string error) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqRel1(left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqRel1(&_Vm.CallOpts, left, right, maxPercentDelta, error) +} + +// AssertApproxEqRel2 is a free data retrieval call binding the contract method 0xfea2d14f. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta) pure returns() +func (_Vm *VmCaller) AssertApproxEqRel2(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqRel2", left, right, maxPercentDelta) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRel2 is a free data retrieval call binding the contract method 0xfea2d14f. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta) pure returns() +func (_Vm *VmSession) AssertApproxEqRel2(left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + return _Vm.Contract.AssertApproxEqRel2(&_Vm.CallOpts, left, right, maxPercentDelta) +} + +// AssertApproxEqRel2 is a free data retrieval call binding the contract method 0xfea2d14f. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqRel2(left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + return _Vm.Contract.AssertApproxEqRel2(&_Vm.CallOpts, left, right, maxPercentDelta) +} + +// AssertApproxEqRelDecimal is a free data retrieval call binding the contract method 0x21ed2977. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertApproxEqRelDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqRelDecimal", left, right, maxPercentDelta, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRelDecimal is a free data retrieval call binding the contract method 0x21ed2977. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertApproxEqRelDecimal(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertApproxEqRelDecimal(&_Vm.CallOpts, left, right, maxPercentDelta, decimals) +} + +// AssertApproxEqRelDecimal is a free data retrieval call binding the contract method 0x21ed2977. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqRelDecimal(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertApproxEqRelDecimal(&_Vm.CallOpts, left, right, maxPercentDelta, decimals) +} + +// AssertApproxEqRelDecimal0 is a free data retrieval call binding the contract method 0x82d6c8fd. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertApproxEqRelDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqRelDecimal0", left, right, maxPercentDelta, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRelDecimal0 is a free data retrieval call binding the contract method 0x82d6c8fd. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertApproxEqRelDecimal0(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqRelDecimal0(&_Vm.CallOpts, left, right, maxPercentDelta, decimals, error) +} + +// AssertApproxEqRelDecimal0 is a free data retrieval call binding the contract method 0x82d6c8fd. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqRelDecimal0(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqRelDecimal0(&_Vm.CallOpts, left, right, maxPercentDelta, decimals, error) +} + +// AssertApproxEqRelDecimal1 is a free data retrieval call binding the contract method 0xabbf21cc. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertApproxEqRelDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqRelDecimal1", left, right, maxPercentDelta, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRelDecimal1 is a free data retrieval call binding the contract method 0xabbf21cc. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertApproxEqRelDecimal1(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertApproxEqRelDecimal1(&_Vm.CallOpts, left, right, maxPercentDelta, decimals) +} + +// AssertApproxEqRelDecimal1 is a free data retrieval call binding the contract method 0xabbf21cc. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqRelDecimal1(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertApproxEqRelDecimal1(&_Vm.CallOpts, left, right, maxPercentDelta, decimals) +} + +// AssertApproxEqRelDecimal2 is a free data retrieval call binding the contract method 0xfccc11c4. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertApproxEqRelDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertApproxEqRelDecimal2", left, right, maxPercentDelta, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRelDecimal2 is a free data retrieval call binding the contract method 0xfccc11c4. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertApproxEqRelDecimal2(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqRelDecimal2(&_Vm.CallOpts, left, right, maxPercentDelta, decimals, error) +} + +// AssertApproxEqRelDecimal2 is a free data retrieval call binding the contract method 0xfccc11c4. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertApproxEqRelDecimal2(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertApproxEqRelDecimal2(&_Vm.CallOpts, left, right, maxPercentDelta, decimals, error) +} + +// AssertEq is a free data retrieval call binding the contract method 0x0cc9ee84. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right) pure returns() +func (_Vm *VmCaller) AssertEq(opts *bind.CallOpts, left [][32]byte, right [][32]byte) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq is a free data retrieval call binding the contract method 0x0cc9ee84. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right) pure returns() +func (_Vm *VmSession) AssertEq(left [][32]byte, right [][32]byte) error { + return _Vm.Contract.AssertEq(&_Vm.CallOpts, left, right) +} + +// AssertEq is a free data retrieval call binding the contract method 0x0cc9ee84. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right) pure returns() +func (_Vm *VmCallerSession) AssertEq(left [][32]byte, right [][32]byte) error { + return _Vm.Contract.AssertEq(&_Vm.CallOpts, left, right) +} + +// AssertEq0 is a free data retrieval call binding the contract method 0x191f1b30. +// +// Solidity: function assertEq(int256[] left, int256[] right, string error) pure returns() +func (_Vm *VmCaller) AssertEq0(opts *bind.CallOpts, left []*big.Int, right []*big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq0", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq0 is a free data retrieval call binding the contract method 0x191f1b30. +// +// Solidity: function assertEq(int256[] left, int256[] right, string error) pure returns() +func (_Vm *VmSession) AssertEq0(left []*big.Int, right []*big.Int, error string) error { + return _Vm.Contract.AssertEq0(&_Vm.CallOpts, left, right, error) +} + +// AssertEq0 is a free data retrieval call binding the contract method 0x191f1b30. +// +// Solidity: function assertEq(int256[] left, int256[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq0(left []*big.Int, right []*big.Int, error string) error { + return _Vm.Contract.AssertEq0(&_Vm.CallOpts, left, right, error) +} + +// AssertEq1 is a free data retrieval call binding the contract method 0x2f2769d1. +// +// Solidity: function assertEq(address left, address right, string error) pure returns() +func (_Vm *VmCaller) AssertEq1(opts *bind.CallOpts, left common.Address, right common.Address, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq1", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq1 is a free data retrieval call binding the contract method 0x2f2769d1. +// +// Solidity: function assertEq(address left, address right, string error) pure returns() +func (_Vm *VmSession) AssertEq1(left common.Address, right common.Address, error string) error { + return _Vm.Contract.AssertEq1(&_Vm.CallOpts, left, right, error) +} + +// AssertEq1 is a free data retrieval call binding the contract method 0x2f2769d1. +// +// Solidity: function assertEq(address left, address right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq1(left common.Address, right common.Address, error string) error { + return _Vm.Contract.AssertEq1(&_Vm.CallOpts, left, right, error) +} + +// AssertEq10 is a free data retrieval call binding the contract method 0x714a2f13. +// +// Solidity: function assertEq(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCaller) AssertEq10(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq10", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq10 is a free data retrieval call binding the contract method 0x714a2f13. +// +// Solidity: function assertEq(int256 left, int256 right, string error) pure returns() +func (_Vm *VmSession) AssertEq10(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertEq10(&_Vm.CallOpts, left, right, error) +} + +// AssertEq10 is a free data retrieval call binding the contract method 0x714a2f13. +// +// Solidity: function assertEq(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq10(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertEq10(&_Vm.CallOpts, left, right, error) +} + +// AssertEq11 is a free data retrieval call binding the contract method 0x7c84c69b. +// +// Solidity: function assertEq(bytes32 left, bytes32 right) pure returns() +func (_Vm *VmCaller) AssertEq11(opts *bind.CallOpts, left [32]byte, right [32]byte) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq11", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq11 is a free data retrieval call binding the contract method 0x7c84c69b. +// +// Solidity: function assertEq(bytes32 left, bytes32 right) pure returns() +func (_Vm *VmSession) AssertEq11(left [32]byte, right [32]byte) error { + return _Vm.Contract.AssertEq11(&_Vm.CallOpts, left, right) +} + +// AssertEq11 is a free data retrieval call binding the contract method 0x7c84c69b. +// +// Solidity: function assertEq(bytes32 left, bytes32 right) pure returns() +func (_Vm *VmCallerSession) AssertEq11(left [32]byte, right [32]byte) error { + return _Vm.Contract.AssertEq11(&_Vm.CallOpts, left, right) +} + +// AssertEq12 is a free data retrieval call binding the contract method 0x88b44c85. +// +// Solidity: function assertEq(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCaller) AssertEq12(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq12", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq12 is a free data retrieval call binding the contract method 0x88b44c85. +// +// Solidity: function assertEq(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmSession) AssertEq12(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertEq12(&_Vm.CallOpts, left, right, error) +} + +// AssertEq12 is a free data retrieval call binding the contract method 0x88b44c85. +// +// Solidity: function assertEq(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq12(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertEq12(&_Vm.CallOpts, left, right, error) +} + +// AssertEq13 is a free data retrieval call binding the contract method 0x975d5a12. +// +// Solidity: function assertEq(uint256[] left, uint256[] right) pure returns() +func (_Vm *VmCaller) AssertEq13(opts *bind.CallOpts, left []*big.Int, right []*big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq13", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq13 is a free data retrieval call binding the contract method 0x975d5a12. +// +// Solidity: function assertEq(uint256[] left, uint256[] right) pure returns() +func (_Vm *VmSession) AssertEq13(left []*big.Int, right []*big.Int) error { + return _Vm.Contract.AssertEq13(&_Vm.CallOpts, left, right) +} + +// AssertEq13 is a free data retrieval call binding the contract method 0x975d5a12. +// +// Solidity: function assertEq(uint256[] left, uint256[] right) pure returns() +func (_Vm *VmCallerSession) AssertEq13(left []*big.Int, right []*big.Int) error { + return _Vm.Contract.AssertEq13(&_Vm.CallOpts, left, right) +} + +// AssertEq14 is a free data retrieval call binding the contract method 0x97624631. +// +// Solidity: function assertEq(bytes left, bytes right) pure returns() +func (_Vm *VmCaller) AssertEq14(opts *bind.CallOpts, left []byte, right []byte) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq14", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq14 is a free data retrieval call binding the contract method 0x97624631. +// +// Solidity: function assertEq(bytes left, bytes right) pure returns() +func (_Vm *VmSession) AssertEq14(left []byte, right []byte) error { + return _Vm.Contract.AssertEq14(&_Vm.CallOpts, left, right) +} + +// AssertEq14 is a free data retrieval call binding the contract method 0x97624631. +// +// Solidity: function assertEq(bytes left, bytes right) pure returns() +func (_Vm *VmCallerSession) AssertEq14(left []byte, right []byte) error { + return _Vm.Contract.AssertEq14(&_Vm.CallOpts, left, right) +} + +// AssertEq15 is a free data retrieval call binding the contract method 0x98296c54. +// +// Solidity: function assertEq(uint256 left, uint256 right) pure returns() +func (_Vm *VmCaller) AssertEq15(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq15", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq15 is a free data retrieval call binding the contract method 0x98296c54. +// +// Solidity: function assertEq(uint256 left, uint256 right) pure returns() +func (_Vm *VmSession) AssertEq15(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertEq15(&_Vm.CallOpts, left, right) +} + +// AssertEq15 is a free data retrieval call binding the contract method 0x98296c54. +// +// Solidity: function assertEq(uint256 left, uint256 right) pure returns() +func (_Vm *VmCallerSession) AssertEq15(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertEq15(&_Vm.CallOpts, left, right) +} + +// AssertEq16 is a free data retrieval call binding the contract method 0xc1fa1ed0. +// +// Solidity: function assertEq(bytes32 left, bytes32 right, string error) pure returns() +func (_Vm *VmCaller) AssertEq16(opts *bind.CallOpts, left [32]byte, right [32]byte, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq16", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq16 is a free data retrieval call binding the contract method 0xc1fa1ed0. +// +// Solidity: function assertEq(bytes32 left, bytes32 right, string error) pure returns() +func (_Vm *VmSession) AssertEq16(left [32]byte, right [32]byte, error string) error { + return _Vm.Contract.AssertEq16(&_Vm.CallOpts, left, right, error) +} + +// AssertEq16 is a free data retrieval call binding the contract method 0xc1fa1ed0. +// +// Solidity: function assertEq(bytes32 left, bytes32 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq16(left [32]byte, right [32]byte, error string) error { + return _Vm.Contract.AssertEq16(&_Vm.CallOpts, left, right, error) +} + +// AssertEq17 is a free data retrieval call binding the contract method 0xcf1c049c. +// +// Solidity: function assertEq(string[] left, string[] right) pure returns() +func (_Vm *VmCaller) AssertEq17(opts *bind.CallOpts, left []string, right []string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq17", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq17 is a free data retrieval call binding the contract method 0xcf1c049c. +// +// Solidity: function assertEq(string[] left, string[] right) pure returns() +func (_Vm *VmSession) AssertEq17(left []string, right []string) error { + return _Vm.Contract.AssertEq17(&_Vm.CallOpts, left, right) +} + +// AssertEq17 is a free data retrieval call binding the contract method 0xcf1c049c. +// +// Solidity: function assertEq(string[] left, string[] right) pure returns() +func (_Vm *VmCallerSession) AssertEq17(left []string, right []string) error { + return _Vm.Contract.AssertEq17(&_Vm.CallOpts, left, right) +} + +// AssertEq18 is a free data retrieval call binding the contract method 0xe03e9177. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_Vm *VmCaller) AssertEq18(opts *bind.CallOpts, left [][32]byte, right [][32]byte, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq18", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq18 is a free data retrieval call binding the contract method 0xe03e9177. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_Vm *VmSession) AssertEq18(left [][32]byte, right [][32]byte, error string) error { + return _Vm.Contract.AssertEq18(&_Vm.CallOpts, left, right, error) +} + +// AssertEq18 is a free data retrieval call binding the contract method 0xe03e9177. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq18(left [][32]byte, right [][32]byte, error string) error { + return _Vm.Contract.AssertEq18(&_Vm.CallOpts, left, right, error) +} + +// AssertEq19 is a free data retrieval call binding the contract method 0xe24fed00. +// +// Solidity: function assertEq(bytes left, bytes right, string error) pure returns() +func (_Vm *VmCaller) AssertEq19(opts *bind.CallOpts, left []byte, right []byte, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq19", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq19 is a free data retrieval call binding the contract method 0xe24fed00. +// +// Solidity: function assertEq(bytes left, bytes right, string error) pure returns() +func (_Vm *VmSession) AssertEq19(left []byte, right []byte, error string) error { + return _Vm.Contract.AssertEq19(&_Vm.CallOpts, left, right, error) +} + +// AssertEq19 is a free data retrieval call binding the contract method 0xe24fed00. +// +// Solidity: function assertEq(bytes left, bytes right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq19(left []byte, right []byte, error string) error { + return _Vm.Contract.AssertEq19(&_Vm.CallOpts, left, right, error) +} + +// AssertEq2 is a free data retrieval call binding the contract method 0x36f656d8. +// +// Solidity: function assertEq(string left, string right, string error) pure returns() +func (_Vm *VmCaller) AssertEq2(opts *bind.CallOpts, left string, right string, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq2", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq2 is a free data retrieval call binding the contract method 0x36f656d8. +// +// Solidity: function assertEq(string left, string right, string error) pure returns() +func (_Vm *VmSession) AssertEq2(left string, right string, error string) error { + return _Vm.Contract.AssertEq2(&_Vm.CallOpts, left, right, error) +} + +// AssertEq2 is a free data retrieval call binding the contract method 0x36f656d8. +// +// Solidity: function assertEq(string left, string right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq2(left string, right string, error string) error { + return _Vm.Contract.AssertEq2(&_Vm.CallOpts, left, right, error) +} + +// AssertEq20 is a free data retrieval call binding the contract method 0xe48a8f8d. +// +// Solidity: function assertEq(bool[] left, bool[] right, string error) pure returns() +func (_Vm *VmCaller) AssertEq20(opts *bind.CallOpts, left []bool, right []bool, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq20", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq20 is a free data retrieval call binding the contract method 0xe48a8f8d. +// +// Solidity: function assertEq(bool[] left, bool[] right, string error) pure returns() +func (_Vm *VmSession) AssertEq20(left []bool, right []bool, error string) error { + return _Vm.Contract.AssertEq20(&_Vm.CallOpts, left, right, error) +} + +// AssertEq20 is a free data retrieval call binding the contract method 0xe48a8f8d. +// +// Solidity: function assertEq(bool[] left, bool[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq20(left []bool, right []bool, error string) error { + return _Vm.Contract.AssertEq20(&_Vm.CallOpts, left, right, error) +} + +// AssertEq21 is a free data retrieval call binding the contract method 0xe5fb9b4a. +// +// Solidity: function assertEq(bytes[] left, bytes[] right) pure returns() +func (_Vm *VmCaller) AssertEq21(opts *bind.CallOpts, left [][]byte, right [][]byte) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq21", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq21 is a free data retrieval call binding the contract method 0xe5fb9b4a. +// +// Solidity: function assertEq(bytes[] left, bytes[] right) pure returns() +func (_Vm *VmSession) AssertEq21(left [][]byte, right [][]byte) error { + return _Vm.Contract.AssertEq21(&_Vm.CallOpts, left, right) +} + +// AssertEq21 is a free data retrieval call binding the contract method 0xe5fb9b4a. +// +// Solidity: function assertEq(bytes[] left, bytes[] right) pure returns() +func (_Vm *VmCallerSession) AssertEq21(left [][]byte, right [][]byte) error { + return _Vm.Contract.AssertEq21(&_Vm.CallOpts, left, right) +} + +// AssertEq22 is a free data retrieval call binding the contract method 0xeff6b27d. +// +// Solidity: function assertEq(string[] left, string[] right, string error) pure returns() +func (_Vm *VmCaller) AssertEq22(opts *bind.CallOpts, left []string, right []string, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq22", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq22 is a free data retrieval call binding the contract method 0xeff6b27d. +// +// Solidity: function assertEq(string[] left, string[] right, string error) pure returns() +func (_Vm *VmSession) AssertEq22(left []string, right []string, error string) error { + return _Vm.Contract.AssertEq22(&_Vm.CallOpts, left, right, error) +} + +// AssertEq22 is a free data retrieval call binding the contract method 0xeff6b27d. +// +// Solidity: function assertEq(string[] left, string[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq22(left []string, right []string, error string) error { + return _Vm.Contract.AssertEq22(&_Vm.CallOpts, left, right, error) +} + +// AssertEq23 is a free data retrieval call binding the contract method 0xf320d963. +// +// Solidity: function assertEq(string left, string right) pure returns() +func (_Vm *VmCaller) AssertEq23(opts *bind.CallOpts, left string, right string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq23", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq23 is a free data retrieval call binding the contract method 0xf320d963. +// +// Solidity: function assertEq(string left, string right) pure returns() +func (_Vm *VmSession) AssertEq23(left string, right string) error { + return _Vm.Contract.AssertEq23(&_Vm.CallOpts, left, right) +} + +// AssertEq23 is a free data retrieval call binding the contract method 0xf320d963. +// +// Solidity: function assertEq(string left, string right) pure returns() +func (_Vm *VmCallerSession) AssertEq23(left string, right string) error { + return _Vm.Contract.AssertEq23(&_Vm.CallOpts, left, right) +} + +// AssertEq24 is a free data retrieval call binding the contract method 0xf413f0b6. +// +// Solidity: function assertEq(bytes[] left, bytes[] right, string error) pure returns() +func (_Vm *VmCaller) AssertEq24(opts *bind.CallOpts, left [][]byte, right [][]byte, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq24", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq24 is a free data retrieval call binding the contract method 0xf413f0b6. +// +// Solidity: function assertEq(bytes[] left, bytes[] right, string error) pure returns() +func (_Vm *VmSession) AssertEq24(left [][]byte, right [][]byte, error string) error { + return _Vm.Contract.AssertEq24(&_Vm.CallOpts, left, right, error) +} + +// AssertEq24 is a free data retrieval call binding the contract method 0xf413f0b6. +// +// Solidity: function assertEq(bytes[] left, bytes[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq24(left [][]byte, right [][]byte, error string) error { + return _Vm.Contract.AssertEq24(&_Vm.CallOpts, left, right, error) +} + +// AssertEq25 is a free data retrieval call binding the contract method 0xf7fe3477. +// +// Solidity: function assertEq(bool left, bool right) pure returns() +func (_Vm *VmCaller) AssertEq25(opts *bind.CallOpts, left bool, right bool) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq25", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq25 is a free data retrieval call binding the contract method 0xf7fe3477. +// +// Solidity: function assertEq(bool left, bool right) pure returns() +func (_Vm *VmSession) AssertEq25(left bool, right bool) error { + return _Vm.Contract.AssertEq25(&_Vm.CallOpts, left, right) +} + +// AssertEq25 is a free data retrieval call binding the contract method 0xf7fe3477. +// +// Solidity: function assertEq(bool left, bool right) pure returns() +func (_Vm *VmCallerSession) AssertEq25(left bool, right bool) error { + return _Vm.Contract.AssertEq25(&_Vm.CallOpts, left, right) +} + +// AssertEq26 is a free data retrieval call binding the contract method 0xfe74f05b. +// +// Solidity: function assertEq(int256 left, int256 right) pure returns() +func (_Vm *VmCaller) AssertEq26(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq26", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq26 is a free data retrieval call binding the contract method 0xfe74f05b. +// +// Solidity: function assertEq(int256 left, int256 right) pure returns() +func (_Vm *VmSession) AssertEq26(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertEq26(&_Vm.CallOpts, left, right) +} + +// AssertEq26 is a free data retrieval call binding the contract method 0xfe74f05b. +// +// Solidity: function assertEq(int256 left, int256 right) pure returns() +func (_Vm *VmCallerSession) AssertEq26(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertEq26(&_Vm.CallOpts, left, right) +} + +// AssertEq3 is a free data retrieval call binding the contract method 0x3868ac34. +// +// Solidity: function assertEq(address[] left, address[] right) pure returns() +func (_Vm *VmCaller) AssertEq3(opts *bind.CallOpts, left []common.Address, right []common.Address) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq3", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq3 is a free data retrieval call binding the contract method 0x3868ac34. +// +// Solidity: function assertEq(address[] left, address[] right) pure returns() +func (_Vm *VmSession) AssertEq3(left []common.Address, right []common.Address) error { + return _Vm.Contract.AssertEq3(&_Vm.CallOpts, left, right) +} + +// AssertEq3 is a free data retrieval call binding the contract method 0x3868ac34. +// +// Solidity: function assertEq(address[] left, address[] right) pure returns() +func (_Vm *VmCallerSession) AssertEq3(left []common.Address, right []common.Address) error { + return _Vm.Contract.AssertEq3(&_Vm.CallOpts, left, right) +} + +// AssertEq4 is a free data retrieval call binding the contract method 0x3e9173c5. +// +// Solidity: function assertEq(address[] left, address[] right, string error) pure returns() +func (_Vm *VmCaller) AssertEq4(opts *bind.CallOpts, left []common.Address, right []common.Address, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq4", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq4 is a free data retrieval call binding the contract method 0x3e9173c5. +// +// Solidity: function assertEq(address[] left, address[] right, string error) pure returns() +func (_Vm *VmSession) AssertEq4(left []common.Address, right []common.Address, error string) error { + return _Vm.Contract.AssertEq4(&_Vm.CallOpts, left, right, error) +} + +// AssertEq4 is a free data retrieval call binding the contract method 0x3e9173c5. +// +// Solidity: function assertEq(address[] left, address[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq4(left []common.Address, right []common.Address, error string) error { + return _Vm.Contract.AssertEq4(&_Vm.CallOpts, left, right, error) +} + +// AssertEq5 is a free data retrieval call binding the contract method 0x4db19e7e. +// +// Solidity: function assertEq(bool left, bool right, string error) pure returns() +func (_Vm *VmCaller) AssertEq5(opts *bind.CallOpts, left bool, right bool, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq5", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq5 is a free data retrieval call binding the contract method 0x4db19e7e. +// +// Solidity: function assertEq(bool left, bool right, string error) pure returns() +func (_Vm *VmSession) AssertEq5(left bool, right bool, error string) error { + return _Vm.Contract.AssertEq5(&_Vm.CallOpts, left, right, error) +} + +// AssertEq5 is a free data retrieval call binding the contract method 0x4db19e7e. +// +// Solidity: function assertEq(bool left, bool right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq5(left bool, right bool, error string) error { + return _Vm.Contract.AssertEq5(&_Vm.CallOpts, left, right, error) +} + +// AssertEq6 is a free data retrieval call binding the contract method 0x515361f6. +// +// Solidity: function assertEq(address left, address right) pure returns() +func (_Vm *VmCaller) AssertEq6(opts *bind.CallOpts, left common.Address, right common.Address) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq6", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq6 is a free data retrieval call binding the contract method 0x515361f6. +// +// Solidity: function assertEq(address left, address right) pure returns() +func (_Vm *VmSession) AssertEq6(left common.Address, right common.Address) error { + return _Vm.Contract.AssertEq6(&_Vm.CallOpts, left, right) +} + +// AssertEq6 is a free data retrieval call binding the contract method 0x515361f6. +// +// Solidity: function assertEq(address left, address right) pure returns() +func (_Vm *VmCallerSession) AssertEq6(left common.Address, right common.Address) error { + return _Vm.Contract.AssertEq6(&_Vm.CallOpts, left, right) +} + +// AssertEq7 is a free data retrieval call binding the contract method 0x5d18c73a. +// +// Solidity: function assertEq(uint256[] left, uint256[] right, string error) pure returns() +func (_Vm *VmCaller) AssertEq7(opts *bind.CallOpts, left []*big.Int, right []*big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq7", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq7 is a free data retrieval call binding the contract method 0x5d18c73a. +// +// Solidity: function assertEq(uint256[] left, uint256[] right, string error) pure returns() +func (_Vm *VmSession) AssertEq7(left []*big.Int, right []*big.Int, error string) error { + return _Vm.Contract.AssertEq7(&_Vm.CallOpts, left, right, error) +} + +// AssertEq7 is a free data retrieval call binding the contract method 0x5d18c73a. +// +// Solidity: function assertEq(uint256[] left, uint256[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertEq7(left []*big.Int, right []*big.Int, error string) error { + return _Vm.Contract.AssertEq7(&_Vm.CallOpts, left, right, error) +} + +// AssertEq8 is a free data retrieval call binding the contract method 0x707df785. +// +// Solidity: function assertEq(bool[] left, bool[] right) pure returns() +func (_Vm *VmCaller) AssertEq8(opts *bind.CallOpts, left []bool, right []bool) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq8", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq8 is a free data retrieval call binding the contract method 0x707df785. +// +// Solidity: function assertEq(bool[] left, bool[] right) pure returns() +func (_Vm *VmSession) AssertEq8(left []bool, right []bool) error { + return _Vm.Contract.AssertEq8(&_Vm.CallOpts, left, right) +} + +// AssertEq8 is a free data retrieval call binding the contract method 0x707df785. +// +// Solidity: function assertEq(bool[] left, bool[] right) pure returns() +func (_Vm *VmCallerSession) AssertEq8(left []bool, right []bool) error { + return _Vm.Contract.AssertEq8(&_Vm.CallOpts, left, right) +} + +// AssertEq9 is a free data retrieval call binding the contract method 0x711043ac. +// +// Solidity: function assertEq(int256[] left, int256[] right) pure returns() +func (_Vm *VmCaller) AssertEq9(opts *bind.CallOpts, left []*big.Int, right []*big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEq9", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq9 is a free data retrieval call binding the contract method 0x711043ac. +// +// Solidity: function assertEq(int256[] left, int256[] right) pure returns() +func (_Vm *VmSession) AssertEq9(left []*big.Int, right []*big.Int) error { + return _Vm.Contract.AssertEq9(&_Vm.CallOpts, left, right) +} + +// AssertEq9 is a free data retrieval call binding the contract method 0x711043ac. +// +// Solidity: function assertEq(int256[] left, int256[] right) pure returns() +func (_Vm *VmCallerSession) AssertEq9(left []*big.Int, right []*big.Int) error { + return _Vm.Contract.AssertEq9(&_Vm.CallOpts, left, right) +} + +// AssertEqDecimal is a free data retrieval call binding the contract method 0x27af7d9c. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertEqDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEqDecimal", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertEqDecimal is a free data retrieval call binding the contract method 0x27af7d9c. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertEqDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertEqDecimal(&_Vm.CallOpts, left, right, decimals) +} + +// AssertEqDecimal is a free data retrieval call binding the contract method 0x27af7d9c. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertEqDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertEqDecimal(&_Vm.CallOpts, left, right, decimals) +} + +// AssertEqDecimal0 is a free data retrieval call binding the contract method 0x48016c04. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertEqDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEqDecimal0", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertEqDecimal0 is a free data retrieval call binding the contract method 0x48016c04. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertEqDecimal0(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertEqDecimal0(&_Vm.CallOpts, left, right, decimals) +} + +// AssertEqDecimal0 is a free data retrieval call binding the contract method 0x48016c04. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertEqDecimal0(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertEqDecimal0(&_Vm.CallOpts, left, right, decimals) +} + +// AssertEqDecimal1 is a free data retrieval call binding the contract method 0x7e77b0c5. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertEqDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEqDecimal1", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEqDecimal1 is a free data retrieval call binding the contract method 0x7e77b0c5. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertEqDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertEqDecimal1(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertEqDecimal1 is a free data retrieval call binding the contract method 0x7e77b0c5. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertEqDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertEqDecimal1(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertEqDecimal2 is a free data retrieval call binding the contract method 0xd0cbbdef. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertEqDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertEqDecimal2", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEqDecimal2 is a free data retrieval call binding the contract method 0xd0cbbdef. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertEqDecimal2(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertEqDecimal2(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertEqDecimal2 is a free data retrieval call binding the contract method 0xd0cbbdef. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertEqDecimal2(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertEqDecimal2(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertFalse is a free data retrieval call binding the contract method 0x7ba04809. +// +// Solidity: function assertFalse(bool condition, string error) pure returns() +func (_Vm *VmCaller) AssertFalse(opts *bind.CallOpts, condition bool, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertFalse", condition, error) + + if err != nil { + return err + } + + return err + +} + +// AssertFalse is a free data retrieval call binding the contract method 0x7ba04809. +// +// Solidity: function assertFalse(bool condition, string error) pure returns() +func (_Vm *VmSession) AssertFalse(condition bool, error string) error { + return _Vm.Contract.AssertFalse(&_Vm.CallOpts, condition, error) +} + +// AssertFalse is a free data retrieval call binding the contract method 0x7ba04809. +// +// Solidity: function assertFalse(bool condition, string error) pure returns() +func (_Vm *VmCallerSession) AssertFalse(condition bool, error string) error { + return _Vm.Contract.AssertFalse(&_Vm.CallOpts, condition, error) +} + +// AssertFalse0 is a free data retrieval call binding the contract method 0xa5982885. +// +// Solidity: function assertFalse(bool condition) pure returns() +func (_Vm *VmCaller) AssertFalse0(opts *bind.CallOpts, condition bool) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertFalse0", condition) + + if err != nil { + return err + } + + return err + +} + +// AssertFalse0 is a free data retrieval call binding the contract method 0xa5982885. +// +// Solidity: function assertFalse(bool condition) pure returns() +func (_Vm *VmSession) AssertFalse0(condition bool) error { + return _Vm.Contract.AssertFalse0(&_Vm.CallOpts, condition) +} + +// AssertFalse0 is a free data retrieval call binding the contract method 0xa5982885. +// +// Solidity: function assertFalse(bool condition) pure returns() +func (_Vm *VmCallerSession) AssertFalse0(condition bool) error { + return _Vm.Contract.AssertFalse0(&_Vm.CallOpts, condition) +} + +// AssertGe is a free data retrieval call binding the contract method 0x0a30b771. +// +// Solidity: function assertGe(int256 left, int256 right) pure returns() +func (_Vm *VmCaller) AssertGe(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGe", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertGe is a free data retrieval call binding the contract method 0x0a30b771. +// +// Solidity: function assertGe(int256 left, int256 right) pure returns() +func (_Vm *VmSession) AssertGe(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertGe(&_Vm.CallOpts, left, right) +} + +// AssertGe is a free data retrieval call binding the contract method 0x0a30b771. +// +// Solidity: function assertGe(int256 left, int256 right) pure returns() +func (_Vm *VmCallerSession) AssertGe(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertGe(&_Vm.CallOpts, left, right) +} + +// AssertGe0 is a free data retrieval call binding the contract method 0xa84328dd. +// +// Solidity: function assertGe(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCaller) AssertGe0(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGe0", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGe0 is a free data retrieval call binding the contract method 0xa84328dd. +// +// Solidity: function assertGe(int256 left, int256 right, string error) pure returns() +func (_Vm *VmSession) AssertGe0(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertGe0(&_Vm.CallOpts, left, right, error) +} + +// AssertGe0 is a free data retrieval call binding the contract method 0xa84328dd. +// +// Solidity: function assertGe(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertGe0(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertGe0(&_Vm.CallOpts, left, right, error) +} + +// AssertGe1 is a free data retrieval call binding the contract method 0xa8d4d1d9. +// +// Solidity: function assertGe(uint256 left, uint256 right) pure returns() +func (_Vm *VmCaller) AssertGe1(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGe1", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertGe1 is a free data retrieval call binding the contract method 0xa8d4d1d9. +// +// Solidity: function assertGe(uint256 left, uint256 right) pure returns() +func (_Vm *VmSession) AssertGe1(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertGe1(&_Vm.CallOpts, left, right) +} + +// AssertGe1 is a free data retrieval call binding the contract method 0xa8d4d1d9. +// +// Solidity: function assertGe(uint256 left, uint256 right) pure returns() +func (_Vm *VmCallerSession) AssertGe1(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertGe1(&_Vm.CallOpts, left, right) +} + +// AssertGe2 is a free data retrieval call binding the contract method 0xe25242c0. +// +// Solidity: function assertGe(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCaller) AssertGe2(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGe2", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGe2 is a free data retrieval call binding the contract method 0xe25242c0. +// +// Solidity: function assertGe(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmSession) AssertGe2(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertGe2(&_Vm.CallOpts, left, right, error) +} + +// AssertGe2 is a free data retrieval call binding the contract method 0xe25242c0. +// +// Solidity: function assertGe(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertGe2(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertGe2(&_Vm.CallOpts, left, right, error) +} + +// AssertGeDecimal is a free data retrieval call binding the contract method 0x3d1fe08a. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertGeDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGeDecimal", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertGeDecimal is a free data retrieval call binding the contract method 0x3d1fe08a. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertGeDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertGeDecimal(&_Vm.CallOpts, left, right, decimals) +} + +// AssertGeDecimal is a free data retrieval call binding the contract method 0x3d1fe08a. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertGeDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertGeDecimal(&_Vm.CallOpts, left, right, decimals) +} + +// AssertGeDecimal0 is a free data retrieval call binding the contract method 0x5df93c9b. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertGeDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGeDecimal0", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGeDecimal0 is a free data retrieval call binding the contract method 0x5df93c9b. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertGeDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertGeDecimal0(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertGeDecimal0 is a free data retrieval call binding the contract method 0x5df93c9b. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertGeDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertGeDecimal0(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertGeDecimal1 is a free data retrieval call binding the contract method 0x8bff9133. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertGeDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGeDecimal1", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGeDecimal1 is a free data retrieval call binding the contract method 0x8bff9133. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertGeDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertGeDecimal1(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertGeDecimal1 is a free data retrieval call binding the contract method 0x8bff9133. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertGeDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertGeDecimal1(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertGeDecimal2 is a free data retrieval call binding the contract method 0xdc28c0f1. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertGeDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGeDecimal2", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertGeDecimal2 is a free data retrieval call binding the contract method 0xdc28c0f1. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertGeDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertGeDecimal2(&_Vm.CallOpts, left, right, decimals) +} + +// AssertGeDecimal2 is a free data retrieval call binding the contract method 0xdc28c0f1. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertGeDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertGeDecimal2(&_Vm.CallOpts, left, right, decimals) +} + +// AssertGt is a free data retrieval call binding the contract method 0x5a362d45. +// +// Solidity: function assertGt(int256 left, int256 right) pure returns() +func (_Vm *VmCaller) AssertGt(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGt", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertGt is a free data retrieval call binding the contract method 0x5a362d45. +// +// Solidity: function assertGt(int256 left, int256 right) pure returns() +func (_Vm *VmSession) AssertGt(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertGt(&_Vm.CallOpts, left, right) +} + +// AssertGt is a free data retrieval call binding the contract method 0x5a362d45. +// +// Solidity: function assertGt(int256 left, int256 right) pure returns() +func (_Vm *VmCallerSession) AssertGt(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertGt(&_Vm.CallOpts, left, right) +} + +// AssertGt0 is a free data retrieval call binding the contract method 0xd9a3c4d2. +// +// Solidity: function assertGt(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCaller) AssertGt0(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGt0", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGt0 is a free data retrieval call binding the contract method 0xd9a3c4d2. +// +// Solidity: function assertGt(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmSession) AssertGt0(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertGt0(&_Vm.CallOpts, left, right, error) +} + +// AssertGt0 is a free data retrieval call binding the contract method 0xd9a3c4d2. +// +// Solidity: function assertGt(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertGt0(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertGt0(&_Vm.CallOpts, left, right, error) +} + +// AssertGt1 is a free data retrieval call binding the contract method 0xdb07fcd2. +// +// Solidity: function assertGt(uint256 left, uint256 right) pure returns() +func (_Vm *VmCaller) AssertGt1(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGt1", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertGt1 is a free data retrieval call binding the contract method 0xdb07fcd2. +// +// Solidity: function assertGt(uint256 left, uint256 right) pure returns() +func (_Vm *VmSession) AssertGt1(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertGt1(&_Vm.CallOpts, left, right) +} + +// AssertGt1 is a free data retrieval call binding the contract method 0xdb07fcd2. +// +// Solidity: function assertGt(uint256 left, uint256 right) pure returns() +func (_Vm *VmCallerSession) AssertGt1(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertGt1(&_Vm.CallOpts, left, right) +} + +// AssertGt2 is a free data retrieval call binding the contract method 0xf8d33b9b. +// +// Solidity: function assertGt(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCaller) AssertGt2(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGt2", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGt2 is a free data retrieval call binding the contract method 0xf8d33b9b. +// +// Solidity: function assertGt(int256 left, int256 right, string error) pure returns() +func (_Vm *VmSession) AssertGt2(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertGt2(&_Vm.CallOpts, left, right, error) +} + +// AssertGt2 is a free data retrieval call binding the contract method 0xf8d33b9b. +// +// Solidity: function assertGt(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertGt2(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertGt2(&_Vm.CallOpts, left, right, error) +} + +// AssertGtDecimal is a free data retrieval call binding the contract method 0x04a5c7ab. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertGtDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGtDecimal", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGtDecimal is a free data retrieval call binding the contract method 0x04a5c7ab. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertGtDecimal(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertGtDecimal(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertGtDecimal is a free data retrieval call binding the contract method 0x04a5c7ab. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertGtDecimal(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertGtDecimal(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertGtDecimal0 is a free data retrieval call binding the contract method 0x64949a8d. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertGtDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGtDecimal0", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGtDecimal0 is a free data retrieval call binding the contract method 0x64949a8d. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertGtDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertGtDecimal0(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertGtDecimal0 is a free data retrieval call binding the contract method 0x64949a8d. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertGtDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertGtDecimal0(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertGtDecimal1 is a free data retrieval call binding the contract method 0x78611f0e. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertGtDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGtDecimal1", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertGtDecimal1 is a free data retrieval call binding the contract method 0x78611f0e. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertGtDecimal1(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertGtDecimal1(&_Vm.CallOpts, left, right, decimals) +} + +// AssertGtDecimal1 is a free data retrieval call binding the contract method 0x78611f0e. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertGtDecimal1(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertGtDecimal1(&_Vm.CallOpts, left, right, decimals) +} + +// AssertGtDecimal2 is a free data retrieval call binding the contract method 0xeccd2437. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertGtDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertGtDecimal2", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertGtDecimal2 is a free data retrieval call binding the contract method 0xeccd2437. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertGtDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertGtDecimal2(&_Vm.CallOpts, left, right, decimals) +} + +// AssertGtDecimal2 is a free data retrieval call binding the contract method 0xeccd2437. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertGtDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertGtDecimal2(&_Vm.CallOpts, left, right, decimals) +} + +// AssertLe is a free data retrieval call binding the contract method 0x4dfe692c. +// +// Solidity: function assertLe(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCaller) AssertLe(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLe", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLe is a free data retrieval call binding the contract method 0x4dfe692c. +// +// Solidity: function assertLe(int256 left, int256 right, string error) pure returns() +func (_Vm *VmSession) AssertLe(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertLe(&_Vm.CallOpts, left, right, error) +} + +// AssertLe is a free data retrieval call binding the contract method 0x4dfe692c. +// +// Solidity: function assertLe(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertLe(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertLe(&_Vm.CallOpts, left, right, error) +} + +// AssertLe0 is a free data retrieval call binding the contract method 0x8466f415. +// +// Solidity: function assertLe(uint256 left, uint256 right) pure returns() +func (_Vm *VmCaller) AssertLe0(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLe0", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertLe0 is a free data retrieval call binding the contract method 0x8466f415. +// +// Solidity: function assertLe(uint256 left, uint256 right) pure returns() +func (_Vm *VmSession) AssertLe0(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertLe0(&_Vm.CallOpts, left, right) +} + +// AssertLe0 is a free data retrieval call binding the contract method 0x8466f415. +// +// Solidity: function assertLe(uint256 left, uint256 right) pure returns() +func (_Vm *VmCallerSession) AssertLe0(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertLe0(&_Vm.CallOpts, left, right) +} + +// AssertLe1 is a free data retrieval call binding the contract method 0x95fd154e. +// +// Solidity: function assertLe(int256 left, int256 right) pure returns() +func (_Vm *VmCaller) AssertLe1(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLe1", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertLe1 is a free data retrieval call binding the contract method 0x95fd154e. +// +// Solidity: function assertLe(int256 left, int256 right) pure returns() +func (_Vm *VmSession) AssertLe1(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertLe1(&_Vm.CallOpts, left, right) +} + +// AssertLe1 is a free data retrieval call binding the contract method 0x95fd154e. +// +// Solidity: function assertLe(int256 left, int256 right) pure returns() +func (_Vm *VmCallerSession) AssertLe1(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertLe1(&_Vm.CallOpts, left, right) +} + +// AssertLe2 is a free data retrieval call binding the contract method 0xd17d4b0d. +// +// Solidity: function assertLe(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCaller) AssertLe2(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLe2", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLe2 is a free data retrieval call binding the contract method 0xd17d4b0d. +// +// Solidity: function assertLe(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmSession) AssertLe2(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertLe2(&_Vm.CallOpts, left, right, error) +} + +// AssertLe2 is a free data retrieval call binding the contract method 0xd17d4b0d. +// +// Solidity: function assertLe(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertLe2(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertLe2(&_Vm.CallOpts, left, right, error) +} + +// AssertLeDecimal is a free data retrieval call binding the contract method 0x11d1364a. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertLeDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLeDecimal", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertLeDecimal is a free data retrieval call binding the contract method 0x11d1364a. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertLeDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertLeDecimal(&_Vm.CallOpts, left, right, decimals) +} + +// AssertLeDecimal is a free data retrieval call binding the contract method 0x11d1364a. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertLeDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertLeDecimal(&_Vm.CallOpts, left, right, decimals) +} + +// AssertLeDecimal0 is a free data retrieval call binding the contract method 0x7fefbbe0. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertLeDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLeDecimal0", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLeDecimal0 is a free data retrieval call binding the contract method 0x7fefbbe0. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertLeDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertLeDecimal0(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertLeDecimal0 is a free data retrieval call binding the contract method 0x7fefbbe0. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertLeDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertLeDecimal0(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertLeDecimal1 is a free data retrieval call binding the contract method 0xaa5cf788. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertLeDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLeDecimal1", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLeDecimal1 is a free data retrieval call binding the contract method 0xaa5cf788. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertLeDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertLeDecimal1(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertLeDecimal1 is a free data retrieval call binding the contract method 0xaa5cf788. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertLeDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertLeDecimal1(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertLeDecimal2 is a free data retrieval call binding the contract method 0xc304aab7. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertLeDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLeDecimal2", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertLeDecimal2 is a free data retrieval call binding the contract method 0xc304aab7. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertLeDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertLeDecimal2(&_Vm.CallOpts, left, right, decimals) +} + +// AssertLeDecimal2 is a free data retrieval call binding the contract method 0xc304aab7. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertLeDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertLeDecimal2(&_Vm.CallOpts, left, right, decimals) +} + +// AssertLt is a free data retrieval call binding the contract method 0x3e914080. +// +// Solidity: function assertLt(int256 left, int256 right) pure returns() +func (_Vm *VmCaller) AssertLt(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLt", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertLt is a free data retrieval call binding the contract method 0x3e914080. +// +// Solidity: function assertLt(int256 left, int256 right) pure returns() +func (_Vm *VmSession) AssertLt(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertLt(&_Vm.CallOpts, left, right) +} + +// AssertLt is a free data retrieval call binding the contract method 0x3e914080. +// +// Solidity: function assertLt(int256 left, int256 right) pure returns() +func (_Vm *VmCallerSession) AssertLt(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertLt(&_Vm.CallOpts, left, right) +} + +// AssertLt0 is a free data retrieval call binding the contract method 0x65d5c135. +// +// Solidity: function assertLt(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCaller) AssertLt0(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLt0", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLt0 is a free data retrieval call binding the contract method 0x65d5c135. +// +// Solidity: function assertLt(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmSession) AssertLt0(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertLt0(&_Vm.CallOpts, left, right, error) +} + +// AssertLt0 is a free data retrieval call binding the contract method 0x65d5c135. +// +// Solidity: function assertLt(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertLt0(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertLt0(&_Vm.CallOpts, left, right, error) +} + +// AssertLt1 is a free data retrieval call binding the contract method 0x9ff531e3. +// +// Solidity: function assertLt(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCaller) AssertLt1(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLt1", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLt1 is a free data retrieval call binding the contract method 0x9ff531e3. +// +// Solidity: function assertLt(int256 left, int256 right, string error) pure returns() +func (_Vm *VmSession) AssertLt1(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertLt1(&_Vm.CallOpts, left, right, error) +} + +// AssertLt1 is a free data retrieval call binding the contract method 0x9ff531e3. +// +// Solidity: function assertLt(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertLt1(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertLt1(&_Vm.CallOpts, left, right, error) +} + +// AssertLt2 is a free data retrieval call binding the contract method 0xb12fc005. +// +// Solidity: function assertLt(uint256 left, uint256 right) pure returns() +func (_Vm *VmCaller) AssertLt2(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLt2", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertLt2 is a free data retrieval call binding the contract method 0xb12fc005. +// +// Solidity: function assertLt(uint256 left, uint256 right) pure returns() +func (_Vm *VmSession) AssertLt2(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertLt2(&_Vm.CallOpts, left, right) +} + +// AssertLt2 is a free data retrieval call binding the contract method 0xb12fc005. +// +// Solidity: function assertLt(uint256 left, uint256 right) pure returns() +func (_Vm *VmCallerSession) AssertLt2(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertLt2(&_Vm.CallOpts, left, right) +} + +// AssertLtDecimal is a free data retrieval call binding the contract method 0x2077337e. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertLtDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLtDecimal", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertLtDecimal is a free data retrieval call binding the contract method 0x2077337e. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertLtDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertLtDecimal(&_Vm.CallOpts, left, right, decimals) +} + +// AssertLtDecimal is a free data retrieval call binding the contract method 0x2077337e. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertLtDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertLtDecimal(&_Vm.CallOpts, left, right, decimals) +} + +// AssertLtDecimal0 is a free data retrieval call binding the contract method 0x40f0b4e0. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertLtDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLtDecimal0", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLtDecimal0 is a free data retrieval call binding the contract method 0x40f0b4e0. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertLtDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertLtDecimal0(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertLtDecimal0 is a free data retrieval call binding the contract method 0x40f0b4e0. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertLtDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertLtDecimal0(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertLtDecimal1 is a free data retrieval call binding the contract method 0xa972d037. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertLtDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLtDecimal1", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLtDecimal1 is a free data retrieval call binding the contract method 0xa972d037. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertLtDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertLtDecimal1(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertLtDecimal1 is a free data retrieval call binding the contract method 0xa972d037. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertLtDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertLtDecimal1(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertLtDecimal2 is a free data retrieval call binding the contract method 0xdbe8d88b. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertLtDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertLtDecimal2", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertLtDecimal2 is a free data retrieval call binding the contract method 0xdbe8d88b. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertLtDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertLtDecimal2(&_Vm.CallOpts, left, right, decimals) +} + +// AssertLtDecimal2 is a free data retrieval call binding the contract method 0xdbe8d88b. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertLtDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertLtDecimal2(&_Vm.CallOpts, left, right, decimals) +} + +// AssertNotEq is a free data retrieval call binding the contract method 0x0603ea68. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right) pure returns() +func (_Vm *VmCaller) AssertNotEq(opts *bind.CallOpts, left [][32]byte, right [][32]byte) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq is a free data retrieval call binding the contract method 0x0603ea68. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right) pure returns() +func (_Vm *VmSession) AssertNotEq(left [][32]byte, right [][32]byte) error { + return _Vm.Contract.AssertNotEq(&_Vm.CallOpts, left, right) +} + +// AssertNotEq is a free data retrieval call binding the contract method 0x0603ea68. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq(left [][32]byte, right [][32]byte) error { + return _Vm.Contract.AssertNotEq(&_Vm.CallOpts, left, right) +} + +// AssertNotEq0 is a free data retrieval call binding the contract method 0x0b72f4ef. +// +// Solidity: function assertNotEq(int256[] left, int256[] right) pure returns() +func (_Vm *VmCaller) AssertNotEq0(opts *bind.CallOpts, left []*big.Int, right []*big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq0", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq0 is a free data retrieval call binding the contract method 0x0b72f4ef. +// +// Solidity: function assertNotEq(int256[] left, int256[] right) pure returns() +func (_Vm *VmSession) AssertNotEq0(left []*big.Int, right []*big.Int) error { + return _Vm.Contract.AssertNotEq0(&_Vm.CallOpts, left, right) +} + +// AssertNotEq0 is a free data retrieval call binding the contract method 0x0b72f4ef. +// +// Solidity: function assertNotEq(int256[] left, int256[] right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq0(left []*big.Int, right []*big.Int) error { + return _Vm.Contract.AssertNotEq0(&_Vm.CallOpts, left, right) +} + +// AssertNotEq1 is a free data retrieval call binding the contract method 0x1091a261. +// +// Solidity: function assertNotEq(bool left, bool right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq1(opts *bind.CallOpts, left bool, right bool, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq1", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq1 is a free data retrieval call binding the contract method 0x1091a261. +// +// Solidity: function assertNotEq(bool left, bool right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq1(left bool, right bool, error string) error { + return _Vm.Contract.AssertNotEq1(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq1 is a free data retrieval call binding the contract method 0x1091a261. +// +// Solidity: function assertNotEq(bool left, bool right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq1(left bool, right bool, error string) error { + return _Vm.Contract.AssertNotEq1(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq10 is a free data retrieval call binding the contract method 0x6a8237b3. +// +// Solidity: function assertNotEq(string left, string right) pure returns() +func (_Vm *VmCaller) AssertNotEq10(opts *bind.CallOpts, left string, right string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq10", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq10 is a free data retrieval call binding the contract method 0x6a8237b3. +// +// Solidity: function assertNotEq(string left, string right) pure returns() +func (_Vm *VmSession) AssertNotEq10(left string, right string) error { + return _Vm.Contract.AssertNotEq10(&_Vm.CallOpts, left, right) +} + +// AssertNotEq10 is a free data retrieval call binding the contract method 0x6a8237b3. +// +// Solidity: function assertNotEq(string left, string right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq10(left string, right string) error { + return _Vm.Contract.AssertNotEq10(&_Vm.CallOpts, left, right) +} + +// AssertNotEq11 is a free data retrieval call binding the contract method 0x72c7e0b5. +// +// Solidity: function assertNotEq(address[] left, address[] right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq11(opts *bind.CallOpts, left []common.Address, right []common.Address, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq11", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq11 is a free data retrieval call binding the contract method 0x72c7e0b5. +// +// Solidity: function assertNotEq(address[] left, address[] right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq11(left []common.Address, right []common.Address, error string) error { + return _Vm.Contract.AssertNotEq11(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq11 is a free data retrieval call binding the contract method 0x72c7e0b5. +// +// Solidity: function assertNotEq(address[] left, address[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq11(left []common.Address, right []common.Address, error string) error { + return _Vm.Contract.AssertNotEq11(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq12 is a free data retrieval call binding the contract method 0x78bdcea7. +// +// Solidity: function assertNotEq(string left, string right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq12(opts *bind.CallOpts, left string, right string, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq12", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq12 is a free data retrieval call binding the contract method 0x78bdcea7. +// +// Solidity: function assertNotEq(string left, string right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq12(left string, right string, error string) error { + return _Vm.Contract.AssertNotEq12(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq12 is a free data retrieval call binding the contract method 0x78bdcea7. +// +// Solidity: function assertNotEq(string left, string right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq12(left string, right string, error string) error { + return _Vm.Contract.AssertNotEq12(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq13 is a free data retrieval call binding the contract method 0x8775a591. +// +// Solidity: function assertNotEq(address left, address right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq13(opts *bind.CallOpts, left common.Address, right common.Address, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq13", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq13 is a free data retrieval call binding the contract method 0x8775a591. +// +// Solidity: function assertNotEq(address left, address right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq13(left common.Address, right common.Address, error string) error { + return _Vm.Contract.AssertNotEq13(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq13 is a free data retrieval call binding the contract method 0x8775a591. +// +// Solidity: function assertNotEq(address left, address right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq13(left common.Address, right common.Address, error string) error { + return _Vm.Contract.AssertNotEq13(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq14 is a free data retrieval call binding the contract method 0x898e83fc. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right) pure returns() +func (_Vm *VmCaller) AssertNotEq14(opts *bind.CallOpts, left [32]byte, right [32]byte) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq14", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq14 is a free data retrieval call binding the contract method 0x898e83fc. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right) pure returns() +func (_Vm *VmSession) AssertNotEq14(left [32]byte, right [32]byte) error { + return _Vm.Contract.AssertNotEq14(&_Vm.CallOpts, left, right) +} + +// AssertNotEq14 is a free data retrieval call binding the contract method 0x898e83fc. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq14(left [32]byte, right [32]byte) error { + return _Vm.Contract.AssertNotEq14(&_Vm.CallOpts, left, right) +} + +// AssertNotEq15 is a free data retrieval call binding the contract method 0x9507540e. +// +// Solidity: function assertNotEq(bytes left, bytes right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq15(opts *bind.CallOpts, left []byte, right []byte, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq15", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq15 is a free data retrieval call binding the contract method 0x9507540e. +// +// Solidity: function assertNotEq(bytes left, bytes right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq15(left []byte, right []byte, error string) error { + return _Vm.Contract.AssertNotEq15(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq15 is a free data retrieval call binding the contract method 0x9507540e. +// +// Solidity: function assertNotEq(bytes left, bytes right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq15(left []byte, right []byte, error string) error { + return _Vm.Contract.AssertNotEq15(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq16 is a free data retrieval call binding the contract method 0x98f9bdbd. +// +// Solidity: function assertNotEq(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq16(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq16", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq16 is a free data retrieval call binding the contract method 0x98f9bdbd. +// +// Solidity: function assertNotEq(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq16(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertNotEq16(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq16 is a free data retrieval call binding the contract method 0x98f9bdbd. +// +// Solidity: function assertNotEq(uint256 left, uint256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq16(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertNotEq16(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq17 is a free data retrieval call binding the contract method 0x9a7fbd8f. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq17(opts *bind.CallOpts, left []*big.Int, right []*big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq17", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq17 is a free data retrieval call binding the contract method 0x9a7fbd8f. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq17(left []*big.Int, right []*big.Int, error string) error { + return _Vm.Contract.AssertNotEq17(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq17 is a free data retrieval call binding the contract method 0x9a7fbd8f. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq17(left []*big.Int, right []*big.Int, error string) error { + return _Vm.Contract.AssertNotEq17(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq18 is a free data retrieval call binding the contract method 0xb12e1694. +// +// Solidity: function assertNotEq(address left, address right) pure returns() +func (_Vm *VmCaller) AssertNotEq18(opts *bind.CallOpts, left common.Address, right common.Address) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq18", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq18 is a free data retrieval call binding the contract method 0xb12e1694. +// +// Solidity: function assertNotEq(address left, address right) pure returns() +func (_Vm *VmSession) AssertNotEq18(left common.Address, right common.Address) error { + return _Vm.Contract.AssertNotEq18(&_Vm.CallOpts, left, right) +} + +// AssertNotEq18 is a free data retrieval call binding the contract method 0xb12e1694. +// +// Solidity: function assertNotEq(address left, address right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq18(left common.Address, right common.Address) error { + return _Vm.Contract.AssertNotEq18(&_Vm.CallOpts, left, right) +} + +// AssertNotEq19 is a free data retrieval call binding the contract method 0xb2332f51. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq19(opts *bind.CallOpts, left [32]byte, right [32]byte, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq19", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq19 is a free data retrieval call binding the contract method 0xb2332f51. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq19(left [32]byte, right [32]byte, error string) error { + return _Vm.Contract.AssertNotEq19(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq19 is a free data retrieval call binding the contract method 0xb2332f51. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq19(left [32]byte, right [32]byte, error string) error { + return _Vm.Contract.AssertNotEq19(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq2 is a free data retrieval call binding the contract method 0x1dcd1f68. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq2(opts *bind.CallOpts, left [][]byte, right [][]byte, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq2", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq2 is a free data retrieval call binding the contract method 0x1dcd1f68. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq2(left [][]byte, right [][]byte, error string) error { + return _Vm.Contract.AssertNotEq2(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq2 is a free data retrieval call binding the contract method 0x1dcd1f68. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq2(left [][]byte, right [][]byte, error string) error { + return _Vm.Contract.AssertNotEq2(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq20 is a free data retrieval call binding the contract method 0xb67187f3. +// +// Solidity: function assertNotEq(string[] left, string[] right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq20(opts *bind.CallOpts, left []string, right []string, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq20", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq20 is a free data retrieval call binding the contract method 0xb67187f3. +// +// Solidity: function assertNotEq(string[] left, string[] right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq20(left []string, right []string, error string) error { + return _Vm.Contract.AssertNotEq20(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq20 is a free data retrieval call binding the contract method 0xb67187f3. +// +// Solidity: function assertNotEq(string[] left, string[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq20(left []string, right []string, error string) error { + return _Vm.Contract.AssertNotEq20(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq21 is a free data retrieval call binding the contract method 0xb7909320. +// +// Solidity: function assertNotEq(uint256 left, uint256 right) pure returns() +func (_Vm *VmCaller) AssertNotEq21(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq21", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq21 is a free data retrieval call binding the contract method 0xb7909320. +// +// Solidity: function assertNotEq(uint256 left, uint256 right) pure returns() +func (_Vm *VmSession) AssertNotEq21(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertNotEq21(&_Vm.CallOpts, left, right) +} + +// AssertNotEq21 is a free data retrieval call binding the contract method 0xb7909320. +// +// Solidity: function assertNotEq(uint256 left, uint256 right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq21(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertNotEq21(&_Vm.CallOpts, left, right) +} + +// AssertNotEq22 is a free data retrieval call binding the contract method 0xb873634c. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq22(opts *bind.CallOpts, left [][32]byte, right [][32]byte, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq22", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq22 is a free data retrieval call binding the contract method 0xb873634c. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq22(left [][32]byte, right [][32]byte, error string) error { + return _Vm.Contract.AssertNotEq22(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq22 is a free data retrieval call binding the contract method 0xb873634c. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq22(left [][32]byte, right [][32]byte, error string) error { + return _Vm.Contract.AssertNotEq22(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq23 is a free data retrieval call binding the contract method 0xbdfacbe8. +// +// Solidity: function assertNotEq(string[] left, string[] right) pure returns() +func (_Vm *VmCaller) AssertNotEq23(opts *bind.CallOpts, left []string, right []string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq23", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq23 is a free data retrieval call binding the contract method 0xbdfacbe8. +// +// Solidity: function assertNotEq(string[] left, string[] right) pure returns() +func (_Vm *VmSession) AssertNotEq23(left []string, right []string) error { + return _Vm.Contract.AssertNotEq23(&_Vm.CallOpts, left, right) +} + +// AssertNotEq23 is a free data retrieval call binding the contract method 0xbdfacbe8. +// +// Solidity: function assertNotEq(string[] left, string[] right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq23(left []string, right []string) error { + return _Vm.Contract.AssertNotEq23(&_Vm.CallOpts, left, right) +} + +// AssertNotEq24 is a free data retrieval call binding the contract method 0xd3977322. +// +// Solidity: function assertNotEq(int256[] left, int256[] right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq24(opts *bind.CallOpts, left []*big.Int, right []*big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq24", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq24 is a free data retrieval call binding the contract method 0xd3977322. +// +// Solidity: function assertNotEq(int256[] left, int256[] right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq24(left []*big.Int, right []*big.Int, error string) error { + return _Vm.Contract.AssertNotEq24(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq24 is a free data retrieval call binding the contract method 0xd3977322. +// +// Solidity: function assertNotEq(int256[] left, int256[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq24(left []*big.Int, right []*big.Int, error string) error { + return _Vm.Contract.AssertNotEq24(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq25 is a free data retrieval call binding the contract method 0xedecd035. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right) pure returns() +func (_Vm *VmCaller) AssertNotEq25(opts *bind.CallOpts, left [][]byte, right [][]byte) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq25", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq25 is a free data retrieval call binding the contract method 0xedecd035. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right) pure returns() +func (_Vm *VmSession) AssertNotEq25(left [][]byte, right [][]byte) error { + return _Vm.Contract.AssertNotEq25(&_Vm.CallOpts, left, right) +} + +// AssertNotEq25 is a free data retrieval call binding the contract method 0xedecd035. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq25(left [][]byte, right [][]byte) error { + return _Vm.Contract.AssertNotEq25(&_Vm.CallOpts, left, right) +} + +// AssertNotEq26 is a free data retrieval call binding the contract method 0xf4c004e3. +// +// Solidity: function assertNotEq(int256 left, int256 right) pure returns() +func (_Vm *VmCaller) AssertNotEq26(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq26", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq26 is a free data retrieval call binding the contract method 0xf4c004e3. +// +// Solidity: function assertNotEq(int256 left, int256 right) pure returns() +func (_Vm *VmSession) AssertNotEq26(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertNotEq26(&_Vm.CallOpts, left, right) +} + +// AssertNotEq26 is a free data retrieval call binding the contract method 0xf4c004e3. +// +// Solidity: function assertNotEq(int256 left, int256 right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq26(left *big.Int, right *big.Int) error { + return _Vm.Contract.AssertNotEq26(&_Vm.CallOpts, left, right) +} + +// AssertNotEq3 is a free data retrieval call binding the contract method 0x236e4d66. +// +// Solidity: function assertNotEq(bool left, bool right) pure returns() +func (_Vm *VmCaller) AssertNotEq3(opts *bind.CallOpts, left bool, right bool) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq3", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq3 is a free data retrieval call binding the contract method 0x236e4d66. +// +// Solidity: function assertNotEq(bool left, bool right) pure returns() +func (_Vm *VmSession) AssertNotEq3(left bool, right bool) error { + return _Vm.Contract.AssertNotEq3(&_Vm.CallOpts, left, right) +} + +// AssertNotEq3 is a free data retrieval call binding the contract method 0x236e4d66. +// +// Solidity: function assertNotEq(bool left, bool right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq3(left bool, right bool) error { + return _Vm.Contract.AssertNotEq3(&_Vm.CallOpts, left, right) +} + +// AssertNotEq4 is a free data retrieval call binding the contract method 0x286fafea. +// +// Solidity: function assertNotEq(bool[] left, bool[] right) pure returns() +func (_Vm *VmCaller) AssertNotEq4(opts *bind.CallOpts, left []bool, right []bool) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq4", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq4 is a free data retrieval call binding the contract method 0x286fafea. +// +// Solidity: function assertNotEq(bool[] left, bool[] right) pure returns() +func (_Vm *VmSession) AssertNotEq4(left []bool, right []bool) error { + return _Vm.Contract.AssertNotEq4(&_Vm.CallOpts, left, right) +} + +// AssertNotEq4 is a free data retrieval call binding the contract method 0x286fafea. +// +// Solidity: function assertNotEq(bool[] left, bool[] right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq4(left []bool, right []bool) error { + return _Vm.Contract.AssertNotEq4(&_Vm.CallOpts, left, right) +} + +// AssertNotEq5 is a free data retrieval call binding the contract method 0x3cf78e28. +// +// Solidity: function assertNotEq(bytes left, bytes right) pure returns() +func (_Vm *VmCaller) AssertNotEq5(opts *bind.CallOpts, left []byte, right []byte) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq5", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq5 is a free data retrieval call binding the contract method 0x3cf78e28. +// +// Solidity: function assertNotEq(bytes left, bytes right) pure returns() +func (_Vm *VmSession) AssertNotEq5(left []byte, right []byte) error { + return _Vm.Contract.AssertNotEq5(&_Vm.CallOpts, left, right) +} + +// AssertNotEq5 is a free data retrieval call binding the contract method 0x3cf78e28. +// +// Solidity: function assertNotEq(bytes left, bytes right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq5(left []byte, right []byte) error { + return _Vm.Contract.AssertNotEq5(&_Vm.CallOpts, left, right) +} + +// AssertNotEq6 is a free data retrieval call binding the contract method 0x46d0b252. +// +// Solidity: function assertNotEq(address[] left, address[] right) pure returns() +func (_Vm *VmCaller) AssertNotEq6(opts *bind.CallOpts, left []common.Address, right []common.Address) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq6", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq6 is a free data retrieval call binding the contract method 0x46d0b252. +// +// Solidity: function assertNotEq(address[] left, address[] right) pure returns() +func (_Vm *VmSession) AssertNotEq6(left []common.Address, right []common.Address) error { + return _Vm.Contract.AssertNotEq6(&_Vm.CallOpts, left, right) +} + +// AssertNotEq6 is a free data retrieval call binding the contract method 0x46d0b252. +// +// Solidity: function assertNotEq(address[] left, address[] right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq6(left []common.Address, right []common.Address) error { + return _Vm.Contract.AssertNotEq6(&_Vm.CallOpts, left, right) +} + +// AssertNotEq7 is a free data retrieval call binding the contract method 0x4724c5b9. +// +// Solidity: function assertNotEq(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq7(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq7", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq7 is a free data retrieval call binding the contract method 0x4724c5b9. +// +// Solidity: function assertNotEq(int256 left, int256 right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq7(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertNotEq7(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq7 is a free data retrieval call binding the contract method 0x4724c5b9. +// +// Solidity: function assertNotEq(int256 left, int256 right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq7(left *big.Int, right *big.Int, error string) error { + return _Vm.Contract.AssertNotEq7(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq8 is a free data retrieval call binding the contract method 0x56f29cba. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right) pure returns() +func (_Vm *VmCaller) AssertNotEq8(opts *bind.CallOpts, left []*big.Int, right []*big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq8", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq8 is a free data retrieval call binding the contract method 0x56f29cba. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right) pure returns() +func (_Vm *VmSession) AssertNotEq8(left []*big.Int, right []*big.Int) error { + return _Vm.Contract.AssertNotEq8(&_Vm.CallOpts, left, right) +} + +// AssertNotEq8 is a free data retrieval call binding the contract method 0x56f29cba. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right) pure returns() +func (_Vm *VmCallerSession) AssertNotEq8(left []*big.Int, right []*big.Int) error { + return _Vm.Contract.AssertNotEq8(&_Vm.CallOpts, left, right) +} + +// AssertNotEq9 is a free data retrieval call binding the contract method 0x62c6f9fb. +// +// Solidity: function assertNotEq(bool[] left, bool[] right, string error) pure returns() +func (_Vm *VmCaller) AssertNotEq9(opts *bind.CallOpts, left []bool, right []bool, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEq9", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq9 is a free data retrieval call binding the contract method 0x62c6f9fb. +// +// Solidity: function assertNotEq(bool[] left, bool[] right, string error) pure returns() +func (_Vm *VmSession) AssertNotEq9(left []bool, right []bool, error string) error { + return _Vm.Contract.AssertNotEq9(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEq9 is a free data retrieval call binding the contract method 0x62c6f9fb. +// +// Solidity: function assertNotEq(bool[] left, bool[] right, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEq9(left []bool, right []bool, error string) error { + return _Vm.Contract.AssertNotEq9(&_Vm.CallOpts, left, right, error) +} + +// AssertNotEqDecimal is a free data retrieval call binding the contract method 0x14e75680. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertNotEqDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEqDecimal", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEqDecimal is a free data retrieval call binding the contract method 0x14e75680. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertNotEqDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertNotEqDecimal(&_Vm.CallOpts, left, right, decimals) +} + +// AssertNotEqDecimal is a free data retrieval call binding the contract method 0x14e75680. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertNotEqDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertNotEqDecimal(&_Vm.CallOpts, left, right, decimals) +} + +// AssertNotEqDecimal0 is a free data retrieval call binding the contract method 0x33949f0b. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertNotEqDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEqDecimal0", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEqDecimal0 is a free data retrieval call binding the contract method 0x33949f0b. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertNotEqDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertNotEqDecimal0(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertNotEqDecimal0 is a free data retrieval call binding the contract method 0x33949f0b. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEqDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertNotEqDecimal0(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertNotEqDecimal1 is a free data retrieval call binding the contract method 0x669efca7. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCaller) AssertNotEqDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEqDecimal1", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEqDecimal1 is a free data retrieval call binding the contract method 0x669efca7. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmSession) AssertNotEqDecimal1(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertNotEqDecimal1(&_Vm.CallOpts, left, right, decimals) +} + +// AssertNotEqDecimal1 is a free data retrieval call binding the contract method 0x669efca7. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_Vm *VmCallerSession) AssertNotEqDecimal1(left *big.Int, right *big.Int, decimals *big.Int) error { + return _Vm.Contract.AssertNotEqDecimal1(&_Vm.CallOpts, left, right, decimals) +} + +// AssertNotEqDecimal2 is a free data retrieval call binding the contract method 0xf5a55558. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCaller) AssertNotEqDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertNotEqDecimal2", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEqDecimal2 is a free data retrieval call binding the contract method 0xf5a55558. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmSession) AssertNotEqDecimal2(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertNotEqDecimal2(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertNotEqDecimal2 is a free data retrieval call binding the contract method 0xf5a55558. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_Vm *VmCallerSession) AssertNotEqDecimal2(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _Vm.Contract.AssertNotEqDecimal2(&_Vm.CallOpts, left, right, decimals, error) +} + +// AssertTrue is a free data retrieval call binding the contract method 0x0c9fd581. +// +// Solidity: function assertTrue(bool condition) pure returns() +func (_Vm *VmCaller) AssertTrue(opts *bind.CallOpts, condition bool) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertTrue", condition) + + if err != nil { + return err + } + + return err + +} + +// AssertTrue is a free data retrieval call binding the contract method 0x0c9fd581. +// +// Solidity: function assertTrue(bool condition) pure returns() +func (_Vm *VmSession) AssertTrue(condition bool) error { + return _Vm.Contract.AssertTrue(&_Vm.CallOpts, condition) +} + +// AssertTrue is a free data retrieval call binding the contract method 0x0c9fd581. +// +// Solidity: function assertTrue(bool condition) pure returns() +func (_Vm *VmCallerSession) AssertTrue(condition bool) error { + return _Vm.Contract.AssertTrue(&_Vm.CallOpts, condition) +} + +// AssertTrue0 is a free data retrieval call binding the contract method 0xa34edc03. +// +// Solidity: function assertTrue(bool condition, string error) pure returns() +func (_Vm *VmCaller) AssertTrue0(opts *bind.CallOpts, condition bool, error string) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assertTrue0", condition, error) + + if err != nil { + return err + } + + return err + +} + +// AssertTrue0 is a free data retrieval call binding the contract method 0xa34edc03. +// +// Solidity: function assertTrue(bool condition, string error) pure returns() +func (_Vm *VmSession) AssertTrue0(condition bool, error string) error { + return _Vm.Contract.AssertTrue0(&_Vm.CallOpts, condition, error) +} + +// AssertTrue0 is a free data retrieval call binding the contract method 0xa34edc03. +// +// Solidity: function assertTrue(bool condition, string error) pure returns() +func (_Vm *VmCallerSession) AssertTrue0(condition bool, error string) error { + return _Vm.Contract.AssertTrue0(&_Vm.CallOpts, condition, error) +} + +// Assume is a free data retrieval call binding the contract method 0x4c63e562. +// +// Solidity: function assume(bool condition) pure returns() +func (_Vm *VmCaller) Assume(opts *bind.CallOpts, condition bool) error { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "assume", condition) + + if err != nil { + return err + } + + return err + +} + +// Assume is a free data retrieval call binding the contract method 0x4c63e562. +// +// Solidity: function assume(bool condition) pure returns() +func (_Vm *VmSession) Assume(condition bool) error { + return _Vm.Contract.Assume(&_Vm.CallOpts, condition) +} + +// Assume is a free data retrieval call binding the contract method 0x4c63e562. +// +// Solidity: function assume(bool condition) pure returns() +func (_Vm *VmCallerSession) Assume(condition bool) error { + return _Vm.Contract.Assume(&_Vm.CallOpts, condition) +} + +// ComputeCreate2Address is a free data retrieval call binding the contract method 0x890c283b. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash) pure returns(address) +func (_Vm *VmCaller) ComputeCreate2Address(opts *bind.CallOpts, salt [32]byte, initCodeHash [32]byte) (common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "computeCreate2Address", salt, initCodeHash) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ComputeCreate2Address is a free data retrieval call binding the contract method 0x890c283b. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash) pure returns(address) +func (_Vm *VmSession) ComputeCreate2Address(salt [32]byte, initCodeHash [32]byte) (common.Address, error) { + return _Vm.Contract.ComputeCreate2Address(&_Vm.CallOpts, salt, initCodeHash) +} + +// ComputeCreate2Address is a free data retrieval call binding the contract method 0x890c283b. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash) pure returns(address) +func (_Vm *VmCallerSession) ComputeCreate2Address(salt [32]byte, initCodeHash [32]byte) (common.Address, error) { + return _Vm.Contract.ComputeCreate2Address(&_Vm.CallOpts, salt, initCodeHash) +} + +// ComputeCreate2Address0 is a free data retrieval call binding the contract method 0xd323826a. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash, address deployer) pure returns(address) +func (_Vm *VmCaller) ComputeCreate2Address0(opts *bind.CallOpts, salt [32]byte, initCodeHash [32]byte, deployer common.Address) (common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "computeCreate2Address0", salt, initCodeHash, deployer) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ComputeCreate2Address0 is a free data retrieval call binding the contract method 0xd323826a. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash, address deployer) pure returns(address) +func (_Vm *VmSession) ComputeCreate2Address0(salt [32]byte, initCodeHash [32]byte, deployer common.Address) (common.Address, error) { + return _Vm.Contract.ComputeCreate2Address0(&_Vm.CallOpts, salt, initCodeHash, deployer) +} + +// ComputeCreate2Address0 is a free data retrieval call binding the contract method 0xd323826a. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash, address deployer) pure returns(address) +func (_Vm *VmCallerSession) ComputeCreate2Address0(salt [32]byte, initCodeHash [32]byte, deployer common.Address) (common.Address, error) { + return _Vm.Contract.ComputeCreate2Address0(&_Vm.CallOpts, salt, initCodeHash, deployer) +} + +// ComputeCreateAddress is a free data retrieval call binding the contract method 0x74637a7a. +// +// Solidity: function computeCreateAddress(address deployer, uint256 nonce) pure returns(address) +func (_Vm *VmCaller) ComputeCreateAddress(opts *bind.CallOpts, deployer common.Address, nonce *big.Int) (common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "computeCreateAddress", deployer, nonce) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ComputeCreateAddress is a free data retrieval call binding the contract method 0x74637a7a. +// +// Solidity: function computeCreateAddress(address deployer, uint256 nonce) pure returns(address) +func (_Vm *VmSession) ComputeCreateAddress(deployer common.Address, nonce *big.Int) (common.Address, error) { + return _Vm.Contract.ComputeCreateAddress(&_Vm.CallOpts, deployer, nonce) +} + +// ComputeCreateAddress is a free data retrieval call binding the contract method 0x74637a7a. +// +// Solidity: function computeCreateAddress(address deployer, uint256 nonce) pure returns(address) +func (_Vm *VmCallerSession) ComputeCreateAddress(deployer common.Address, nonce *big.Int) (common.Address, error) { + return _Vm.Contract.ComputeCreateAddress(&_Vm.CallOpts, deployer, nonce) +} + +// DeriveKey is a free data retrieval call binding the contract method 0x29233b1f. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index, string language) pure returns(uint256 privateKey) +func (_Vm *VmCaller) DeriveKey(opts *bind.CallOpts, mnemonic string, derivationPath string, index uint32, language string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "deriveKey", mnemonic, derivationPath, index, language) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// DeriveKey is a free data retrieval call binding the contract method 0x29233b1f. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index, string language) pure returns(uint256 privateKey) +func (_Vm *VmSession) DeriveKey(mnemonic string, derivationPath string, index uint32, language string) (*big.Int, error) { + return _Vm.Contract.DeriveKey(&_Vm.CallOpts, mnemonic, derivationPath, index, language) +} + +// DeriveKey is a free data retrieval call binding the contract method 0x29233b1f. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index, string language) pure returns(uint256 privateKey) +func (_Vm *VmCallerSession) DeriveKey(mnemonic string, derivationPath string, index uint32, language string) (*big.Int, error) { + return _Vm.Contract.DeriveKey(&_Vm.CallOpts, mnemonic, derivationPath, index, language) +} + +// DeriveKey0 is a free data retrieval call binding the contract method 0x32c8176d. +// +// Solidity: function deriveKey(string mnemonic, uint32 index, string language) pure returns(uint256 privateKey) +func (_Vm *VmCaller) DeriveKey0(opts *bind.CallOpts, mnemonic string, index uint32, language string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "deriveKey0", mnemonic, index, language) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// DeriveKey0 is a free data retrieval call binding the contract method 0x32c8176d. +// +// Solidity: function deriveKey(string mnemonic, uint32 index, string language) pure returns(uint256 privateKey) +func (_Vm *VmSession) DeriveKey0(mnemonic string, index uint32, language string) (*big.Int, error) { + return _Vm.Contract.DeriveKey0(&_Vm.CallOpts, mnemonic, index, language) +} + +// DeriveKey0 is a free data retrieval call binding the contract method 0x32c8176d. +// +// Solidity: function deriveKey(string mnemonic, uint32 index, string language) pure returns(uint256 privateKey) +func (_Vm *VmCallerSession) DeriveKey0(mnemonic string, index uint32, language string) (*big.Int, error) { + return _Vm.Contract.DeriveKey0(&_Vm.CallOpts, mnemonic, index, language) +} + +// DeriveKey1 is a free data retrieval call binding the contract method 0x6229498b. +// +// Solidity: function deriveKey(string mnemonic, uint32 index) pure returns(uint256 privateKey) +func (_Vm *VmCaller) DeriveKey1(opts *bind.CallOpts, mnemonic string, index uint32) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "deriveKey1", mnemonic, index) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// DeriveKey1 is a free data retrieval call binding the contract method 0x6229498b. +// +// Solidity: function deriveKey(string mnemonic, uint32 index) pure returns(uint256 privateKey) +func (_Vm *VmSession) DeriveKey1(mnemonic string, index uint32) (*big.Int, error) { + return _Vm.Contract.DeriveKey1(&_Vm.CallOpts, mnemonic, index) +} + +// DeriveKey1 is a free data retrieval call binding the contract method 0x6229498b. +// +// Solidity: function deriveKey(string mnemonic, uint32 index) pure returns(uint256 privateKey) +func (_Vm *VmCallerSession) DeriveKey1(mnemonic string, index uint32) (*big.Int, error) { + return _Vm.Contract.DeriveKey1(&_Vm.CallOpts, mnemonic, index) +} + +// DeriveKey2 is a free data retrieval call binding the contract method 0x6bcb2c1b. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index) pure returns(uint256 privateKey) +func (_Vm *VmCaller) DeriveKey2(opts *bind.CallOpts, mnemonic string, derivationPath string, index uint32) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "deriveKey2", mnemonic, derivationPath, index) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// DeriveKey2 is a free data retrieval call binding the contract method 0x6bcb2c1b. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index) pure returns(uint256 privateKey) +func (_Vm *VmSession) DeriveKey2(mnemonic string, derivationPath string, index uint32) (*big.Int, error) { + return _Vm.Contract.DeriveKey2(&_Vm.CallOpts, mnemonic, derivationPath, index) +} + +// DeriveKey2 is a free data retrieval call binding the contract method 0x6bcb2c1b. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index) pure returns(uint256 privateKey) +func (_Vm *VmCallerSession) DeriveKey2(mnemonic string, derivationPath string, index uint32) (*big.Int, error) { + return _Vm.Contract.DeriveKey2(&_Vm.CallOpts, mnemonic, derivationPath, index) +} + +// EnsNamehash is a free data retrieval call binding the contract method 0x8c374c65. +// +// Solidity: function ensNamehash(string name) pure returns(bytes32) +func (_Vm *VmCaller) EnsNamehash(opts *bind.CallOpts, name string) ([32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "ensNamehash", name) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// EnsNamehash is a free data retrieval call binding the contract method 0x8c374c65. +// +// Solidity: function ensNamehash(string name) pure returns(bytes32) +func (_Vm *VmSession) EnsNamehash(name string) ([32]byte, error) { + return _Vm.Contract.EnsNamehash(&_Vm.CallOpts, name) +} + +// EnsNamehash is a free data retrieval call binding the contract method 0x8c374c65. +// +// Solidity: function ensNamehash(string name) pure returns(bytes32) +func (_Vm *VmCallerSession) EnsNamehash(name string) ([32]byte, error) { + return _Vm.Contract.EnsNamehash(&_Vm.CallOpts, name) +} + +// EnvAddress is a free data retrieval call binding the contract method 0x350d56bf. +// +// Solidity: function envAddress(string name) view returns(address value) +func (_Vm *VmCaller) EnvAddress(opts *bind.CallOpts, name string) (common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envAddress", name) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EnvAddress is a free data retrieval call binding the contract method 0x350d56bf. +// +// Solidity: function envAddress(string name) view returns(address value) +func (_Vm *VmSession) EnvAddress(name string) (common.Address, error) { + return _Vm.Contract.EnvAddress(&_Vm.CallOpts, name) +} + +// EnvAddress is a free data retrieval call binding the contract method 0x350d56bf. +// +// Solidity: function envAddress(string name) view returns(address value) +func (_Vm *VmCallerSession) EnvAddress(name string) (common.Address, error) { + return _Vm.Contract.EnvAddress(&_Vm.CallOpts, name) +} + +// EnvAddress0 is a free data retrieval call binding the contract method 0xad31b9fa. +// +// Solidity: function envAddress(string name, string delim) view returns(address[] value) +func (_Vm *VmCaller) EnvAddress0(opts *bind.CallOpts, name string, delim string) ([]common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envAddress0", name, delim) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// EnvAddress0 is a free data retrieval call binding the contract method 0xad31b9fa. +// +// Solidity: function envAddress(string name, string delim) view returns(address[] value) +func (_Vm *VmSession) EnvAddress0(name string, delim string) ([]common.Address, error) { + return _Vm.Contract.EnvAddress0(&_Vm.CallOpts, name, delim) +} + +// EnvAddress0 is a free data retrieval call binding the contract method 0xad31b9fa. +// +// Solidity: function envAddress(string name, string delim) view returns(address[] value) +func (_Vm *VmCallerSession) EnvAddress0(name string, delim string) ([]common.Address, error) { + return _Vm.Contract.EnvAddress0(&_Vm.CallOpts, name, delim) +} + +// EnvBool is a free data retrieval call binding the contract method 0x7ed1ec7d. +// +// Solidity: function envBool(string name) view returns(bool value) +func (_Vm *VmCaller) EnvBool(opts *bind.CallOpts, name string) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envBool", name) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// EnvBool is a free data retrieval call binding the contract method 0x7ed1ec7d. +// +// Solidity: function envBool(string name) view returns(bool value) +func (_Vm *VmSession) EnvBool(name string) (bool, error) { + return _Vm.Contract.EnvBool(&_Vm.CallOpts, name) +} + +// EnvBool is a free data retrieval call binding the contract method 0x7ed1ec7d. +// +// Solidity: function envBool(string name) view returns(bool value) +func (_Vm *VmCallerSession) EnvBool(name string) (bool, error) { + return _Vm.Contract.EnvBool(&_Vm.CallOpts, name) +} + +// EnvBool0 is a free data retrieval call binding the contract method 0xaaaddeaf. +// +// Solidity: function envBool(string name, string delim) view returns(bool[] value) +func (_Vm *VmCaller) EnvBool0(opts *bind.CallOpts, name string, delim string) ([]bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envBool0", name, delim) + + if err != nil { + return *new([]bool), err + } + + out0 := *abi.ConvertType(out[0], new([]bool)).(*[]bool) + + return out0, err + +} + +// EnvBool0 is a free data retrieval call binding the contract method 0xaaaddeaf. +// +// Solidity: function envBool(string name, string delim) view returns(bool[] value) +func (_Vm *VmSession) EnvBool0(name string, delim string) ([]bool, error) { + return _Vm.Contract.EnvBool0(&_Vm.CallOpts, name, delim) +} + +// EnvBool0 is a free data retrieval call binding the contract method 0xaaaddeaf. +// +// Solidity: function envBool(string name, string delim) view returns(bool[] value) +func (_Vm *VmCallerSession) EnvBool0(name string, delim string) ([]bool, error) { + return _Vm.Contract.EnvBool0(&_Vm.CallOpts, name, delim) +} + +// EnvBytes is a free data retrieval call binding the contract method 0x4d7baf06. +// +// Solidity: function envBytes(string name) view returns(bytes value) +func (_Vm *VmCaller) EnvBytes(opts *bind.CallOpts, name string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envBytes", name) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// EnvBytes is a free data retrieval call binding the contract method 0x4d7baf06. +// +// Solidity: function envBytes(string name) view returns(bytes value) +func (_Vm *VmSession) EnvBytes(name string) ([]byte, error) { + return _Vm.Contract.EnvBytes(&_Vm.CallOpts, name) +} + +// EnvBytes is a free data retrieval call binding the contract method 0x4d7baf06. +// +// Solidity: function envBytes(string name) view returns(bytes value) +func (_Vm *VmCallerSession) EnvBytes(name string) ([]byte, error) { + return _Vm.Contract.EnvBytes(&_Vm.CallOpts, name) +} + +// EnvBytes0 is a free data retrieval call binding the contract method 0xddc2651b. +// +// Solidity: function envBytes(string name, string delim) view returns(bytes[] value) +func (_Vm *VmCaller) EnvBytes0(opts *bind.CallOpts, name string, delim string) ([][]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envBytes0", name, delim) + + if err != nil { + return *new([][]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][]byte)).(*[][]byte) + + return out0, err + +} + +// EnvBytes0 is a free data retrieval call binding the contract method 0xddc2651b. +// +// Solidity: function envBytes(string name, string delim) view returns(bytes[] value) +func (_Vm *VmSession) EnvBytes0(name string, delim string) ([][]byte, error) { + return _Vm.Contract.EnvBytes0(&_Vm.CallOpts, name, delim) +} + +// EnvBytes0 is a free data retrieval call binding the contract method 0xddc2651b. +// +// Solidity: function envBytes(string name, string delim) view returns(bytes[] value) +func (_Vm *VmCallerSession) EnvBytes0(name string, delim string) ([][]byte, error) { + return _Vm.Contract.EnvBytes0(&_Vm.CallOpts, name, delim) +} + +// EnvBytes32 is a free data retrieval call binding the contract method 0x5af231c1. +// +// Solidity: function envBytes32(string name, string delim) view returns(bytes32[] value) +func (_Vm *VmCaller) EnvBytes32(opts *bind.CallOpts, name string, delim string) ([][32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envBytes32", name, delim) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// EnvBytes32 is a free data retrieval call binding the contract method 0x5af231c1. +// +// Solidity: function envBytes32(string name, string delim) view returns(bytes32[] value) +func (_Vm *VmSession) EnvBytes32(name string, delim string) ([][32]byte, error) { + return _Vm.Contract.EnvBytes32(&_Vm.CallOpts, name, delim) +} + +// EnvBytes32 is a free data retrieval call binding the contract method 0x5af231c1. +// +// Solidity: function envBytes32(string name, string delim) view returns(bytes32[] value) +func (_Vm *VmCallerSession) EnvBytes32(name string, delim string) ([][32]byte, error) { + return _Vm.Contract.EnvBytes32(&_Vm.CallOpts, name, delim) +} + +// EnvBytes320 is a free data retrieval call binding the contract method 0x97949042. +// +// Solidity: function envBytes32(string name) view returns(bytes32 value) +func (_Vm *VmCaller) EnvBytes320(opts *bind.CallOpts, name string) ([32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envBytes320", name) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// EnvBytes320 is a free data retrieval call binding the contract method 0x97949042. +// +// Solidity: function envBytes32(string name) view returns(bytes32 value) +func (_Vm *VmSession) EnvBytes320(name string) ([32]byte, error) { + return _Vm.Contract.EnvBytes320(&_Vm.CallOpts, name) +} + +// EnvBytes320 is a free data retrieval call binding the contract method 0x97949042. +// +// Solidity: function envBytes32(string name) view returns(bytes32 value) +func (_Vm *VmCallerSession) EnvBytes320(name string) ([32]byte, error) { + return _Vm.Contract.EnvBytes320(&_Vm.CallOpts, name) +} + +// EnvExists is a free data retrieval call binding the contract method 0xce8365f9. +// +// Solidity: function envExists(string name) view returns(bool result) +func (_Vm *VmCaller) EnvExists(opts *bind.CallOpts, name string) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envExists", name) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// EnvExists is a free data retrieval call binding the contract method 0xce8365f9. +// +// Solidity: function envExists(string name) view returns(bool result) +func (_Vm *VmSession) EnvExists(name string) (bool, error) { + return _Vm.Contract.EnvExists(&_Vm.CallOpts, name) +} + +// EnvExists is a free data retrieval call binding the contract method 0xce8365f9. +// +// Solidity: function envExists(string name) view returns(bool result) +func (_Vm *VmCallerSession) EnvExists(name string) (bool, error) { + return _Vm.Contract.EnvExists(&_Vm.CallOpts, name) +} + +// EnvInt is a free data retrieval call binding the contract method 0x42181150. +// +// Solidity: function envInt(string name, string delim) view returns(int256[] value) +func (_Vm *VmCaller) EnvInt(opts *bind.CallOpts, name string, delim string) ([]*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envInt", name, delim) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// EnvInt is a free data retrieval call binding the contract method 0x42181150. +// +// Solidity: function envInt(string name, string delim) view returns(int256[] value) +func (_Vm *VmSession) EnvInt(name string, delim string) ([]*big.Int, error) { + return _Vm.Contract.EnvInt(&_Vm.CallOpts, name, delim) +} + +// EnvInt is a free data retrieval call binding the contract method 0x42181150. +// +// Solidity: function envInt(string name, string delim) view returns(int256[] value) +func (_Vm *VmCallerSession) EnvInt(name string, delim string) ([]*big.Int, error) { + return _Vm.Contract.EnvInt(&_Vm.CallOpts, name, delim) +} + +// EnvInt0 is a free data retrieval call binding the contract method 0x892a0c61. +// +// Solidity: function envInt(string name) view returns(int256 value) +func (_Vm *VmCaller) EnvInt0(opts *bind.CallOpts, name string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envInt0", name) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EnvInt0 is a free data retrieval call binding the contract method 0x892a0c61. +// +// Solidity: function envInt(string name) view returns(int256 value) +func (_Vm *VmSession) EnvInt0(name string) (*big.Int, error) { + return _Vm.Contract.EnvInt0(&_Vm.CallOpts, name) +} + +// EnvInt0 is a free data retrieval call binding the contract method 0x892a0c61. +// +// Solidity: function envInt(string name) view returns(int256 value) +func (_Vm *VmCallerSession) EnvInt0(name string) (*big.Int, error) { + return _Vm.Contract.EnvInt0(&_Vm.CallOpts, name) +} + +// EnvOr is a free data retrieval call binding the contract method 0x2281f367. +// +// Solidity: function envOr(string name, string delim, bytes32[] defaultValue) view returns(bytes32[] value) +func (_Vm *VmCaller) EnvOr(opts *bind.CallOpts, name string, delim string, defaultValue [][32]byte) ([][32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr", name, delim, defaultValue) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// EnvOr is a free data retrieval call binding the contract method 0x2281f367. +// +// Solidity: function envOr(string name, string delim, bytes32[] defaultValue) view returns(bytes32[] value) +func (_Vm *VmSession) EnvOr(name string, delim string, defaultValue [][32]byte) ([][32]byte, error) { + return _Vm.Contract.EnvOr(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr is a free data retrieval call binding the contract method 0x2281f367. +// +// Solidity: function envOr(string name, string delim, bytes32[] defaultValue) view returns(bytes32[] value) +func (_Vm *VmCallerSession) EnvOr(name string, delim string, defaultValue [][32]byte) ([][32]byte, error) { + return _Vm.Contract.EnvOr(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr0 is a free data retrieval call binding the contract method 0x4700d74b. +// +// Solidity: function envOr(string name, string delim, int256[] defaultValue) view returns(int256[] value) +func (_Vm *VmCaller) EnvOr0(opts *bind.CallOpts, name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr0", name, delim, defaultValue) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// EnvOr0 is a free data retrieval call binding the contract method 0x4700d74b. +// +// Solidity: function envOr(string name, string delim, int256[] defaultValue) view returns(int256[] value) +func (_Vm *VmSession) EnvOr0(name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + return _Vm.Contract.EnvOr0(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr0 is a free data retrieval call binding the contract method 0x4700d74b. +// +// Solidity: function envOr(string name, string delim, int256[] defaultValue) view returns(int256[] value) +func (_Vm *VmCallerSession) EnvOr0(name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + return _Vm.Contract.EnvOr0(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr1 is a free data retrieval call binding the contract method 0x4777f3cf. +// +// Solidity: function envOr(string name, bool defaultValue) view returns(bool value) +func (_Vm *VmCaller) EnvOr1(opts *bind.CallOpts, name string, defaultValue bool) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr1", name, defaultValue) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// EnvOr1 is a free data retrieval call binding the contract method 0x4777f3cf. +// +// Solidity: function envOr(string name, bool defaultValue) view returns(bool value) +func (_Vm *VmSession) EnvOr1(name string, defaultValue bool) (bool, error) { + return _Vm.Contract.EnvOr1(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr1 is a free data retrieval call binding the contract method 0x4777f3cf. +// +// Solidity: function envOr(string name, bool defaultValue) view returns(bool value) +func (_Vm *VmCallerSession) EnvOr1(name string, defaultValue bool) (bool, error) { + return _Vm.Contract.EnvOr1(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr10 is a free data retrieval call binding the contract method 0xc74e9deb. +// +// Solidity: function envOr(string name, string delim, address[] defaultValue) view returns(address[] value) +func (_Vm *VmCaller) EnvOr10(opts *bind.CallOpts, name string, delim string, defaultValue []common.Address) ([]common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr10", name, delim, defaultValue) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// EnvOr10 is a free data retrieval call binding the contract method 0xc74e9deb. +// +// Solidity: function envOr(string name, string delim, address[] defaultValue) view returns(address[] value) +func (_Vm *VmSession) EnvOr10(name string, delim string, defaultValue []common.Address) ([]common.Address, error) { + return _Vm.Contract.EnvOr10(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr10 is a free data retrieval call binding the contract method 0xc74e9deb. +// +// Solidity: function envOr(string name, string delim, address[] defaultValue) view returns(address[] value) +func (_Vm *VmCallerSession) EnvOr10(name string, delim string, defaultValue []common.Address) ([]common.Address, error) { + return _Vm.Contract.EnvOr10(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr11 is a free data retrieval call binding the contract method 0xd145736c. +// +// Solidity: function envOr(string name, string defaultValue) view returns(string value) +func (_Vm *VmCaller) EnvOr11(opts *bind.CallOpts, name string, defaultValue string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr11", name, defaultValue) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// EnvOr11 is a free data retrieval call binding the contract method 0xd145736c. +// +// Solidity: function envOr(string name, string defaultValue) view returns(string value) +func (_Vm *VmSession) EnvOr11(name string, defaultValue string) (string, error) { + return _Vm.Contract.EnvOr11(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr11 is a free data retrieval call binding the contract method 0xd145736c. +// +// Solidity: function envOr(string name, string defaultValue) view returns(string value) +func (_Vm *VmCallerSession) EnvOr11(name string, defaultValue string) (string, error) { + return _Vm.Contract.EnvOr11(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr12 is a free data retrieval call binding the contract method 0xeb85e83b. +// +// Solidity: function envOr(string name, string delim, bool[] defaultValue) view returns(bool[] value) +func (_Vm *VmCaller) EnvOr12(opts *bind.CallOpts, name string, delim string, defaultValue []bool) ([]bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr12", name, delim, defaultValue) + + if err != nil { + return *new([]bool), err + } + + out0 := *abi.ConvertType(out[0], new([]bool)).(*[]bool) + + return out0, err + +} + +// EnvOr12 is a free data retrieval call binding the contract method 0xeb85e83b. +// +// Solidity: function envOr(string name, string delim, bool[] defaultValue) view returns(bool[] value) +func (_Vm *VmSession) EnvOr12(name string, delim string, defaultValue []bool) ([]bool, error) { + return _Vm.Contract.EnvOr12(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr12 is a free data retrieval call binding the contract method 0xeb85e83b. +// +// Solidity: function envOr(string name, string delim, bool[] defaultValue) view returns(bool[] value) +func (_Vm *VmCallerSession) EnvOr12(name string, delim string, defaultValue []bool) ([]bool, error) { + return _Vm.Contract.EnvOr12(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr2 is a free data retrieval call binding the contract method 0x561fe540. +// +// Solidity: function envOr(string name, address defaultValue) view returns(address value) +func (_Vm *VmCaller) EnvOr2(opts *bind.CallOpts, name string, defaultValue common.Address) (common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr2", name, defaultValue) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EnvOr2 is a free data retrieval call binding the contract method 0x561fe540. +// +// Solidity: function envOr(string name, address defaultValue) view returns(address value) +func (_Vm *VmSession) EnvOr2(name string, defaultValue common.Address) (common.Address, error) { + return _Vm.Contract.EnvOr2(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr2 is a free data retrieval call binding the contract method 0x561fe540. +// +// Solidity: function envOr(string name, address defaultValue) view returns(address value) +func (_Vm *VmCallerSession) EnvOr2(name string, defaultValue common.Address) (common.Address, error) { + return _Vm.Contract.EnvOr2(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr3 is a free data retrieval call binding the contract method 0x5e97348f. +// +// Solidity: function envOr(string name, uint256 defaultValue) view returns(uint256 value) +func (_Vm *VmCaller) EnvOr3(opts *bind.CallOpts, name string, defaultValue *big.Int) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr3", name, defaultValue) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EnvOr3 is a free data retrieval call binding the contract method 0x5e97348f. +// +// Solidity: function envOr(string name, uint256 defaultValue) view returns(uint256 value) +func (_Vm *VmSession) EnvOr3(name string, defaultValue *big.Int) (*big.Int, error) { + return _Vm.Contract.EnvOr3(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr3 is a free data retrieval call binding the contract method 0x5e97348f. +// +// Solidity: function envOr(string name, uint256 defaultValue) view returns(uint256 value) +func (_Vm *VmCallerSession) EnvOr3(name string, defaultValue *big.Int) (*big.Int, error) { + return _Vm.Contract.EnvOr3(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr4 is a free data retrieval call binding the contract method 0x64bc3e64. +// +// Solidity: function envOr(string name, string delim, bytes[] defaultValue) view returns(bytes[] value) +func (_Vm *VmCaller) EnvOr4(opts *bind.CallOpts, name string, delim string, defaultValue [][]byte) ([][]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr4", name, delim, defaultValue) + + if err != nil { + return *new([][]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][]byte)).(*[][]byte) + + return out0, err + +} + +// EnvOr4 is a free data retrieval call binding the contract method 0x64bc3e64. +// +// Solidity: function envOr(string name, string delim, bytes[] defaultValue) view returns(bytes[] value) +func (_Vm *VmSession) EnvOr4(name string, delim string, defaultValue [][]byte) ([][]byte, error) { + return _Vm.Contract.EnvOr4(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr4 is a free data retrieval call binding the contract method 0x64bc3e64. +// +// Solidity: function envOr(string name, string delim, bytes[] defaultValue) view returns(bytes[] value) +func (_Vm *VmCallerSession) EnvOr4(name string, delim string, defaultValue [][]byte) ([][]byte, error) { + return _Vm.Contract.EnvOr4(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr5 is a free data retrieval call binding the contract method 0x74318528. +// +// Solidity: function envOr(string name, string delim, uint256[] defaultValue) view returns(uint256[] value) +func (_Vm *VmCaller) EnvOr5(opts *bind.CallOpts, name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr5", name, delim, defaultValue) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// EnvOr5 is a free data retrieval call binding the contract method 0x74318528. +// +// Solidity: function envOr(string name, string delim, uint256[] defaultValue) view returns(uint256[] value) +func (_Vm *VmSession) EnvOr5(name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + return _Vm.Contract.EnvOr5(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr5 is a free data retrieval call binding the contract method 0x74318528. +// +// Solidity: function envOr(string name, string delim, uint256[] defaultValue) view returns(uint256[] value) +func (_Vm *VmCallerSession) EnvOr5(name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + return _Vm.Contract.EnvOr5(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr6 is a free data retrieval call binding the contract method 0x859216bc. +// +// Solidity: function envOr(string name, string delim, string[] defaultValue) view returns(string[] value) +func (_Vm *VmCaller) EnvOr6(opts *bind.CallOpts, name string, delim string, defaultValue []string) ([]string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr6", name, delim, defaultValue) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// EnvOr6 is a free data retrieval call binding the contract method 0x859216bc. +// +// Solidity: function envOr(string name, string delim, string[] defaultValue) view returns(string[] value) +func (_Vm *VmSession) EnvOr6(name string, delim string, defaultValue []string) ([]string, error) { + return _Vm.Contract.EnvOr6(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr6 is a free data retrieval call binding the contract method 0x859216bc. +// +// Solidity: function envOr(string name, string delim, string[] defaultValue) view returns(string[] value) +func (_Vm *VmCallerSession) EnvOr6(name string, delim string, defaultValue []string) ([]string, error) { + return _Vm.Contract.EnvOr6(&_Vm.CallOpts, name, delim, defaultValue) +} + +// EnvOr7 is a free data retrieval call binding the contract method 0xb3e47705. +// +// Solidity: function envOr(string name, bytes defaultValue) view returns(bytes value) +func (_Vm *VmCaller) EnvOr7(opts *bind.CallOpts, name string, defaultValue []byte) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr7", name, defaultValue) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// EnvOr7 is a free data retrieval call binding the contract method 0xb3e47705. +// +// Solidity: function envOr(string name, bytes defaultValue) view returns(bytes value) +func (_Vm *VmSession) EnvOr7(name string, defaultValue []byte) ([]byte, error) { + return _Vm.Contract.EnvOr7(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr7 is a free data retrieval call binding the contract method 0xb3e47705. +// +// Solidity: function envOr(string name, bytes defaultValue) view returns(bytes value) +func (_Vm *VmCallerSession) EnvOr7(name string, defaultValue []byte) ([]byte, error) { + return _Vm.Contract.EnvOr7(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr8 is a free data retrieval call binding the contract method 0xb4a85892. +// +// Solidity: function envOr(string name, bytes32 defaultValue) view returns(bytes32 value) +func (_Vm *VmCaller) EnvOr8(opts *bind.CallOpts, name string, defaultValue [32]byte) ([32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr8", name, defaultValue) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// EnvOr8 is a free data retrieval call binding the contract method 0xb4a85892. +// +// Solidity: function envOr(string name, bytes32 defaultValue) view returns(bytes32 value) +func (_Vm *VmSession) EnvOr8(name string, defaultValue [32]byte) ([32]byte, error) { + return _Vm.Contract.EnvOr8(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr8 is a free data retrieval call binding the contract method 0xb4a85892. +// +// Solidity: function envOr(string name, bytes32 defaultValue) view returns(bytes32 value) +func (_Vm *VmCallerSession) EnvOr8(name string, defaultValue [32]byte) ([32]byte, error) { + return _Vm.Contract.EnvOr8(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr9 is a free data retrieval call binding the contract method 0xbbcb713e. +// +// Solidity: function envOr(string name, int256 defaultValue) view returns(int256 value) +func (_Vm *VmCaller) EnvOr9(opts *bind.CallOpts, name string, defaultValue *big.Int) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envOr9", name, defaultValue) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EnvOr9 is a free data retrieval call binding the contract method 0xbbcb713e. +// +// Solidity: function envOr(string name, int256 defaultValue) view returns(int256 value) +func (_Vm *VmSession) EnvOr9(name string, defaultValue *big.Int) (*big.Int, error) { + return _Vm.Contract.EnvOr9(&_Vm.CallOpts, name, defaultValue) +} + +// EnvOr9 is a free data retrieval call binding the contract method 0xbbcb713e. +// +// Solidity: function envOr(string name, int256 defaultValue) view returns(int256 value) +func (_Vm *VmCallerSession) EnvOr9(name string, defaultValue *big.Int) (*big.Int, error) { + return _Vm.Contract.EnvOr9(&_Vm.CallOpts, name, defaultValue) +} + +// EnvString is a free data retrieval call binding the contract method 0x14b02bc9. +// +// Solidity: function envString(string name, string delim) view returns(string[] value) +func (_Vm *VmCaller) EnvString(opts *bind.CallOpts, name string, delim string) ([]string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envString", name, delim) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// EnvString is a free data retrieval call binding the contract method 0x14b02bc9. +// +// Solidity: function envString(string name, string delim) view returns(string[] value) +func (_Vm *VmSession) EnvString(name string, delim string) ([]string, error) { + return _Vm.Contract.EnvString(&_Vm.CallOpts, name, delim) +} + +// EnvString is a free data retrieval call binding the contract method 0x14b02bc9. +// +// Solidity: function envString(string name, string delim) view returns(string[] value) +func (_Vm *VmCallerSession) EnvString(name string, delim string) ([]string, error) { + return _Vm.Contract.EnvString(&_Vm.CallOpts, name, delim) +} + +// EnvString0 is a free data retrieval call binding the contract method 0xf877cb19. +// +// Solidity: function envString(string name) view returns(string value) +func (_Vm *VmCaller) EnvString0(opts *bind.CallOpts, name string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envString0", name) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// EnvString0 is a free data retrieval call binding the contract method 0xf877cb19. +// +// Solidity: function envString(string name) view returns(string value) +func (_Vm *VmSession) EnvString0(name string) (string, error) { + return _Vm.Contract.EnvString0(&_Vm.CallOpts, name) +} + +// EnvString0 is a free data retrieval call binding the contract method 0xf877cb19. +// +// Solidity: function envString(string name) view returns(string value) +func (_Vm *VmCallerSession) EnvString0(name string) (string, error) { + return _Vm.Contract.EnvString0(&_Vm.CallOpts, name) +} + +// EnvUint is a free data retrieval call binding the contract method 0xc1978d1f. +// +// Solidity: function envUint(string name) view returns(uint256 value) +func (_Vm *VmCaller) EnvUint(opts *bind.CallOpts, name string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envUint", name) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EnvUint is a free data retrieval call binding the contract method 0xc1978d1f. +// +// Solidity: function envUint(string name) view returns(uint256 value) +func (_Vm *VmSession) EnvUint(name string) (*big.Int, error) { + return _Vm.Contract.EnvUint(&_Vm.CallOpts, name) +} + +// EnvUint is a free data retrieval call binding the contract method 0xc1978d1f. +// +// Solidity: function envUint(string name) view returns(uint256 value) +func (_Vm *VmCallerSession) EnvUint(name string) (*big.Int, error) { + return _Vm.Contract.EnvUint(&_Vm.CallOpts, name) +} + +// EnvUint0 is a free data retrieval call binding the contract method 0xf3dec099. +// +// Solidity: function envUint(string name, string delim) view returns(uint256[] value) +func (_Vm *VmCaller) EnvUint0(opts *bind.CallOpts, name string, delim string) ([]*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "envUint0", name, delim) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// EnvUint0 is a free data retrieval call binding the contract method 0xf3dec099. +// +// Solidity: function envUint(string name, string delim) view returns(uint256[] value) +func (_Vm *VmSession) EnvUint0(name string, delim string) ([]*big.Int, error) { + return _Vm.Contract.EnvUint0(&_Vm.CallOpts, name, delim) +} + +// EnvUint0 is a free data retrieval call binding the contract method 0xf3dec099. +// +// Solidity: function envUint(string name, string delim) view returns(uint256[] value) +func (_Vm *VmCallerSession) EnvUint0(name string, delim string) ([]*big.Int, error) { + return _Vm.Contract.EnvUint0(&_Vm.CallOpts, name, delim) +} + +// FsMetadata is a free data retrieval call binding the contract method 0xaf368a08. +// +// Solidity: function fsMetadata(string path) view returns((bool,bool,uint256,bool,uint256,uint256,uint256) metadata) +func (_Vm *VmCaller) FsMetadata(opts *bind.CallOpts, path string) (VmSafeFsMetadata, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "fsMetadata", path) + + if err != nil { + return *new(VmSafeFsMetadata), err + } + + out0 := *abi.ConvertType(out[0], new(VmSafeFsMetadata)).(*VmSafeFsMetadata) + + return out0, err + +} + +// FsMetadata is a free data retrieval call binding the contract method 0xaf368a08. +// +// Solidity: function fsMetadata(string path) view returns((bool,bool,uint256,bool,uint256,uint256,uint256) metadata) +func (_Vm *VmSession) FsMetadata(path string) (VmSafeFsMetadata, error) { + return _Vm.Contract.FsMetadata(&_Vm.CallOpts, path) +} + +// FsMetadata is a free data retrieval call binding the contract method 0xaf368a08. +// +// Solidity: function fsMetadata(string path) view returns((bool,bool,uint256,bool,uint256,uint256,uint256) metadata) +func (_Vm *VmCallerSession) FsMetadata(path string) (VmSafeFsMetadata, error) { + return _Vm.Contract.FsMetadata(&_Vm.CallOpts, path) +} + +// GetBlobBaseFee is a free data retrieval call binding the contract method 0x1f6d6ef7. +// +// Solidity: function getBlobBaseFee() view returns(uint256 blobBaseFee) +func (_Vm *VmCaller) GetBlobBaseFee(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "getBlobBaseFee") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetBlobBaseFee is a free data retrieval call binding the contract method 0x1f6d6ef7. +// +// Solidity: function getBlobBaseFee() view returns(uint256 blobBaseFee) +func (_Vm *VmSession) GetBlobBaseFee() (*big.Int, error) { + return _Vm.Contract.GetBlobBaseFee(&_Vm.CallOpts) +} + +// GetBlobBaseFee is a free data retrieval call binding the contract method 0x1f6d6ef7. +// +// Solidity: function getBlobBaseFee() view returns(uint256 blobBaseFee) +func (_Vm *VmCallerSession) GetBlobBaseFee() (*big.Int, error) { + return _Vm.Contract.GetBlobBaseFee(&_Vm.CallOpts) +} + +// GetBlobhashes is a free data retrieval call binding the contract method 0xf56ff18b. +// +// Solidity: function getBlobhashes() view returns(bytes32[] hashes) +func (_Vm *VmCaller) GetBlobhashes(opts *bind.CallOpts) ([][32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "getBlobhashes") + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetBlobhashes is a free data retrieval call binding the contract method 0xf56ff18b. +// +// Solidity: function getBlobhashes() view returns(bytes32[] hashes) +func (_Vm *VmSession) GetBlobhashes() ([][32]byte, error) { + return _Vm.Contract.GetBlobhashes(&_Vm.CallOpts) +} + +// GetBlobhashes is a free data retrieval call binding the contract method 0xf56ff18b. +// +// Solidity: function getBlobhashes() view returns(bytes32[] hashes) +func (_Vm *VmCallerSession) GetBlobhashes() ([][32]byte, error) { + return _Vm.Contract.GetBlobhashes(&_Vm.CallOpts) +} + +// GetBlockNumber is a free data retrieval call binding the contract method 0x42cbb15c. +// +// Solidity: function getBlockNumber() view returns(uint256 height) +func (_Vm *VmCaller) GetBlockNumber(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "getBlockNumber") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetBlockNumber is a free data retrieval call binding the contract method 0x42cbb15c. +// +// Solidity: function getBlockNumber() view returns(uint256 height) +func (_Vm *VmSession) GetBlockNumber() (*big.Int, error) { + return _Vm.Contract.GetBlockNumber(&_Vm.CallOpts) +} + +// GetBlockNumber is a free data retrieval call binding the contract method 0x42cbb15c. +// +// Solidity: function getBlockNumber() view returns(uint256 height) +func (_Vm *VmCallerSession) GetBlockNumber() (*big.Int, error) { + return _Vm.Contract.GetBlockNumber(&_Vm.CallOpts) +} + +// GetBlockTimestamp is a free data retrieval call binding the contract method 0x796b89b9. +// +// Solidity: function getBlockTimestamp() view returns(uint256 timestamp) +func (_Vm *VmCaller) GetBlockTimestamp(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "getBlockTimestamp") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetBlockTimestamp is a free data retrieval call binding the contract method 0x796b89b9. +// +// Solidity: function getBlockTimestamp() view returns(uint256 timestamp) +func (_Vm *VmSession) GetBlockTimestamp() (*big.Int, error) { + return _Vm.Contract.GetBlockTimestamp(&_Vm.CallOpts) +} + +// GetBlockTimestamp is a free data retrieval call binding the contract method 0x796b89b9. +// +// Solidity: function getBlockTimestamp() view returns(uint256 timestamp) +func (_Vm *VmCallerSession) GetBlockTimestamp() (*big.Int, error) { + return _Vm.Contract.GetBlockTimestamp(&_Vm.CallOpts) +} + +// GetCode is a free data retrieval call binding the contract method 0x8d1cc925. +// +// Solidity: function getCode(string artifactPath) view returns(bytes creationBytecode) +func (_Vm *VmCaller) GetCode(opts *bind.CallOpts, artifactPath string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "getCode", artifactPath) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// GetCode is a free data retrieval call binding the contract method 0x8d1cc925. +// +// Solidity: function getCode(string artifactPath) view returns(bytes creationBytecode) +func (_Vm *VmSession) GetCode(artifactPath string) ([]byte, error) { + return _Vm.Contract.GetCode(&_Vm.CallOpts, artifactPath) +} + +// GetCode is a free data retrieval call binding the contract method 0x8d1cc925. +// +// Solidity: function getCode(string artifactPath) view returns(bytes creationBytecode) +func (_Vm *VmCallerSession) GetCode(artifactPath string) ([]byte, error) { + return _Vm.Contract.GetCode(&_Vm.CallOpts, artifactPath) +} + +// GetDeployedCode is a free data retrieval call binding the contract method 0x3ebf73b4. +// +// Solidity: function getDeployedCode(string artifactPath) view returns(bytes runtimeBytecode) +func (_Vm *VmCaller) GetDeployedCode(opts *bind.CallOpts, artifactPath string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "getDeployedCode", artifactPath) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// GetDeployedCode is a free data retrieval call binding the contract method 0x3ebf73b4. +// +// Solidity: function getDeployedCode(string artifactPath) view returns(bytes runtimeBytecode) +func (_Vm *VmSession) GetDeployedCode(artifactPath string) ([]byte, error) { + return _Vm.Contract.GetDeployedCode(&_Vm.CallOpts, artifactPath) +} + +// GetDeployedCode is a free data retrieval call binding the contract method 0x3ebf73b4. +// +// Solidity: function getDeployedCode(string artifactPath) view returns(bytes runtimeBytecode) +func (_Vm *VmCallerSession) GetDeployedCode(artifactPath string) ([]byte, error) { + return _Vm.Contract.GetDeployedCode(&_Vm.CallOpts, artifactPath) +} + +// GetLabel is a free data retrieval call binding the contract method 0x28a249b0. +// +// Solidity: function getLabel(address account) view returns(string currentLabel) +func (_Vm *VmCaller) GetLabel(opts *bind.CallOpts, account common.Address) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "getLabel", account) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// GetLabel is a free data retrieval call binding the contract method 0x28a249b0. +// +// Solidity: function getLabel(address account) view returns(string currentLabel) +func (_Vm *VmSession) GetLabel(account common.Address) (string, error) { + return _Vm.Contract.GetLabel(&_Vm.CallOpts, account) +} + +// GetLabel is a free data retrieval call binding the contract method 0x28a249b0. +// +// Solidity: function getLabel(address account) view returns(string currentLabel) +func (_Vm *VmCallerSession) GetLabel(account common.Address) (string, error) { + return _Vm.Contract.GetLabel(&_Vm.CallOpts, account) +} + +// GetNonce is a free data retrieval call binding the contract method 0x2d0335ab. +// +// Solidity: function getNonce(address account) view returns(uint64 nonce) +func (_Vm *VmCaller) GetNonce(opts *bind.CallOpts, account common.Address) (uint64, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "getNonce", account) + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// GetNonce is a free data retrieval call binding the contract method 0x2d0335ab. +// +// Solidity: function getNonce(address account) view returns(uint64 nonce) +func (_Vm *VmSession) GetNonce(account common.Address) (uint64, error) { + return _Vm.Contract.GetNonce(&_Vm.CallOpts, account) +} + +// GetNonce is a free data retrieval call binding the contract method 0x2d0335ab. +// +// Solidity: function getNonce(address account) view returns(uint64 nonce) +func (_Vm *VmCallerSession) GetNonce(account common.Address) (uint64, error) { + return _Vm.Contract.GetNonce(&_Vm.CallOpts, account) +} + +// IndexOf is a free data retrieval call binding the contract method 0x8a0807b7. +// +// Solidity: function indexOf(string input, string key) pure returns(uint256) +func (_Vm *VmCaller) IndexOf(opts *bind.CallOpts, input string, key string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "indexOf", input, key) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// IndexOf is a free data retrieval call binding the contract method 0x8a0807b7. +// +// Solidity: function indexOf(string input, string key) pure returns(uint256) +func (_Vm *VmSession) IndexOf(input string, key string) (*big.Int, error) { + return _Vm.Contract.IndexOf(&_Vm.CallOpts, input, key) +} + +// IndexOf is a free data retrieval call binding the contract method 0x8a0807b7. +// +// Solidity: function indexOf(string input, string key) pure returns(uint256) +func (_Vm *VmCallerSession) IndexOf(input string, key string) (*big.Int, error) { + return _Vm.Contract.IndexOf(&_Vm.CallOpts, input, key) +} + +// IsContext is a free data retrieval call binding the contract method 0x64af255d. +// +// Solidity: function isContext(uint8 context) view returns(bool result) +func (_Vm *VmCaller) IsContext(opts *bind.CallOpts, context uint8) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "isContext", context) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsContext is a free data retrieval call binding the contract method 0x64af255d. +// +// Solidity: function isContext(uint8 context) view returns(bool result) +func (_Vm *VmSession) IsContext(context uint8) (bool, error) { + return _Vm.Contract.IsContext(&_Vm.CallOpts, context) +} + +// IsContext is a free data retrieval call binding the contract method 0x64af255d. +// +// Solidity: function isContext(uint8 context) view returns(bool result) +func (_Vm *VmCallerSession) IsContext(context uint8) (bool, error) { + return _Vm.Contract.IsContext(&_Vm.CallOpts, context) +} + +// IsPersistent is a free data retrieval call binding the contract method 0xd92d8efd. +// +// Solidity: function isPersistent(address account) view returns(bool persistent) +func (_Vm *VmCaller) IsPersistent(opts *bind.CallOpts, account common.Address) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "isPersistent", account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsPersistent is a free data retrieval call binding the contract method 0xd92d8efd. +// +// Solidity: function isPersistent(address account) view returns(bool persistent) +func (_Vm *VmSession) IsPersistent(account common.Address) (bool, error) { + return _Vm.Contract.IsPersistent(&_Vm.CallOpts, account) +} + +// IsPersistent is a free data retrieval call binding the contract method 0xd92d8efd. +// +// Solidity: function isPersistent(address account) view returns(bool persistent) +func (_Vm *VmCallerSession) IsPersistent(account common.Address) (bool, error) { + return _Vm.Contract.IsPersistent(&_Vm.CallOpts, account) +} + +// KeyExists is a free data retrieval call binding the contract method 0x528a683c. +// +// Solidity: function keyExists(string json, string key) view returns(bool) +func (_Vm *VmCaller) KeyExists(opts *bind.CallOpts, json string, key string) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "keyExists", json, key) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// KeyExists is a free data retrieval call binding the contract method 0x528a683c. +// +// Solidity: function keyExists(string json, string key) view returns(bool) +func (_Vm *VmSession) KeyExists(json string, key string) (bool, error) { + return _Vm.Contract.KeyExists(&_Vm.CallOpts, json, key) +} + +// KeyExists is a free data retrieval call binding the contract method 0x528a683c. +// +// Solidity: function keyExists(string json, string key) view returns(bool) +func (_Vm *VmCallerSession) KeyExists(json string, key string) (bool, error) { + return _Vm.Contract.KeyExists(&_Vm.CallOpts, json, key) +} + +// KeyExistsJson is a free data retrieval call binding the contract method 0xdb4235f6. +// +// Solidity: function keyExistsJson(string json, string key) view returns(bool) +func (_Vm *VmCaller) KeyExistsJson(opts *bind.CallOpts, json string, key string) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "keyExistsJson", json, key) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// KeyExistsJson is a free data retrieval call binding the contract method 0xdb4235f6. +// +// Solidity: function keyExistsJson(string json, string key) view returns(bool) +func (_Vm *VmSession) KeyExistsJson(json string, key string) (bool, error) { + return _Vm.Contract.KeyExistsJson(&_Vm.CallOpts, json, key) +} + +// KeyExistsJson is a free data retrieval call binding the contract method 0xdb4235f6. +// +// Solidity: function keyExistsJson(string json, string key) view returns(bool) +func (_Vm *VmCallerSession) KeyExistsJson(json string, key string) (bool, error) { + return _Vm.Contract.KeyExistsJson(&_Vm.CallOpts, json, key) +} + +// KeyExistsToml is a free data retrieval call binding the contract method 0x600903ad. +// +// Solidity: function keyExistsToml(string toml, string key) view returns(bool) +func (_Vm *VmCaller) KeyExistsToml(opts *bind.CallOpts, toml string, key string) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "keyExistsToml", toml, key) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// KeyExistsToml is a free data retrieval call binding the contract method 0x600903ad. +// +// Solidity: function keyExistsToml(string toml, string key) view returns(bool) +func (_Vm *VmSession) KeyExistsToml(toml string, key string) (bool, error) { + return _Vm.Contract.KeyExistsToml(&_Vm.CallOpts, toml, key) +} + +// KeyExistsToml is a free data retrieval call binding the contract method 0x600903ad. +// +// Solidity: function keyExistsToml(string toml, string key) view returns(bool) +func (_Vm *VmCallerSession) KeyExistsToml(toml string, key string) (bool, error) { + return _Vm.Contract.KeyExistsToml(&_Vm.CallOpts, toml, key) +} + +// LastCallGas is a free data retrieval call binding the contract method 0x2b589b28. +// +// Solidity: function lastCallGas() view returns((uint64,uint64,uint64,int64,uint64) gas) +func (_Vm *VmCaller) LastCallGas(opts *bind.CallOpts) (VmSafeGas, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "lastCallGas") + + if err != nil { + return *new(VmSafeGas), err + } + + out0 := *abi.ConvertType(out[0], new(VmSafeGas)).(*VmSafeGas) + + return out0, err + +} + +// LastCallGas is a free data retrieval call binding the contract method 0x2b589b28. +// +// Solidity: function lastCallGas() view returns((uint64,uint64,uint64,int64,uint64) gas) +func (_Vm *VmSession) LastCallGas() (VmSafeGas, error) { + return _Vm.Contract.LastCallGas(&_Vm.CallOpts) +} + +// LastCallGas is a free data retrieval call binding the contract method 0x2b589b28. +// +// Solidity: function lastCallGas() view returns((uint64,uint64,uint64,int64,uint64) gas) +func (_Vm *VmCallerSession) LastCallGas() (VmSafeGas, error) { + return _Vm.Contract.LastCallGas(&_Vm.CallOpts) +} + +// Load is a free data retrieval call binding the contract method 0x667f9d70. +// +// Solidity: function load(address target, bytes32 slot) view returns(bytes32 data) +func (_Vm *VmCaller) Load(opts *bind.CallOpts, target common.Address, slot [32]byte) ([32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "load", target, slot) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// Load is a free data retrieval call binding the contract method 0x667f9d70. +// +// Solidity: function load(address target, bytes32 slot) view returns(bytes32 data) +func (_Vm *VmSession) Load(target common.Address, slot [32]byte) ([32]byte, error) { + return _Vm.Contract.Load(&_Vm.CallOpts, target, slot) +} + +// Load is a free data retrieval call binding the contract method 0x667f9d70. +// +// Solidity: function load(address target, bytes32 slot) view returns(bytes32 data) +func (_Vm *VmCallerSession) Load(target common.Address, slot [32]byte) ([32]byte, error) { + return _Vm.Contract.Load(&_Vm.CallOpts, target, slot) +} + +// ParseAddress is a free data retrieval call binding the contract method 0xc6ce059d. +// +// Solidity: function parseAddress(string stringifiedValue) pure returns(address parsedValue) +func (_Vm *VmCaller) ParseAddress(opts *bind.CallOpts, stringifiedValue string) (common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseAddress", stringifiedValue) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ParseAddress is a free data retrieval call binding the contract method 0xc6ce059d. +// +// Solidity: function parseAddress(string stringifiedValue) pure returns(address parsedValue) +func (_Vm *VmSession) ParseAddress(stringifiedValue string) (common.Address, error) { + return _Vm.Contract.ParseAddress(&_Vm.CallOpts, stringifiedValue) +} + +// ParseAddress is a free data retrieval call binding the contract method 0xc6ce059d. +// +// Solidity: function parseAddress(string stringifiedValue) pure returns(address parsedValue) +func (_Vm *VmCallerSession) ParseAddress(stringifiedValue string) (common.Address, error) { + return _Vm.Contract.ParseAddress(&_Vm.CallOpts, stringifiedValue) +} + +// ParseBool is a free data retrieval call binding the contract method 0x974ef924. +// +// Solidity: function parseBool(string stringifiedValue) pure returns(bool parsedValue) +func (_Vm *VmCaller) ParseBool(opts *bind.CallOpts, stringifiedValue string) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseBool", stringifiedValue) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ParseBool is a free data retrieval call binding the contract method 0x974ef924. +// +// Solidity: function parseBool(string stringifiedValue) pure returns(bool parsedValue) +func (_Vm *VmSession) ParseBool(stringifiedValue string) (bool, error) { + return _Vm.Contract.ParseBool(&_Vm.CallOpts, stringifiedValue) +} + +// ParseBool is a free data retrieval call binding the contract method 0x974ef924. +// +// Solidity: function parseBool(string stringifiedValue) pure returns(bool parsedValue) +func (_Vm *VmCallerSession) ParseBool(stringifiedValue string) (bool, error) { + return _Vm.Contract.ParseBool(&_Vm.CallOpts, stringifiedValue) +} + +// ParseBytes is a free data retrieval call binding the contract method 0x8f5d232d. +// +// Solidity: function parseBytes(string stringifiedValue) pure returns(bytes parsedValue) +func (_Vm *VmCaller) ParseBytes(opts *bind.CallOpts, stringifiedValue string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseBytes", stringifiedValue) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseBytes is a free data retrieval call binding the contract method 0x8f5d232d. +// +// Solidity: function parseBytes(string stringifiedValue) pure returns(bytes parsedValue) +func (_Vm *VmSession) ParseBytes(stringifiedValue string) ([]byte, error) { + return _Vm.Contract.ParseBytes(&_Vm.CallOpts, stringifiedValue) +} + +// ParseBytes is a free data retrieval call binding the contract method 0x8f5d232d. +// +// Solidity: function parseBytes(string stringifiedValue) pure returns(bytes parsedValue) +func (_Vm *VmCallerSession) ParseBytes(stringifiedValue string) ([]byte, error) { + return _Vm.Contract.ParseBytes(&_Vm.CallOpts, stringifiedValue) +} + +// ParseBytes32 is a free data retrieval call binding the contract method 0x087e6e81. +// +// Solidity: function parseBytes32(string stringifiedValue) pure returns(bytes32 parsedValue) +func (_Vm *VmCaller) ParseBytes32(opts *bind.CallOpts, stringifiedValue string) ([32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseBytes32", stringifiedValue) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ParseBytes32 is a free data retrieval call binding the contract method 0x087e6e81. +// +// Solidity: function parseBytes32(string stringifiedValue) pure returns(bytes32 parsedValue) +func (_Vm *VmSession) ParseBytes32(stringifiedValue string) ([32]byte, error) { + return _Vm.Contract.ParseBytes32(&_Vm.CallOpts, stringifiedValue) +} + +// ParseBytes32 is a free data retrieval call binding the contract method 0x087e6e81. +// +// Solidity: function parseBytes32(string stringifiedValue) pure returns(bytes32 parsedValue) +func (_Vm *VmCallerSession) ParseBytes32(stringifiedValue string) ([32]byte, error) { + return _Vm.Contract.ParseBytes32(&_Vm.CallOpts, stringifiedValue) +} + +// ParseInt is a free data retrieval call binding the contract method 0x42346c5e. +// +// Solidity: function parseInt(string stringifiedValue) pure returns(int256 parsedValue) +func (_Vm *VmCaller) ParseInt(opts *bind.CallOpts, stringifiedValue string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseInt", stringifiedValue) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseInt is a free data retrieval call binding the contract method 0x42346c5e. +// +// Solidity: function parseInt(string stringifiedValue) pure returns(int256 parsedValue) +func (_Vm *VmSession) ParseInt(stringifiedValue string) (*big.Int, error) { + return _Vm.Contract.ParseInt(&_Vm.CallOpts, stringifiedValue) +} + +// ParseInt is a free data retrieval call binding the contract method 0x42346c5e. +// +// Solidity: function parseInt(string stringifiedValue) pure returns(int256 parsedValue) +func (_Vm *VmCallerSession) ParseInt(stringifiedValue string) (*big.Int, error) { + return _Vm.Contract.ParseInt(&_Vm.CallOpts, stringifiedValue) +} + +// ParseJson is a free data retrieval call binding the contract method 0x6a82600a. +// +// Solidity: function parseJson(string json) pure returns(bytes abiEncodedData) +func (_Vm *VmCaller) ParseJson(opts *bind.CallOpts, json string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJson", json) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJson is a free data retrieval call binding the contract method 0x6a82600a. +// +// Solidity: function parseJson(string json) pure returns(bytes abiEncodedData) +func (_Vm *VmSession) ParseJson(json string) ([]byte, error) { + return _Vm.Contract.ParseJson(&_Vm.CallOpts, json) +} + +// ParseJson is a free data retrieval call binding the contract method 0x6a82600a. +// +// Solidity: function parseJson(string json) pure returns(bytes abiEncodedData) +func (_Vm *VmCallerSession) ParseJson(json string) ([]byte, error) { + return _Vm.Contract.ParseJson(&_Vm.CallOpts, json) +} + +// ParseJson0 is a free data retrieval call binding the contract method 0x85940ef1. +// +// Solidity: function parseJson(string json, string key) pure returns(bytes abiEncodedData) +func (_Vm *VmCaller) ParseJson0(opts *bind.CallOpts, json string, key string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJson0", json, key) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJson0 is a free data retrieval call binding the contract method 0x85940ef1. +// +// Solidity: function parseJson(string json, string key) pure returns(bytes abiEncodedData) +func (_Vm *VmSession) ParseJson0(json string, key string) ([]byte, error) { + return _Vm.Contract.ParseJson0(&_Vm.CallOpts, json, key) +} + +// ParseJson0 is a free data retrieval call binding the contract method 0x85940ef1. +// +// Solidity: function parseJson(string json, string key) pure returns(bytes abiEncodedData) +func (_Vm *VmCallerSession) ParseJson0(json string, key string) ([]byte, error) { + return _Vm.Contract.ParseJson0(&_Vm.CallOpts, json, key) +} + +// ParseJsonAddress is a free data retrieval call binding the contract method 0x1e19e657. +// +// Solidity: function parseJsonAddress(string json, string key) pure returns(address) +func (_Vm *VmCaller) ParseJsonAddress(opts *bind.CallOpts, json string, key string) (common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonAddress", json, key) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ParseJsonAddress is a free data retrieval call binding the contract method 0x1e19e657. +// +// Solidity: function parseJsonAddress(string json, string key) pure returns(address) +func (_Vm *VmSession) ParseJsonAddress(json string, key string) (common.Address, error) { + return _Vm.Contract.ParseJsonAddress(&_Vm.CallOpts, json, key) +} + +// ParseJsonAddress is a free data retrieval call binding the contract method 0x1e19e657. +// +// Solidity: function parseJsonAddress(string json, string key) pure returns(address) +func (_Vm *VmCallerSession) ParseJsonAddress(json string, key string) (common.Address, error) { + return _Vm.Contract.ParseJsonAddress(&_Vm.CallOpts, json, key) +} + +// ParseJsonAddressArray is a free data retrieval call binding the contract method 0x2fce7883. +// +// Solidity: function parseJsonAddressArray(string json, string key) pure returns(address[]) +func (_Vm *VmCaller) ParseJsonAddressArray(opts *bind.CallOpts, json string, key string) ([]common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonAddressArray", json, key) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ParseJsonAddressArray is a free data retrieval call binding the contract method 0x2fce7883. +// +// Solidity: function parseJsonAddressArray(string json, string key) pure returns(address[]) +func (_Vm *VmSession) ParseJsonAddressArray(json string, key string) ([]common.Address, error) { + return _Vm.Contract.ParseJsonAddressArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonAddressArray is a free data retrieval call binding the contract method 0x2fce7883. +// +// Solidity: function parseJsonAddressArray(string json, string key) pure returns(address[]) +func (_Vm *VmCallerSession) ParseJsonAddressArray(json string, key string) ([]common.Address, error) { + return _Vm.Contract.ParseJsonAddressArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonBool is a free data retrieval call binding the contract method 0x9f86dc91. +// +// Solidity: function parseJsonBool(string json, string key) pure returns(bool) +func (_Vm *VmCaller) ParseJsonBool(opts *bind.CallOpts, json string, key string) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonBool", json, key) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ParseJsonBool is a free data retrieval call binding the contract method 0x9f86dc91. +// +// Solidity: function parseJsonBool(string json, string key) pure returns(bool) +func (_Vm *VmSession) ParseJsonBool(json string, key string) (bool, error) { + return _Vm.Contract.ParseJsonBool(&_Vm.CallOpts, json, key) +} + +// ParseJsonBool is a free data retrieval call binding the contract method 0x9f86dc91. +// +// Solidity: function parseJsonBool(string json, string key) pure returns(bool) +func (_Vm *VmCallerSession) ParseJsonBool(json string, key string) (bool, error) { + return _Vm.Contract.ParseJsonBool(&_Vm.CallOpts, json, key) +} + +// ParseJsonBoolArray is a free data retrieval call binding the contract method 0x91f3b94f. +// +// Solidity: function parseJsonBoolArray(string json, string key) pure returns(bool[]) +func (_Vm *VmCaller) ParseJsonBoolArray(opts *bind.CallOpts, json string, key string) ([]bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonBoolArray", json, key) + + if err != nil { + return *new([]bool), err + } + + out0 := *abi.ConvertType(out[0], new([]bool)).(*[]bool) + + return out0, err + +} + +// ParseJsonBoolArray is a free data retrieval call binding the contract method 0x91f3b94f. +// +// Solidity: function parseJsonBoolArray(string json, string key) pure returns(bool[]) +func (_Vm *VmSession) ParseJsonBoolArray(json string, key string) ([]bool, error) { + return _Vm.Contract.ParseJsonBoolArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonBoolArray is a free data retrieval call binding the contract method 0x91f3b94f. +// +// Solidity: function parseJsonBoolArray(string json, string key) pure returns(bool[]) +func (_Vm *VmCallerSession) ParseJsonBoolArray(json string, key string) ([]bool, error) { + return _Vm.Contract.ParseJsonBoolArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonBytes is a free data retrieval call binding the contract method 0xfd921be8. +// +// Solidity: function parseJsonBytes(string json, string key) pure returns(bytes) +func (_Vm *VmCaller) ParseJsonBytes(opts *bind.CallOpts, json string, key string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonBytes", json, key) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJsonBytes is a free data retrieval call binding the contract method 0xfd921be8. +// +// Solidity: function parseJsonBytes(string json, string key) pure returns(bytes) +func (_Vm *VmSession) ParseJsonBytes(json string, key string) ([]byte, error) { + return _Vm.Contract.ParseJsonBytes(&_Vm.CallOpts, json, key) +} + +// ParseJsonBytes is a free data retrieval call binding the contract method 0xfd921be8. +// +// Solidity: function parseJsonBytes(string json, string key) pure returns(bytes) +func (_Vm *VmCallerSession) ParseJsonBytes(json string, key string) ([]byte, error) { + return _Vm.Contract.ParseJsonBytes(&_Vm.CallOpts, json, key) +} + +// ParseJsonBytes32 is a free data retrieval call binding the contract method 0x1777e59d. +// +// Solidity: function parseJsonBytes32(string json, string key) pure returns(bytes32) +func (_Vm *VmCaller) ParseJsonBytes32(opts *bind.CallOpts, json string, key string) ([32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonBytes32", json, key) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ParseJsonBytes32 is a free data retrieval call binding the contract method 0x1777e59d. +// +// Solidity: function parseJsonBytes32(string json, string key) pure returns(bytes32) +func (_Vm *VmSession) ParseJsonBytes32(json string, key string) ([32]byte, error) { + return _Vm.Contract.ParseJsonBytes32(&_Vm.CallOpts, json, key) +} + +// ParseJsonBytes32 is a free data retrieval call binding the contract method 0x1777e59d. +// +// Solidity: function parseJsonBytes32(string json, string key) pure returns(bytes32) +func (_Vm *VmCallerSession) ParseJsonBytes32(json string, key string) ([32]byte, error) { + return _Vm.Contract.ParseJsonBytes32(&_Vm.CallOpts, json, key) +} + +// ParseJsonBytes32Array is a free data retrieval call binding the contract method 0x91c75bc3. +// +// Solidity: function parseJsonBytes32Array(string json, string key) pure returns(bytes32[]) +func (_Vm *VmCaller) ParseJsonBytes32Array(opts *bind.CallOpts, json string, key string) ([][32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonBytes32Array", json, key) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ParseJsonBytes32Array is a free data retrieval call binding the contract method 0x91c75bc3. +// +// Solidity: function parseJsonBytes32Array(string json, string key) pure returns(bytes32[]) +func (_Vm *VmSession) ParseJsonBytes32Array(json string, key string) ([][32]byte, error) { + return _Vm.Contract.ParseJsonBytes32Array(&_Vm.CallOpts, json, key) +} + +// ParseJsonBytes32Array is a free data retrieval call binding the contract method 0x91c75bc3. +// +// Solidity: function parseJsonBytes32Array(string json, string key) pure returns(bytes32[]) +func (_Vm *VmCallerSession) ParseJsonBytes32Array(json string, key string) ([][32]byte, error) { + return _Vm.Contract.ParseJsonBytes32Array(&_Vm.CallOpts, json, key) +} + +// ParseJsonBytesArray is a free data retrieval call binding the contract method 0x6631aa99. +// +// Solidity: function parseJsonBytesArray(string json, string key) pure returns(bytes[]) +func (_Vm *VmCaller) ParseJsonBytesArray(opts *bind.CallOpts, json string, key string) ([][]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonBytesArray", json, key) + + if err != nil { + return *new([][]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][]byte)).(*[][]byte) + + return out0, err + +} + +// ParseJsonBytesArray is a free data retrieval call binding the contract method 0x6631aa99. +// +// Solidity: function parseJsonBytesArray(string json, string key) pure returns(bytes[]) +func (_Vm *VmSession) ParseJsonBytesArray(json string, key string) ([][]byte, error) { + return _Vm.Contract.ParseJsonBytesArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonBytesArray is a free data retrieval call binding the contract method 0x6631aa99. +// +// Solidity: function parseJsonBytesArray(string json, string key) pure returns(bytes[]) +func (_Vm *VmCallerSession) ParseJsonBytesArray(json string, key string) ([][]byte, error) { + return _Vm.Contract.ParseJsonBytesArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonInt is a free data retrieval call binding the contract method 0x7b048ccd. +// +// Solidity: function parseJsonInt(string json, string key) pure returns(int256) +func (_Vm *VmCaller) ParseJsonInt(opts *bind.CallOpts, json string, key string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonInt", json, key) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseJsonInt is a free data retrieval call binding the contract method 0x7b048ccd. +// +// Solidity: function parseJsonInt(string json, string key) pure returns(int256) +func (_Vm *VmSession) ParseJsonInt(json string, key string) (*big.Int, error) { + return _Vm.Contract.ParseJsonInt(&_Vm.CallOpts, json, key) +} + +// ParseJsonInt is a free data retrieval call binding the contract method 0x7b048ccd. +// +// Solidity: function parseJsonInt(string json, string key) pure returns(int256) +func (_Vm *VmCallerSession) ParseJsonInt(json string, key string) (*big.Int, error) { + return _Vm.Contract.ParseJsonInt(&_Vm.CallOpts, json, key) +} + +// ParseJsonIntArray is a free data retrieval call binding the contract method 0x9983c28a. +// +// Solidity: function parseJsonIntArray(string json, string key) pure returns(int256[]) +func (_Vm *VmCaller) ParseJsonIntArray(opts *bind.CallOpts, json string, key string) ([]*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonIntArray", json, key) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ParseJsonIntArray is a free data retrieval call binding the contract method 0x9983c28a. +// +// Solidity: function parseJsonIntArray(string json, string key) pure returns(int256[]) +func (_Vm *VmSession) ParseJsonIntArray(json string, key string) ([]*big.Int, error) { + return _Vm.Contract.ParseJsonIntArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonIntArray is a free data retrieval call binding the contract method 0x9983c28a. +// +// Solidity: function parseJsonIntArray(string json, string key) pure returns(int256[]) +func (_Vm *VmCallerSession) ParseJsonIntArray(json string, key string) ([]*big.Int, error) { + return _Vm.Contract.ParseJsonIntArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonKeys is a free data retrieval call binding the contract method 0x213e4198. +// +// Solidity: function parseJsonKeys(string json, string key) pure returns(string[] keys) +func (_Vm *VmCaller) ParseJsonKeys(opts *bind.CallOpts, json string, key string) ([]string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonKeys", json, key) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ParseJsonKeys is a free data retrieval call binding the contract method 0x213e4198. +// +// Solidity: function parseJsonKeys(string json, string key) pure returns(string[] keys) +func (_Vm *VmSession) ParseJsonKeys(json string, key string) ([]string, error) { + return _Vm.Contract.ParseJsonKeys(&_Vm.CallOpts, json, key) +} + +// ParseJsonKeys is a free data retrieval call binding the contract method 0x213e4198. +// +// Solidity: function parseJsonKeys(string json, string key) pure returns(string[] keys) +func (_Vm *VmCallerSession) ParseJsonKeys(json string, key string) ([]string, error) { + return _Vm.Contract.ParseJsonKeys(&_Vm.CallOpts, json, key) +} + +// ParseJsonString is a free data retrieval call binding the contract method 0x49c4fac8. +// +// Solidity: function parseJsonString(string json, string key) pure returns(string) +func (_Vm *VmCaller) ParseJsonString(opts *bind.CallOpts, json string, key string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonString", json, key) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ParseJsonString is a free data retrieval call binding the contract method 0x49c4fac8. +// +// Solidity: function parseJsonString(string json, string key) pure returns(string) +func (_Vm *VmSession) ParseJsonString(json string, key string) (string, error) { + return _Vm.Contract.ParseJsonString(&_Vm.CallOpts, json, key) +} + +// ParseJsonString is a free data retrieval call binding the contract method 0x49c4fac8. +// +// Solidity: function parseJsonString(string json, string key) pure returns(string) +func (_Vm *VmCallerSession) ParseJsonString(json string, key string) (string, error) { + return _Vm.Contract.ParseJsonString(&_Vm.CallOpts, json, key) +} + +// ParseJsonStringArray is a free data retrieval call binding the contract method 0x498fdcf4. +// +// Solidity: function parseJsonStringArray(string json, string key) pure returns(string[]) +func (_Vm *VmCaller) ParseJsonStringArray(opts *bind.CallOpts, json string, key string) ([]string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonStringArray", json, key) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ParseJsonStringArray is a free data retrieval call binding the contract method 0x498fdcf4. +// +// Solidity: function parseJsonStringArray(string json, string key) pure returns(string[]) +func (_Vm *VmSession) ParseJsonStringArray(json string, key string) ([]string, error) { + return _Vm.Contract.ParseJsonStringArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonStringArray is a free data retrieval call binding the contract method 0x498fdcf4. +// +// Solidity: function parseJsonStringArray(string json, string key) pure returns(string[]) +func (_Vm *VmCallerSession) ParseJsonStringArray(json string, key string) ([]string, error) { + return _Vm.Contract.ParseJsonStringArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonType is a free data retrieval call binding the contract method 0xa9da313b. +// +// Solidity: function parseJsonType(string json, string typeDescription) pure returns(bytes) +func (_Vm *VmCaller) ParseJsonType(opts *bind.CallOpts, json string, typeDescription string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonType", json, typeDescription) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJsonType is a free data retrieval call binding the contract method 0xa9da313b. +// +// Solidity: function parseJsonType(string json, string typeDescription) pure returns(bytes) +func (_Vm *VmSession) ParseJsonType(json string, typeDescription string) ([]byte, error) { + return _Vm.Contract.ParseJsonType(&_Vm.CallOpts, json, typeDescription) +} + +// ParseJsonType is a free data retrieval call binding the contract method 0xa9da313b. +// +// Solidity: function parseJsonType(string json, string typeDescription) pure returns(bytes) +func (_Vm *VmCallerSession) ParseJsonType(json string, typeDescription string) ([]byte, error) { + return _Vm.Contract.ParseJsonType(&_Vm.CallOpts, json, typeDescription) +} + +// ParseJsonType0 is a free data retrieval call binding the contract method 0xe3f5ae33. +// +// Solidity: function parseJsonType(string json, string key, string typeDescription) pure returns(bytes) +func (_Vm *VmCaller) ParseJsonType0(opts *bind.CallOpts, json string, key string, typeDescription string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonType0", json, key, typeDescription) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJsonType0 is a free data retrieval call binding the contract method 0xe3f5ae33. +// +// Solidity: function parseJsonType(string json, string key, string typeDescription) pure returns(bytes) +func (_Vm *VmSession) ParseJsonType0(json string, key string, typeDescription string) ([]byte, error) { + return _Vm.Contract.ParseJsonType0(&_Vm.CallOpts, json, key, typeDescription) +} + +// ParseJsonType0 is a free data retrieval call binding the contract method 0xe3f5ae33. +// +// Solidity: function parseJsonType(string json, string key, string typeDescription) pure returns(bytes) +func (_Vm *VmCallerSession) ParseJsonType0(json string, key string, typeDescription string) ([]byte, error) { + return _Vm.Contract.ParseJsonType0(&_Vm.CallOpts, json, key, typeDescription) +} + +// ParseJsonTypeArray is a free data retrieval call binding the contract method 0x0175d535. +// +// Solidity: function parseJsonTypeArray(string json, string key, string typeDescription) pure returns(bytes) +func (_Vm *VmCaller) ParseJsonTypeArray(opts *bind.CallOpts, json string, key string, typeDescription string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonTypeArray", json, key, typeDescription) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJsonTypeArray is a free data retrieval call binding the contract method 0x0175d535. +// +// Solidity: function parseJsonTypeArray(string json, string key, string typeDescription) pure returns(bytes) +func (_Vm *VmSession) ParseJsonTypeArray(json string, key string, typeDescription string) ([]byte, error) { + return _Vm.Contract.ParseJsonTypeArray(&_Vm.CallOpts, json, key, typeDescription) +} + +// ParseJsonTypeArray is a free data retrieval call binding the contract method 0x0175d535. +// +// Solidity: function parseJsonTypeArray(string json, string key, string typeDescription) pure returns(bytes) +func (_Vm *VmCallerSession) ParseJsonTypeArray(json string, key string, typeDescription string) ([]byte, error) { + return _Vm.Contract.ParseJsonTypeArray(&_Vm.CallOpts, json, key, typeDescription) +} + +// ParseJsonUint is a free data retrieval call binding the contract method 0xaddde2b6. +// +// Solidity: function parseJsonUint(string json, string key) pure returns(uint256) +func (_Vm *VmCaller) ParseJsonUint(opts *bind.CallOpts, json string, key string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonUint", json, key) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseJsonUint is a free data retrieval call binding the contract method 0xaddde2b6. +// +// Solidity: function parseJsonUint(string json, string key) pure returns(uint256) +func (_Vm *VmSession) ParseJsonUint(json string, key string) (*big.Int, error) { + return _Vm.Contract.ParseJsonUint(&_Vm.CallOpts, json, key) +} + +// ParseJsonUint is a free data retrieval call binding the contract method 0xaddde2b6. +// +// Solidity: function parseJsonUint(string json, string key) pure returns(uint256) +func (_Vm *VmCallerSession) ParseJsonUint(json string, key string) (*big.Int, error) { + return _Vm.Contract.ParseJsonUint(&_Vm.CallOpts, json, key) +} + +// ParseJsonUintArray is a free data retrieval call binding the contract method 0x522074ab. +// +// Solidity: function parseJsonUintArray(string json, string key) pure returns(uint256[]) +func (_Vm *VmCaller) ParseJsonUintArray(opts *bind.CallOpts, json string, key string) ([]*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseJsonUintArray", json, key) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ParseJsonUintArray is a free data retrieval call binding the contract method 0x522074ab. +// +// Solidity: function parseJsonUintArray(string json, string key) pure returns(uint256[]) +func (_Vm *VmSession) ParseJsonUintArray(json string, key string) ([]*big.Int, error) { + return _Vm.Contract.ParseJsonUintArray(&_Vm.CallOpts, json, key) +} + +// ParseJsonUintArray is a free data retrieval call binding the contract method 0x522074ab. +// +// Solidity: function parseJsonUintArray(string json, string key) pure returns(uint256[]) +func (_Vm *VmCallerSession) ParseJsonUintArray(json string, key string) ([]*big.Int, error) { + return _Vm.Contract.ParseJsonUintArray(&_Vm.CallOpts, json, key) +} + +// ParseToml is a free data retrieval call binding the contract method 0x37736e08. +// +// Solidity: function parseToml(string toml, string key) pure returns(bytes abiEncodedData) +func (_Vm *VmCaller) ParseToml(opts *bind.CallOpts, toml string, key string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseToml", toml, key) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseToml is a free data retrieval call binding the contract method 0x37736e08. +// +// Solidity: function parseToml(string toml, string key) pure returns(bytes abiEncodedData) +func (_Vm *VmSession) ParseToml(toml string, key string) ([]byte, error) { + return _Vm.Contract.ParseToml(&_Vm.CallOpts, toml, key) +} + +// ParseToml is a free data retrieval call binding the contract method 0x37736e08. +// +// Solidity: function parseToml(string toml, string key) pure returns(bytes abiEncodedData) +func (_Vm *VmCallerSession) ParseToml(toml string, key string) ([]byte, error) { + return _Vm.Contract.ParseToml(&_Vm.CallOpts, toml, key) +} + +// ParseToml0 is a free data retrieval call binding the contract method 0x592151f0. +// +// Solidity: function parseToml(string toml) pure returns(bytes abiEncodedData) +func (_Vm *VmCaller) ParseToml0(opts *bind.CallOpts, toml string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseToml0", toml) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseToml0 is a free data retrieval call binding the contract method 0x592151f0. +// +// Solidity: function parseToml(string toml) pure returns(bytes abiEncodedData) +func (_Vm *VmSession) ParseToml0(toml string) ([]byte, error) { + return _Vm.Contract.ParseToml0(&_Vm.CallOpts, toml) +} + +// ParseToml0 is a free data retrieval call binding the contract method 0x592151f0. +// +// Solidity: function parseToml(string toml) pure returns(bytes abiEncodedData) +func (_Vm *VmCallerSession) ParseToml0(toml string) ([]byte, error) { + return _Vm.Contract.ParseToml0(&_Vm.CallOpts, toml) +} + +// ParseTomlAddress is a free data retrieval call binding the contract method 0x65e7c844. +// +// Solidity: function parseTomlAddress(string toml, string key) pure returns(address) +func (_Vm *VmCaller) ParseTomlAddress(opts *bind.CallOpts, toml string, key string) (common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlAddress", toml, key) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ParseTomlAddress is a free data retrieval call binding the contract method 0x65e7c844. +// +// Solidity: function parseTomlAddress(string toml, string key) pure returns(address) +func (_Vm *VmSession) ParseTomlAddress(toml string, key string) (common.Address, error) { + return _Vm.Contract.ParseTomlAddress(&_Vm.CallOpts, toml, key) +} + +// ParseTomlAddress is a free data retrieval call binding the contract method 0x65e7c844. +// +// Solidity: function parseTomlAddress(string toml, string key) pure returns(address) +func (_Vm *VmCallerSession) ParseTomlAddress(toml string, key string) (common.Address, error) { + return _Vm.Contract.ParseTomlAddress(&_Vm.CallOpts, toml, key) +} + +// ParseTomlAddressArray is a free data retrieval call binding the contract method 0x65c428e7. +// +// Solidity: function parseTomlAddressArray(string toml, string key) pure returns(address[]) +func (_Vm *VmCaller) ParseTomlAddressArray(opts *bind.CallOpts, toml string, key string) ([]common.Address, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlAddressArray", toml, key) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ParseTomlAddressArray is a free data retrieval call binding the contract method 0x65c428e7. +// +// Solidity: function parseTomlAddressArray(string toml, string key) pure returns(address[]) +func (_Vm *VmSession) ParseTomlAddressArray(toml string, key string) ([]common.Address, error) { + return _Vm.Contract.ParseTomlAddressArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlAddressArray is a free data retrieval call binding the contract method 0x65c428e7. +// +// Solidity: function parseTomlAddressArray(string toml, string key) pure returns(address[]) +func (_Vm *VmCallerSession) ParseTomlAddressArray(toml string, key string) ([]common.Address, error) { + return _Vm.Contract.ParseTomlAddressArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBool is a free data retrieval call binding the contract method 0xd30dced6. +// +// Solidity: function parseTomlBool(string toml, string key) pure returns(bool) +func (_Vm *VmCaller) ParseTomlBool(opts *bind.CallOpts, toml string, key string) (bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlBool", toml, key) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ParseTomlBool is a free data retrieval call binding the contract method 0xd30dced6. +// +// Solidity: function parseTomlBool(string toml, string key) pure returns(bool) +func (_Vm *VmSession) ParseTomlBool(toml string, key string) (bool, error) { + return _Vm.Contract.ParseTomlBool(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBool is a free data retrieval call binding the contract method 0xd30dced6. +// +// Solidity: function parseTomlBool(string toml, string key) pure returns(bool) +func (_Vm *VmCallerSession) ParseTomlBool(toml string, key string) (bool, error) { + return _Vm.Contract.ParseTomlBool(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBoolArray is a free data retrieval call binding the contract method 0x127cfe9a. +// +// Solidity: function parseTomlBoolArray(string toml, string key) pure returns(bool[]) +func (_Vm *VmCaller) ParseTomlBoolArray(opts *bind.CallOpts, toml string, key string) ([]bool, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlBoolArray", toml, key) + + if err != nil { + return *new([]bool), err + } + + out0 := *abi.ConvertType(out[0], new([]bool)).(*[]bool) + + return out0, err + +} + +// ParseTomlBoolArray is a free data retrieval call binding the contract method 0x127cfe9a. +// +// Solidity: function parseTomlBoolArray(string toml, string key) pure returns(bool[]) +func (_Vm *VmSession) ParseTomlBoolArray(toml string, key string) ([]bool, error) { + return _Vm.Contract.ParseTomlBoolArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBoolArray is a free data retrieval call binding the contract method 0x127cfe9a. +// +// Solidity: function parseTomlBoolArray(string toml, string key) pure returns(bool[]) +func (_Vm *VmCallerSession) ParseTomlBoolArray(toml string, key string) ([]bool, error) { + return _Vm.Contract.ParseTomlBoolArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBytes is a free data retrieval call binding the contract method 0xd77bfdb9. +// +// Solidity: function parseTomlBytes(string toml, string key) pure returns(bytes) +func (_Vm *VmCaller) ParseTomlBytes(opts *bind.CallOpts, toml string, key string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlBytes", toml, key) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseTomlBytes is a free data retrieval call binding the contract method 0xd77bfdb9. +// +// Solidity: function parseTomlBytes(string toml, string key) pure returns(bytes) +func (_Vm *VmSession) ParseTomlBytes(toml string, key string) ([]byte, error) { + return _Vm.Contract.ParseTomlBytes(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBytes is a free data retrieval call binding the contract method 0xd77bfdb9. +// +// Solidity: function parseTomlBytes(string toml, string key) pure returns(bytes) +func (_Vm *VmCallerSession) ParseTomlBytes(toml string, key string) ([]byte, error) { + return _Vm.Contract.ParseTomlBytes(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBytes32 is a free data retrieval call binding the contract method 0x8e214810. +// +// Solidity: function parseTomlBytes32(string toml, string key) pure returns(bytes32) +func (_Vm *VmCaller) ParseTomlBytes32(opts *bind.CallOpts, toml string, key string) ([32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlBytes32", toml, key) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ParseTomlBytes32 is a free data retrieval call binding the contract method 0x8e214810. +// +// Solidity: function parseTomlBytes32(string toml, string key) pure returns(bytes32) +func (_Vm *VmSession) ParseTomlBytes32(toml string, key string) ([32]byte, error) { + return _Vm.Contract.ParseTomlBytes32(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBytes32 is a free data retrieval call binding the contract method 0x8e214810. +// +// Solidity: function parseTomlBytes32(string toml, string key) pure returns(bytes32) +func (_Vm *VmCallerSession) ParseTomlBytes32(toml string, key string) ([32]byte, error) { + return _Vm.Contract.ParseTomlBytes32(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBytes32Array is a free data retrieval call binding the contract method 0x3e716f81. +// +// Solidity: function parseTomlBytes32Array(string toml, string key) pure returns(bytes32[]) +func (_Vm *VmCaller) ParseTomlBytes32Array(opts *bind.CallOpts, toml string, key string) ([][32]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlBytes32Array", toml, key) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ParseTomlBytes32Array is a free data retrieval call binding the contract method 0x3e716f81. +// +// Solidity: function parseTomlBytes32Array(string toml, string key) pure returns(bytes32[]) +func (_Vm *VmSession) ParseTomlBytes32Array(toml string, key string) ([][32]byte, error) { + return _Vm.Contract.ParseTomlBytes32Array(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBytes32Array is a free data retrieval call binding the contract method 0x3e716f81. +// +// Solidity: function parseTomlBytes32Array(string toml, string key) pure returns(bytes32[]) +func (_Vm *VmCallerSession) ParseTomlBytes32Array(toml string, key string) ([][32]byte, error) { + return _Vm.Contract.ParseTomlBytes32Array(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBytesArray is a free data retrieval call binding the contract method 0xb197c247. +// +// Solidity: function parseTomlBytesArray(string toml, string key) pure returns(bytes[]) +func (_Vm *VmCaller) ParseTomlBytesArray(opts *bind.CallOpts, toml string, key string) ([][]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlBytesArray", toml, key) + + if err != nil { + return *new([][]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][]byte)).(*[][]byte) + + return out0, err + +} + +// ParseTomlBytesArray is a free data retrieval call binding the contract method 0xb197c247. +// +// Solidity: function parseTomlBytesArray(string toml, string key) pure returns(bytes[]) +func (_Vm *VmSession) ParseTomlBytesArray(toml string, key string) ([][]byte, error) { + return _Vm.Contract.ParseTomlBytesArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlBytesArray is a free data retrieval call binding the contract method 0xb197c247. +// +// Solidity: function parseTomlBytesArray(string toml, string key) pure returns(bytes[]) +func (_Vm *VmCallerSession) ParseTomlBytesArray(toml string, key string) ([][]byte, error) { + return _Vm.Contract.ParseTomlBytesArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlInt is a free data retrieval call binding the contract method 0xc1350739. +// +// Solidity: function parseTomlInt(string toml, string key) pure returns(int256) +func (_Vm *VmCaller) ParseTomlInt(opts *bind.CallOpts, toml string, key string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlInt", toml, key) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseTomlInt is a free data retrieval call binding the contract method 0xc1350739. +// +// Solidity: function parseTomlInt(string toml, string key) pure returns(int256) +func (_Vm *VmSession) ParseTomlInt(toml string, key string) (*big.Int, error) { + return _Vm.Contract.ParseTomlInt(&_Vm.CallOpts, toml, key) +} + +// ParseTomlInt is a free data retrieval call binding the contract method 0xc1350739. +// +// Solidity: function parseTomlInt(string toml, string key) pure returns(int256) +func (_Vm *VmCallerSession) ParseTomlInt(toml string, key string) (*big.Int, error) { + return _Vm.Contract.ParseTomlInt(&_Vm.CallOpts, toml, key) +} + +// ParseTomlIntArray is a free data retrieval call binding the contract method 0xd3522ae6. +// +// Solidity: function parseTomlIntArray(string toml, string key) pure returns(int256[]) +func (_Vm *VmCaller) ParseTomlIntArray(opts *bind.CallOpts, toml string, key string) ([]*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlIntArray", toml, key) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ParseTomlIntArray is a free data retrieval call binding the contract method 0xd3522ae6. +// +// Solidity: function parseTomlIntArray(string toml, string key) pure returns(int256[]) +func (_Vm *VmSession) ParseTomlIntArray(toml string, key string) ([]*big.Int, error) { + return _Vm.Contract.ParseTomlIntArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlIntArray is a free data retrieval call binding the contract method 0xd3522ae6. +// +// Solidity: function parseTomlIntArray(string toml, string key) pure returns(int256[]) +func (_Vm *VmCallerSession) ParseTomlIntArray(toml string, key string) ([]*big.Int, error) { + return _Vm.Contract.ParseTomlIntArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlKeys is a free data retrieval call binding the contract method 0x812a44b2. +// +// Solidity: function parseTomlKeys(string toml, string key) pure returns(string[] keys) +func (_Vm *VmCaller) ParseTomlKeys(opts *bind.CallOpts, toml string, key string) ([]string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlKeys", toml, key) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ParseTomlKeys is a free data retrieval call binding the contract method 0x812a44b2. +// +// Solidity: function parseTomlKeys(string toml, string key) pure returns(string[] keys) +func (_Vm *VmSession) ParseTomlKeys(toml string, key string) ([]string, error) { + return _Vm.Contract.ParseTomlKeys(&_Vm.CallOpts, toml, key) +} + +// ParseTomlKeys is a free data retrieval call binding the contract method 0x812a44b2. +// +// Solidity: function parseTomlKeys(string toml, string key) pure returns(string[] keys) +func (_Vm *VmCallerSession) ParseTomlKeys(toml string, key string) ([]string, error) { + return _Vm.Contract.ParseTomlKeys(&_Vm.CallOpts, toml, key) +} + +// ParseTomlString is a free data retrieval call binding the contract method 0x8bb8dd43. +// +// Solidity: function parseTomlString(string toml, string key) pure returns(string) +func (_Vm *VmCaller) ParseTomlString(opts *bind.CallOpts, toml string, key string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlString", toml, key) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ParseTomlString is a free data retrieval call binding the contract method 0x8bb8dd43. +// +// Solidity: function parseTomlString(string toml, string key) pure returns(string) +func (_Vm *VmSession) ParseTomlString(toml string, key string) (string, error) { + return _Vm.Contract.ParseTomlString(&_Vm.CallOpts, toml, key) +} + +// ParseTomlString is a free data retrieval call binding the contract method 0x8bb8dd43. +// +// Solidity: function parseTomlString(string toml, string key) pure returns(string) +func (_Vm *VmCallerSession) ParseTomlString(toml string, key string) (string, error) { + return _Vm.Contract.ParseTomlString(&_Vm.CallOpts, toml, key) +} + +// ParseTomlStringArray is a free data retrieval call binding the contract method 0x9f629281. +// +// Solidity: function parseTomlStringArray(string toml, string key) pure returns(string[]) +func (_Vm *VmCaller) ParseTomlStringArray(opts *bind.CallOpts, toml string, key string) ([]string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlStringArray", toml, key) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ParseTomlStringArray is a free data retrieval call binding the contract method 0x9f629281. +// +// Solidity: function parseTomlStringArray(string toml, string key) pure returns(string[]) +func (_Vm *VmSession) ParseTomlStringArray(toml string, key string) ([]string, error) { + return _Vm.Contract.ParseTomlStringArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlStringArray is a free data retrieval call binding the contract method 0x9f629281. +// +// Solidity: function parseTomlStringArray(string toml, string key) pure returns(string[]) +func (_Vm *VmCallerSession) ParseTomlStringArray(toml string, key string) ([]string, error) { + return _Vm.Contract.ParseTomlStringArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlUint is a free data retrieval call binding the contract method 0xcc7b0487. +// +// Solidity: function parseTomlUint(string toml, string key) pure returns(uint256) +func (_Vm *VmCaller) ParseTomlUint(opts *bind.CallOpts, toml string, key string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlUint", toml, key) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseTomlUint is a free data retrieval call binding the contract method 0xcc7b0487. +// +// Solidity: function parseTomlUint(string toml, string key) pure returns(uint256) +func (_Vm *VmSession) ParseTomlUint(toml string, key string) (*big.Int, error) { + return _Vm.Contract.ParseTomlUint(&_Vm.CallOpts, toml, key) +} + +// ParseTomlUint is a free data retrieval call binding the contract method 0xcc7b0487. +// +// Solidity: function parseTomlUint(string toml, string key) pure returns(uint256) +func (_Vm *VmCallerSession) ParseTomlUint(toml string, key string) (*big.Int, error) { + return _Vm.Contract.ParseTomlUint(&_Vm.CallOpts, toml, key) +} + +// ParseTomlUintArray is a free data retrieval call binding the contract method 0xb5df27c8. +// +// Solidity: function parseTomlUintArray(string toml, string key) pure returns(uint256[]) +func (_Vm *VmCaller) ParseTomlUintArray(opts *bind.CallOpts, toml string, key string) ([]*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseTomlUintArray", toml, key) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ParseTomlUintArray is a free data retrieval call binding the contract method 0xb5df27c8. +// +// Solidity: function parseTomlUintArray(string toml, string key) pure returns(uint256[]) +func (_Vm *VmSession) ParseTomlUintArray(toml string, key string) ([]*big.Int, error) { + return _Vm.Contract.ParseTomlUintArray(&_Vm.CallOpts, toml, key) +} + +// ParseTomlUintArray is a free data retrieval call binding the contract method 0xb5df27c8. +// +// Solidity: function parseTomlUintArray(string toml, string key) pure returns(uint256[]) +func (_Vm *VmCallerSession) ParseTomlUintArray(toml string, key string) ([]*big.Int, error) { + return _Vm.Contract.ParseTomlUintArray(&_Vm.CallOpts, toml, key) +} + +// ParseUint is a free data retrieval call binding the contract method 0xfa91454d. +// +// Solidity: function parseUint(string stringifiedValue) pure returns(uint256 parsedValue) +func (_Vm *VmCaller) ParseUint(opts *bind.CallOpts, stringifiedValue string) (*big.Int, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "parseUint", stringifiedValue) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseUint is a free data retrieval call binding the contract method 0xfa91454d. +// +// Solidity: function parseUint(string stringifiedValue) pure returns(uint256 parsedValue) +func (_Vm *VmSession) ParseUint(stringifiedValue string) (*big.Int, error) { + return _Vm.Contract.ParseUint(&_Vm.CallOpts, stringifiedValue) +} + +// ParseUint is a free data retrieval call binding the contract method 0xfa91454d. +// +// Solidity: function parseUint(string stringifiedValue) pure returns(uint256 parsedValue) +func (_Vm *VmCallerSession) ParseUint(stringifiedValue string) (*big.Int, error) { + return _Vm.Contract.ParseUint(&_Vm.CallOpts, stringifiedValue) +} + +// ProjectRoot is a free data retrieval call binding the contract method 0xd930a0e6. +// +// Solidity: function projectRoot() view returns(string path) +func (_Vm *VmCaller) ProjectRoot(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "projectRoot") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ProjectRoot is a free data retrieval call binding the contract method 0xd930a0e6. +// +// Solidity: function projectRoot() view returns(string path) +func (_Vm *VmSession) ProjectRoot() (string, error) { + return _Vm.Contract.ProjectRoot(&_Vm.CallOpts) +} + +// ProjectRoot is a free data retrieval call binding the contract method 0xd930a0e6. +// +// Solidity: function projectRoot() view returns(string path) +func (_Vm *VmCallerSession) ProjectRoot() (string, error) { + return _Vm.Contract.ProjectRoot(&_Vm.CallOpts) +} + +// ReadDir is a free data retrieval call binding the contract method 0x1497876c. +// +// Solidity: function readDir(string path, uint64 maxDepth) view returns((string,string,uint64,bool,bool)[] entries) +func (_Vm *VmCaller) ReadDir(opts *bind.CallOpts, path string, maxDepth uint64) ([]VmSafeDirEntry, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "readDir", path, maxDepth) + + if err != nil { + return *new([]VmSafeDirEntry), err + } + + out0 := *abi.ConvertType(out[0], new([]VmSafeDirEntry)).(*[]VmSafeDirEntry) + + return out0, err + +} + +// ReadDir is a free data retrieval call binding the contract method 0x1497876c. +// +// Solidity: function readDir(string path, uint64 maxDepth) view returns((string,string,uint64,bool,bool)[] entries) +func (_Vm *VmSession) ReadDir(path string, maxDepth uint64) ([]VmSafeDirEntry, error) { + return _Vm.Contract.ReadDir(&_Vm.CallOpts, path, maxDepth) +} + +// ReadDir is a free data retrieval call binding the contract method 0x1497876c. +// +// Solidity: function readDir(string path, uint64 maxDepth) view returns((string,string,uint64,bool,bool)[] entries) +func (_Vm *VmCallerSession) ReadDir(path string, maxDepth uint64) ([]VmSafeDirEntry, error) { + return _Vm.Contract.ReadDir(&_Vm.CallOpts, path, maxDepth) +} + +// ReadDir0 is a free data retrieval call binding the contract method 0x8102d70d. +// +// Solidity: function readDir(string path, uint64 maxDepth, bool followLinks) view returns((string,string,uint64,bool,bool)[] entries) +func (_Vm *VmCaller) ReadDir0(opts *bind.CallOpts, path string, maxDepth uint64, followLinks bool) ([]VmSafeDirEntry, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "readDir0", path, maxDepth, followLinks) + + if err != nil { + return *new([]VmSafeDirEntry), err + } + + out0 := *abi.ConvertType(out[0], new([]VmSafeDirEntry)).(*[]VmSafeDirEntry) + + return out0, err + +} + +// ReadDir0 is a free data retrieval call binding the contract method 0x8102d70d. +// +// Solidity: function readDir(string path, uint64 maxDepth, bool followLinks) view returns((string,string,uint64,bool,bool)[] entries) +func (_Vm *VmSession) ReadDir0(path string, maxDepth uint64, followLinks bool) ([]VmSafeDirEntry, error) { + return _Vm.Contract.ReadDir0(&_Vm.CallOpts, path, maxDepth, followLinks) +} + +// ReadDir0 is a free data retrieval call binding the contract method 0x8102d70d. +// +// Solidity: function readDir(string path, uint64 maxDepth, bool followLinks) view returns((string,string,uint64,bool,bool)[] entries) +func (_Vm *VmCallerSession) ReadDir0(path string, maxDepth uint64, followLinks bool) ([]VmSafeDirEntry, error) { + return _Vm.Contract.ReadDir0(&_Vm.CallOpts, path, maxDepth, followLinks) +} + +// ReadDir1 is a free data retrieval call binding the contract method 0xc4bc59e0. +// +// Solidity: function readDir(string path) view returns((string,string,uint64,bool,bool)[] entries) +func (_Vm *VmCaller) ReadDir1(opts *bind.CallOpts, path string) ([]VmSafeDirEntry, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "readDir1", path) + + if err != nil { + return *new([]VmSafeDirEntry), err + } + + out0 := *abi.ConvertType(out[0], new([]VmSafeDirEntry)).(*[]VmSafeDirEntry) + + return out0, err + +} + +// ReadDir1 is a free data retrieval call binding the contract method 0xc4bc59e0. +// +// Solidity: function readDir(string path) view returns((string,string,uint64,bool,bool)[] entries) +func (_Vm *VmSession) ReadDir1(path string) ([]VmSafeDirEntry, error) { + return _Vm.Contract.ReadDir1(&_Vm.CallOpts, path) +} + +// ReadDir1 is a free data retrieval call binding the contract method 0xc4bc59e0. +// +// Solidity: function readDir(string path) view returns((string,string,uint64,bool,bool)[] entries) +func (_Vm *VmCallerSession) ReadDir1(path string) ([]VmSafeDirEntry, error) { + return _Vm.Contract.ReadDir1(&_Vm.CallOpts, path) +} + +// ReadFile is a free data retrieval call binding the contract method 0x60f9bb11. +// +// Solidity: function readFile(string path) view returns(string data) +func (_Vm *VmCaller) ReadFile(opts *bind.CallOpts, path string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "readFile", path) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ReadFile is a free data retrieval call binding the contract method 0x60f9bb11. +// +// Solidity: function readFile(string path) view returns(string data) +func (_Vm *VmSession) ReadFile(path string) (string, error) { + return _Vm.Contract.ReadFile(&_Vm.CallOpts, path) +} + +// ReadFile is a free data retrieval call binding the contract method 0x60f9bb11. +// +// Solidity: function readFile(string path) view returns(string data) +func (_Vm *VmCallerSession) ReadFile(path string) (string, error) { + return _Vm.Contract.ReadFile(&_Vm.CallOpts, path) +} + +// ReadFileBinary is a free data retrieval call binding the contract method 0x16ed7bc4. +// +// Solidity: function readFileBinary(string path) view returns(bytes data) +func (_Vm *VmCaller) ReadFileBinary(opts *bind.CallOpts, path string) ([]byte, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "readFileBinary", path) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ReadFileBinary is a free data retrieval call binding the contract method 0x16ed7bc4. +// +// Solidity: function readFileBinary(string path) view returns(bytes data) +func (_Vm *VmSession) ReadFileBinary(path string) ([]byte, error) { + return _Vm.Contract.ReadFileBinary(&_Vm.CallOpts, path) +} + +// ReadFileBinary is a free data retrieval call binding the contract method 0x16ed7bc4. +// +// Solidity: function readFileBinary(string path) view returns(bytes data) +func (_Vm *VmCallerSession) ReadFileBinary(path string) ([]byte, error) { + return _Vm.Contract.ReadFileBinary(&_Vm.CallOpts, path) +} + +// ReadLine is a free data retrieval call binding the contract method 0x70f55728. +// +// Solidity: function readLine(string path) view returns(string line) +func (_Vm *VmCaller) ReadLine(opts *bind.CallOpts, path string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "readLine", path) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ReadLine is a free data retrieval call binding the contract method 0x70f55728. +// +// Solidity: function readLine(string path) view returns(string line) +func (_Vm *VmSession) ReadLine(path string) (string, error) { + return _Vm.Contract.ReadLine(&_Vm.CallOpts, path) +} + +// ReadLine is a free data retrieval call binding the contract method 0x70f55728. +// +// Solidity: function readLine(string path) view returns(string line) +func (_Vm *VmCallerSession) ReadLine(path string) (string, error) { + return _Vm.Contract.ReadLine(&_Vm.CallOpts, path) +} + +// ReadLink is a free data retrieval call binding the contract method 0x9f5684a2. +// +// Solidity: function readLink(string linkPath) view returns(string targetPath) +func (_Vm *VmCaller) ReadLink(opts *bind.CallOpts, linkPath string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "readLink", linkPath) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ReadLink is a free data retrieval call binding the contract method 0x9f5684a2. +// +// Solidity: function readLink(string linkPath) view returns(string targetPath) +func (_Vm *VmSession) ReadLink(linkPath string) (string, error) { + return _Vm.Contract.ReadLink(&_Vm.CallOpts, linkPath) +} + +// ReadLink is a free data retrieval call binding the contract method 0x9f5684a2. +// +// Solidity: function readLink(string linkPath) view returns(string targetPath) +func (_Vm *VmCallerSession) ReadLink(linkPath string) (string, error) { + return _Vm.Contract.ReadLink(&_Vm.CallOpts, linkPath) +} + +// Replace is a free data retrieval call binding the contract method 0xe00ad03e. +// +// Solidity: function replace(string input, string from, string to) pure returns(string output) +func (_Vm *VmCaller) Replace(opts *bind.CallOpts, input string, from string, to string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "replace", input, from, to) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Replace is a free data retrieval call binding the contract method 0xe00ad03e. +// +// Solidity: function replace(string input, string from, string to) pure returns(string output) +func (_Vm *VmSession) Replace(input string, from string, to string) (string, error) { + return _Vm.Contract.Replace(&_Vm.CallOpts, input, from, to) +} + +// Replace is a free data retrieval call binding the contract method 0xe00ad03e. +// +// Solidity: function replace(string input, string from, string to) pure returns(string output) +func (_Vm *VmCallerSession) Replace(input string, from string, to string) (string, error) { + return _Vm.Contract.Replace(&_Vm.CallOpts, input, from, to) +} + +// RpcUrl is a free data retrieval call binding the contract method 0x975a6ce9. +// +// Solidity: function rpcUrl(string rpcAlias) view returns(string json) +func (_Vm *VmCaller) RpcUrl(opts *bind.CallOpts, rpcAlias string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "rpcUrl", rpcAlias) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// RpcUrl is a free data retrieval call binding the contract method 0x975a6ce9. +// +// Solidity: function rpcUrl(string rpcAlias) view returns(string json) +func (_Vm *VmSession) RpcUrl(rpcAlias string) (string, error) { + return _Vm.Contract.RpcUrl(&_Vm.CallOpts, rpcAlias) +} + +// RpcUrl is a free data retrieval call binding the contract method 0x975a6ce9. +// +// Solidity: function rpcUrl(string rpcAlias) view returns(string json) +func (_Vm *VmCallerSession) RpcUrl(rpcAlias string) (string, error) { + return _Vm.Contract.RpcUrl(&_Vm.CallOpts, rpcAlias) +} + +// RpcUrlStructs is a free data retrieval call binding the contract method 0x9d2ad72a. +// +// Solidity: function rpcUrlStructs() view returns((string,string)[] urls) +func (_Vm *VmCaller) RpcUrlStructs(opts *bind.CallOpts) ([]VmSafeRpc, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "rpcUrlStructs") + + if err != nil { + return *new([]VmSafeRpc), err + } + + out0 := *abi.ConvertType(out[0], new([]VmSafeRpc)).(*[]VmSafeRpc) + + return out0, err + +} + +// RpcUrlStructs is a free data retrieval call binding the contract method 0x9d2ad72a. +// +// Solidity: function rpcUrlStructs() view returns((string,string)[] urls) +func (_Vm *VmSession) RpcUrlStructs() ([]VmSafeRpc, error) { + return _Vm.Contract.RpcUrlStructs(&_Vm.CallOpts) +} + +// RpcUrlStructs is a free data retrieval call binding the contract method 0x9d2ad72a. +// +// Solidity: function rpcUrlStructs() view returns((string,string)[] urls) +func (_Vm *VmCallerSession) RpcUrlStructs() ([]VmSafeRpc, error) { + return _Vm.Contract.RpcUrlStructs(&_Vm.CallOpts) +} + +// RpcUrls is a free data retrieval call binding the contract method 0xa85a8418. +// +// Solidity: function rpcUrls() view returns(string[2][] urls) +func (_Vm *VmCaller) RpcUrls(opts *bind.CallOpts) ([][2]string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "rpcUrls") + + if err != nil { + return *new([][2]string), err + } + + out0 := *abi.ConvertType(out[0], new([][2]string)).(*[][2]string) + + return out0, err + +} + +// RpcUrls is a free data retrieval call binding the contract method 0xa85a8418. +// +// Solidity: function rpcUrls() view returns(string[2][] urls) +func (_Vm *VmSession) RpcUrls() ([][2]string, error) { + return _Vm.Contract.RpcUrls(&_Vm.CallOpts) +} + +// RpcUrls is a free data retrieval call binding the contract method 0xa85a8418. +// +// Solidity: function rpcUrls() view returns(string[2][] urls) +func (_Vm *VmCallerSession) RpcUrls() ([][2]string, error) { + return _Vm.Contract.RpcUrls(&_Vm.CallOpts) +} + +// SerializeJsonType is a free data retrieval call binding the contract method 0x6d4f96a6. +// +// Solidity: function serializeJsonType(string typeDescription, bytes value) pure returns(string json) +func (_Vm *VmCaller) SerializeJsonType(opts *bind.CallOpts, typeDescription string, value []byte) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "serializeJsonType", typeDescription, value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// SerializeJsonType is a free data retrieval call binding the contract method 0x6d4f96a6. +// +// Solidity: function serializeJsonType(string typeDescription, bytes value) pure returns(string json) +func (_Vm *VmSession) SerializeJsonType(typeDescription string, value []byte) (string, error) { + return _Vm.Contract.SerializeJsonType(&_Vm.CallOpts, typeDescription, value) +} + +// SerializeJsonType is a free data retrieval call binding the contract method 0x6d4f96a6. +// +// Solidity: function serializeJsonType(string typeDescription, bytes value) pure returns(string json) +func (_Vm *VmCallerSession) SerializeJsonType(typeDescription string, value []byte) (string, error) { + return _Vm.Contract.SerializeJsonType(&_Vm.CallOpts, typeDescription, value) +} + +// Sign is a free data retrieval call binding the contract method 0x799cd333. +// +// Solidity: function sign(bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmCaller) Sign(opts *bind.CallOpts, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "sign", digest) + + outstruct := new(struct { + V uint8 + R [32]byte + S [32]byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.V = *abi.ConvertType(out[0], new(uint8)).(*uint8) + outstruct.R = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte) + outstruct.S = *abi.ConvertType(out[2], new([32]byte)).(*[32]byte) + + return *outstruct, err + +} + +// Sign is a free data retrieval call binding the contract method 0x799cd333. +// +// Solidity: function sign(bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmSession) Sign(digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _Vm.Contract.Sign(&_Vm.CallOpts, digest) +} + +// Sign is a free data retrieval call binding the contract method 0x799cd333. +// +// Solidity: function sign(bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmCallerSession) Sign(digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _Vm.Contract.Sign(&_Vm.CallOpts, digest) +} + +// Sign0 is a free data retrieval call binding the contract method 0x8c1aa205. +// +// Solidity: function sign(address signer, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmCaller) Sign0(opts *bind.CallOpts, signer common.Address, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "sign0", signer, digest) + + outstruct := new(struct { + V uint8 + R [32]byte + S [32]byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.V = *abi.ConvertType(out[0], new(uint8)).(*uint8) + outstruct.R = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte) + outstruct.S = *abi.ConvertType(out[2], new([32]byte)).(*[32]byte) + + return *outstruct, err + +} + +// Sign0 is a free data retrieval call binding the contract method 0x8c1aa205. +// +// Solidity: function sign(address signer, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmSession) Sign0(signer common.Address, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _Vm.Contract.Sign0(&_Vm.CallOpts, signer, digest) +} + +// Sign0 is a free data retrieval call binding the contract method 0x8c1aa205. +// +// Solidity: function sign(address signer, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmCallerSession) Sign0(signer common.Address, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _Vm.Contract.Sign0(&_Vm.CallOpts, signer, digest) +} + +// Sign2 is a free data retrieval call binding the contract method 0xe341eaa4. +// +// Solidity: function sign(uint256 privateKey, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmCaller) Sign2(opts *bind.CallOpts, privateKey *big.Int, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "sign2", privateKey, digest) + + outstruct := new(struct { + V uint8 + R [32]byte + S [32]byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.V = *abi.ConvertType(out[0], new(uint8)).(*uint8) + outstruct.R = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte) + outstruct.S = *abi.ConvertType(out[2], new([32]byte)).(*[32]byte) + + return *outstruct, err + +} + +// Sign2 is a free data retrieval call binding the contract method 0xe341eaa4. +// +// Solidity: function sign(uint256 privateKey, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmSession) Sign2(privateKey *big.Int, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _Vm.Contract.Sign2(&_Vm.CallOpts, privateKey, digest) +} + +// Sign2 is a free data retrieval call binding the contract method 0xe341eaa4. +// +// Solidity: function sign(uint256 privateKey, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmCallerSession) Sign2(privateKey *big.Int, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _Vm.Contract.Sign2(&_Vm.CallOpts, privateKey, digest) +} + +// SignP256 is a free data retrieval call binding the contract method 0x83211b40. +// +// Solidity: function signP256(uint256 privateKey, bytes32 digest) pure returns(bytes32 r, bytes32 s) +func (_Vm *VmCaller) SignP256(opts *bind.CallOpts, privateKey *big.Int, digest [32]byte) (struct { + R [32]byte + S [32]byte +}, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "signP256", privateKey, digest) + + outstruct := new(struct { + R [32]byte + S [32]byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.R = *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + outstruct.S = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte) + + return *outstruct, err + +} + +// SignP256 is a free data retrieval call binding the contract method 0x83211b40. +// +// Solidity: function signP256(uint256 privateKey, bytes32 digest) pure returns(bytes32 r, bytes32 s) +func (_Vm *VmSession) SignP256(privateKey *big.Int, digest [32]byte) (struct { + R [32]byte + S [32]byte +}, error) { + return _Vm.Contract.SignP256(&_Vm.CallOpts, privateKey, digest) +} + +// SignP256 is a free data retrieval call binding the contract method 0x83211b40. +// +// Solidity: function signP256(uint256 privateKey, bytes32 digest) pure returns(bytes32 r, bytes32 s) +func (_Vm *VmCallerSession) SignP256(privateKey *big.Int, digest [32]byte) (struct { + R [32]byte + S [32]byte +}, error) { + return _Vm.Contract.SignP256(&_Vm.CallOpts, privateKey, digest) +} + +// Split is a free data retrieval call binding the contract method 0x8bb75533. +// +// Solidity: function split(string input, string delimiter) pure returns(string[] outputs) +func (_Vm *VmCaller) Split(opts *bind.CallOpts, input string, delimiter string) ([]string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "split", input, delimiter) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// Split is a free data retrieval call binding the contract method 0x8bb75533. +// +// Solidity: function split(string input, string delimiter) pure returns(string[] outputs) +func (_Vm *VmSession) Split(input string, delimiter string) ([]string, error) { + return _Vm.Contract.Split(&_Vm.CallOpts, input, delimiter) +} + +// Split is a free data retrieval call binding the contract method 0x8bb75533. +// +// Solidity: function split(string input, string delimiter) pure returns(string[] outputs) +func (_Vm *VmCallerSession) Split(input string, delimiter string) ([]string, error) { + return _Vm.Contract.Split(&_Vm.CallOpts, input, delimiter) +} + +// ToBase64 is a free data retrieval call binding the contract method 0x3f8be2c8. +// +// Solidity: function toBase64(string data) pure returns(string) +func (_Vm *VmCaller) ToBase64(opts *bind.CallOpts, data string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toBase64", data) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToBase64 is a free data retrieval call binding the contract method 0x3f8be2c8. +// +// Solidity: function toBase64(string data) pure returns(string) +func (_Vm *VmSession) ToBase64(data string) (string, error) { + return _Vm.Contract.ToBase64(&_Vm.CallOpts, data) +} + +// ToBase64 is a free data retrieval call binding the contract method 0x3f8be2c8. +// +// Solidity: function toBase64(string data) pure returns(string) +func (_Vm *VmCallerSession) ToBase64(data string) (string, error) { + return _Vm.Contract.ToBase64(&_Vm.CallOpts, data) +} + +// ToBase640 is a free data retrieval call binding the contract method 0xa5cbfe65. +// +// Solidity: function toBase64(bytes data) pure returns(string) +func (_Vm *VmCaller) ToBase640(opts *bind.CallOpts, data []byte) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toBase640", data) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToBase640 is a free data retrieval call binding the contract method 0xa5cbfe65. +// +// Solidity: function toBase64(bytes data) pure returns(string) +func (_Vm *VmSession) ToBase640(data []byte) (string, error) { + return _Vm.Contract.ToBase640(&_Vm.CallOpts, data) +} + +// ToBase640 is a free data retrieval call binding the contract method 0xa5cbfe65. +// +// Solidity: function toBase64(bytes data) pure returns(string) +func (_Vm *VmCallerSession) ToBase640(data []byte) (string, error) { + return _Vm.Contract.ToBase640(&_Vm.CallOpts, data) +} + +// ToBase64URL is a free data retrieval call binding the contract method 0xae3165b3. +// +// Solidity: function toBase64URL(string data) pure returns(string) +func (_Vm *VmCaller) ToBase64URL(opts *bind.CallOpts, data string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toBase64URL", data) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToBase64URL is a free data retrieval call binding the contract method 0xae3165b3. +// +// Solidity: function toBase64URL(string data) pure returns(string) +func (_Vm *VmSession) ToBase64URL(data string) (string, error) { + return _Vm.Contract.ToBase64URL(&_Vm.CallOpts, data) +} + +// ToBase64URL is a free data retrieval call binding the contract method 0xae3165b3. +// +// Solidity: function toBase64URL(string data) pure returns(string) +func (_Vm *VmCallerSession) ToBase64URL(data string) (string, error) { + return _Vm.Contract.ToBase64URL(&_Vm.CallOpts, data) +} + +// ToBase64URL0 is a free data retrieval call binding the contract method 0xc8bd0e4a. +// +// Solidity: function toBase64URL(bytes data) pure returns(string) +func (_Vm *VmCaller) ToBase64URL0(opts *bind.CallOpts, data []byte) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toBase64URL0", data) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToBase64URL0 is a free data retrieval call binding the contract method 0xc8bd0e4a. +// +// Solidity: function toBase64URL(bytes data) pure returns(string) +func (_Vm *VmSession) ToBase64URL0(data []byte) (string, error) { + return _Vm.Contract.ToBase64URL0(&_Vm.CallOpts, data) +} + +// ToBase64URL0 is a free data retrieval call binding the contract method 0xc8bd0e4a. +// +// Solidity: function toBase64URL(bytes data) pure returns(string) +func (_Vm *VmCallerSession) ToBase64URL0(data []byte) (string, error) { + return _Vm.Contract.ToBase64URL0(&_Vm.CallOpts, data) +} + +// ToLowercase is a free data retrieval call binding the contract method 0x50bb0884. +// +// Solidity: function toLowercase(string input) pure returns(string output) +func (_Vm *VmCaller) ToLowercase(opts *bind.CallOpts, input string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toLowercase", input) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToLowercase is a free data retrieval call binding the contract method 0x50bb0884. +// +// Solidity: function toLowercase(string input) pure returns(string output) +func (_Vm *VmSession) ToLowercase(input string) (string, error) { + return _Vm.Contract.ToLowercase(&_Vm.CallOpts, input) +} + +// ToLowercase is a free data retrieval call binding the contract method 0x50bb0884. +// +// Solidity: function toLowercase(string input) pure returns(string output) +func (_Vm *VmCallerSession) ToLowercase(input string) (string, error) { + return _Vm.Contract.ToLowercase(&_Vm.CallOpts, input) +} + +// ToString is a free data retrieval call binding the contract method 0x56ca623e. +// +// Solidity: function toString(address value) pure returns(string stringifiedValue) +func (_Vm *VmCaller) ToString(opts *bind.CallOpts, value common.Address) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toString", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString is a free data retrieval call binding the contract method 0x56ca623e. +// +// Solidity: function toString(address value) pure returns(string stringifiedValue) +func (_Vm *VmSession) ToString(value common.Address) (string, error) { + return _Vm.Contract.ToString(&_Vm.CallOpts, value) +} + +// ToString is a free data retrieval call binding the contract method 0x56ca623e. +// +// Solidity: function toString(address value) pure returns(string stringifiedValue) +func (_Vm *VmCallerSession) ToString(value common.Address) (string, error) { + return _Vm.Contract.ToString(&_Vm.CallOpts, value) +} + +// ToString0 is a free data retrieval call binding the contract method 0x6900a3ae. +// +// Solidity: function toString(uint256 value) pure returns(string stringifiedValue) +func (_Vm *VmCaller) ToString0(opts *bind.CallOpts, value *big.Int) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toString0", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString0 is a free data retrieval call binding the contract method 0x6900a3ae. +// +// Solidity: function toString(uint256 value) pure returns(string stringifiedValue) +func (_Vm *VmSession) ToString0(value *big.Int) (string, error) { + return _Vm.Contract.ToString0(&_Vm.CallOpts, value) +} + +// ToString0 is a free data retrieval call binding the contract method 0x6900a3ae. +// +// Solidity: function toString(uint256 value) pure returns(string stringifiedValue) +func (_Vm *VmCallerSession) ToString0(value *big.Int) (string, error) { + return _Vm.Contract.ToString0(&_Vm.CallOpts, value) +} + +// ToString1 is a free data retrieval call binding the contract method 0x71aad10d. +// +// Solidity: function toString(bytes value) pure returns(string stringifiedValue) +func (_Vm *VmCaller) ToString1(opts *bind.CallOpts, value []byte) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toString1", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString1 is a free data retrieval call binding the contract method 0x71aad10d. +// +// Solidity: function toString(bytes value) pure returns(string stringifiedValue) +func (_Vm *VmSession) ToString1(value []byte) (string, error) { + return _Vm.Contract.ToString1(&_Vm.CallOpts, value) +} + +// ToString1 is a free data retrieval call binding the contract method 0x71aad10d. +// +// Solidity: function toString(bytes value) pure returns(string stringifiedValue) +func (_Vm *VmCallerSession) ToString1(value []byte) (string, error) { + return _Vm.Contract.ToString1(&_Vm.CallOpts, value) +} + +// ToString2 is a free data retrieval call binding the contract method 0x71dce7da. +// +// Solidity: function toString(bool value) pure returns(string stringifiedValue) +func (_Vm *VmCaller) ToString2(opts *bind.CallOpts, value bool) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toString2", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString2 is a free data retrieval call binding the contract method 0x71dce7da. +// +// Solidity: function toString(bool value) pure returns(string stringifiedValue) +func (_Vm *VmSession) ToString2(value bool) (string, error) { + return _Vm.Contract.ToString2(&_Vm.CallOpts, value) +} + +// ToString2 is a free data retrieval call binding the contract method 0x71dce7da. +// +// Solidity: function toString(bool value) pure returns(string stringifiedValue) +func (_Vm *VmCallerSession) ToString2(value bool) (string, error) { + return _Vm.Contract.ToString2(&_Vm.CallOpts, value) +} + +// ToString3 is a free data retrieval call binding the contract method 0xa322c40e. +// +// Solidity: function toString(int256 value) pure returns(string stringifiedValue) +func (_Vm *VmCaller) ToString3(opts *bind.CallOpts, value *big.Int) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toString3", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString3 is a free data retrieval call binding the contract method 0xa322c40e. +// +// Solidity: function toString(int256 value) pure returns(string stringifiedValue) +func (_Vm *VmSession) ToString3(value *big.Int) (string, error) { + return _Vm.Contract.ToString3(&_Vm.CallOpts, value) +} + +// ToString3 is a free data retrieval call binding the contract method 0xa322c40e. +// +// Solidity: function toString(int256 value) pure returns(string stringifiedValue) +func (_Vm *VmCallerSession) ToString3(value *big.Int) (string, error) { + return _Vm.Contract.ToString3(&_Vm.CallOpts, value) +} + +// ToString4 is a free data retrieval call binding the contract method 0xb11a19e8. +// +// Solidity: function toString(bytes32 value) pure returns(string stringifiedValue) +func (_Vm *VmCaller) ToString4(opts *bind.CallOpts, value [32]byte) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toString4", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString4 is a free data retrieval call binding the contract method 0xb11a19e8. +// +// Solidity: function toString(bytes32 value) pure returns(string stringifiedValue) +func (_Vm *VmSession) ToString4(value [32]byte) (string, error) { + return _Vm.Contract.ToString4(&_Vm.CallOpts, value) +} + +// ToString4 is a free data retrieval call binding the contract method 0xb11a19e8. +// +// Solidity: function toString(bytes32 value) pure returns(string stringifiedValue) +func (_Vm *VmCallerSession) ToString4(value [32]byte) (string, error) { + return _Vm.Contract.ToString4(&_Vm.CallOpts, value) +} + +// ToUppercase is a free data retrieval call binding the contract method 0x074ae3d7. +// +// Solidity: function toUppercase(string input) pure returns(string output) +func (_Vm *VmCaller) ToUppercase(opts *bind.CallOpts, input string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "toUppercase", input) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToUppercase is a free data retrieval call binding the contract method 0x074ae3d7. +// +// Solidity: function toUppercase(string input) pure returns(string output) +func (_Vm *VmSession) ToUppercase(input string) (string, error) { + return _Vm.Contract.ToUppercase(&_Vm.CallOpts, input) +} + +// ToUppercase is a free data retrieval call binding the contract method 0x074ae3d7. +// +// Solidity: function toUppercase(string input) pure returns(string output) +func (_Vm *VmCallerSession) ToUppercase(input string) (string, error) { + return _Vm.Contract.ToUppercase(&_Vm.CallOpts, input) +} + +// Trim is a free data retrieval call binding the contract method 0xb2dad155. +// +// Solidity: function trim(string input) pure returns(string output) +func (_Vm *VmCaller) Trim(opts *bind.CallOpts, input string) (string, error) { + var out []interface{} + err := _Vm.contract.Call(opts, &out, "trim", input) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Trim is a free data retrieval call binding the contract method 0xb2dad155. +// +// Solidity: function trim(string input) pure returns(string output) +func (_Vm *VmSession) Trim(input string) (string, error) { + return _Vm.Contract.Trim(&_Vm.CallOpts, input) +} + +// Trim is a free data retrieval call binding the contract method 0xb2dad155. +// +// Solidity: function trim(string input) pure returns(string output) +func (_Vm *VmCallerSession) Trim(input string) (string, error) { + return _Vm.Contract.Trim(&_Vm.CallOpts, input) +} + +// Accesses is a paid mutator transaction binding the contract method 0x65bc9481. +// +// Solidity: function accesses(address target) returns(bytes32[] readSlots, bytes32[] writeSlots) +func (_Vm *VmTransactor) Accesses(opts *bind.TransactOpts, target common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "accesses", target) +} + +// Accesses is a paid mutator transaction binding the contract method 0x65bc9481. +// +// Solidity: function accesses(address target) returns(bytes32[] readSlots, bytes32[] writeSlots) +func (_Vm *VmSession) Accesses(target common.Address) (*types.Transaction, error) { + return _Vm.Contract.Accesses(&_Vm.TransactOpts, target) +} + +// Accesses is a paid mutator transaction binding the contract method 0x65bc9481. +// +// Solidity: function accesses(address target) returns(bytes32[] readSlots, bytes32[] writeSlots) +func (_Vm *VmTransactorSession) Accesses(target common.Address) (*types.Transaction, error) { + return _Vm.Contract.Accesses(&_Vm.TransactOpts, target) +} + +// AllowCheatcodes is a paid mutator transaction binding the contract method 0xea060291. +// +// Solidity: function allowCheatcodes(address account) returns() +func (_Vm *VmTransactor) AllowCheatcodes(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "allowCheatcodes", account) +} + +// AllowCheatcodes is a paid mutator transaction binding the contract method 0xea060291. +// +// Solidity: function allowCheatcodes(address account) returns() +func (_Vm *VmSession) AllowCheatcodes(account common.Address) (*types.Transaction, error) { + return _Vm.Contract.AllowCheatcodes(&_Vm.TransactOpts, account) +} + +// AllowCheatcodes is a paid mutator transaction binding the contract method 0xea060291. +// +// Solidity: function allowCheatcodes(address account) returns() +func (_Vm *VmTransactorSession) AllowCheatcodes(account common.Address) (*types.Transaction, error) { + return _Vm.Contract.AllowCheatcodes(&_Vm.TransactOpts, account) +} + +// BlobBaseFee is a paid mutator transaction binding the contract method 0x6d315d7e. +// +// Solidity: function blobBaseFee(uint256 newBlobBaseFee) returns() +func (_Vm *VmTransactor) BlobBaseFee(opts *bind.TransactOpts, newBlobBaseFee *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "blobBaseFee", newBlobBaseFee) +} + +// BlobBaseFee is a paid mutator transaction binding the contract method 0x6d315d7e. +// +// Solidity: function blobBaseFee(uint256 newBlobBaseFee) returns() +func (_Vm *VmSession) BlobBaseFee(newBlobBaseFee *big.Int) (*types.Transaction, error) { + return _Vm.Contract.BlobBaseFee(&_Vm.TransactOpts, newBlobBaseFee) +} + +// BlobBaseFee is a paid mutator transaction binding the contract method 0x6d315d7e. +// +// Solidity: function blobBaseFee(uint256 newBlobBaseFee) returns() +func (_Vm *VmTransactorSession) BlobBaseFee(newBlobBaseFee *big.Int) (*types.Transaction, error) { + return _Vm.Contract.BlobBaseFee(&_Vm.TransactOpts, newBlobBaseFee) +} + +// Blobhashes is a paid mutator transaction binding the contract method 0x129de7eb. +// +// Solidity: function blobhashes(bytes32[] hashes) returns() +func (_Vm *VmTransactor) Blobhashes(opts *bind.TransactOpts, hashes [][32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "blobhashes", hashes) +} + +// Blobhashes is a paid mutator transaction binding the contract method 0x129de7eb. +// +// Solidity: function blobhashes(bytes32[] hashes) returns() +func (_Vm *VmSession) Blobhashes(hashes [][32]byte) (*types.Transaction, error) { + return _Vm.Contract.Blobhashes(&_Vm.TransactOpts, hashes) +} + +// Blobhashes is a paid mutator transaction binding the contract method 0x129de7eb. +// +// Solidity: function blobhashes(bytes32[] hashes) returns() +func (_Vm *VmTransactorSession) Blobhashes(hashes [][32]byte) (*types.Transaction, error) { + return _Vm.Contract.Blobhashes(&_Vm.TransactOpts, hashes) +} + +// Breakpoint is a paid mutator transaction binding the contract method 0xf0259e92. +// +// Solidity: function breakpoint(string char) returns() +func (_Vm *VmTransactor) Breakpoint(opts *bind.TransactOpts, char string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "breakpoint", char) +} + +// Breakpoint is a paid mutator transaction binding the contract method 0xf0259e92. +// +// Solidity: function breakpoint(string char) returns() +func (_Vm *VmSession) Breakpoint(char string) (*types.Transaction, error) { + return _Vm.Contract.Breakpoint(&_Vm.TransactOpts, char) +} + +// Breakpoint is a paid mutator transaction binding the contract method 0xf0259e92. +// +// Solidity: function breakpoint(string char) returns() +func (_Vm *VmTransactorSession) Breakpoint(char string) (*types.Transaction, error) { + return _Vm.Contract.Breakpoint(&_Vm.TransactOpts, char) +} + +// Breakpoint0 is a paid mutator transaction binding the contract method 0xf7d39a8d. +// +// Solidity: function breakpoint(string char, bool value) returns() +func (_Vm *VmTransactor) Breakpoint0(opts *bind.TransactOpts, char string, value bool) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "breakpoint0", char, value) +} + +// Breakpoint0 is a paid mutator transaction binding the contract method 0xf7d39a8d. +// +// Solidity: function breakpoint(string char, bool value) returns() +func (_Vm *VmSession) Breakpoint0(char string, value bool) (*types.Transaction, error) { + return _Vm.Contract.Breakpoint0(&_Vm.TransactOpts, char, value) +} + +// Breakpoint0 is a paid mutator transaction binding the contract method 0xf7d39a8d. +// +// Solidity: function breakpoint(string char, bool value) returns() +func (_Vm *VmTransactorSession) Breakpoint0(char string, value bool) (*types.Transaction, error) { + return _Vm.Contract.Breakpoint0(&_Vm.TransactOpts, char, value) +} + +// Broadcast is a paid mutator transaction binding the contract method 0xafc98040. +// +// Solidity: function broadcast() returns() +func (_Vm *VmTransactor) Broadcast(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "broadcast") +} + +// Broadcast is a paid mutator transaction binding the contract method 0xafc98040. +// +// Solidity: function broadcast() returns() +func (_Vm *VmSession) Broadcast() (*types.Transaction, error) { + return _Vm.Contract.Broadcast(&_Vm.TransactOpts) +} + +// Broadcast is a paid mutator transaction binding the contract method 0xafc98040. +// +// Solidity: function broadcast() returns() +func (_Vm *VmTransactorSession) Broadcast() (*types.Transaction, error) { + return _Vm.Contract.Broadcast(&_Vm.TransactOpts) +} + +// Broadcast0 is a paid mutator transaction binding the contract method 0xe6962cdb. +// +// Solidity: function broadcast(address signer) returns() +func (_Vm *VmTransactor) Broadcast0(opts *bind.TransactOpts, signer common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "broadcast0", signer) +} + +// Broadcast0 is a paid mutator transaction binding the contract method 0xe6962cdb. +// +// Solidity: function broadcast(address signer) returns() +func (_Vm *VmSession) Broadcast0(signer common.Address) (*types.Transaction, error) { + return _Vm.Contract.Broadcast0(&_Vm.TransactOpts, signer) +} + +// Broadcast0 is a paid mutator transaction binding the contract method 0xe6962cdb. +// +// Solidity: function broadcast(address signer) returns() +func (_Vm *VmTransactorSession) Broadcast0(signer common.Address) (*types.Transaction, error) { + return _Vm.Contract.Broadcast0(&_Vm.TransactOpts, signer) +} + +// Broadcast1 is a paid mutator transaction binding the contract method 0xf67a965b. +// +// Solidity: function broadcast(uint256 privateKey) returns() +func (_Vm *VmTransactor) Broadcast1(opts *bind.TransactOpts, privateKey *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "broadcast1", privateKey) +} + +// Broadcast1 is a paid mutator transaction binding the contract method 0xf67a965b. +// +// Solidity: function broadcast(uint256 privateKey) returns() +func (_Vm *VmSession) Broadcast1(privateKey *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Broadcast1(&_Vm.TransactOpts, privateKey) +} + +// Broadcast1 is a paid mutator transaction binding the contract method 0xf67a965b. +// +// Solidity: function broadcast(uint256 privateKey) returns() +func (_Vm *VmTransactorSession) Broadcast1(privateKey *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Broadcast1(&_Vm.TransactOpts, privateKey) +} + +// ChainId is a paid mutator transaction binding the contract method 0x4049ddd2. +// +// Solidity: function chainId(uint256 newChainId) returns() +func (_Vm *VmTransactor) ChainId(opts *bind.TransactOpts, newChainId *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "chainId", newChainId) +} + +// ChainId is a paid mutator transaction binding the contract method 0x4049ddd2. +// +// Solidity: function chainId(uint256 newChainId) returns() +func (_Vm *VmSession) ChainId(newChainId *big.Int) (*types.Transaction, error) { + return _Vm.Contract.ChainId(&_Vm.TransactOpts, newChainId) +} + +// ChainId is a paid mutator transaction binding the contract method 0x4049ddd2. +// +// Solidity: function chainId(uint256 newChainId) returns() +func (_Vm *VmTransactorSession) ChainId(newChainId *big.Int) (*types.Transaction, error) { + return _Vm.Contract.ChainId(&_Vm.TransactOpts, newChainId) +} + +// ClearMockedCalls is a paid mutator transaction binding the contract method 0x3fdf4e15. +// +// Solidity: function clearMockedCalls() returns() +func (_Vm *VmTransactor) ClearMockedCalls(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "clearMockedCalls") +} + +// ClearMockedCalls is a paid mutator transaction binding the contract method 0x3fdf4e15. +// +// Solidity: function clearMockedCalls() returns() +func (_Vm *VmSession) ClearMockedCalls() (*types.Transaction, error) { + return _Vm.Contract.ClearMockedCalls(&_Vm.TransactOpts) +} + +// ClearMockedCalls is a paid mutator transaction binding the contract method 0x3fdf4e15. +// +// Solidity: function clearMockedCalls() returns() +func (_Vm *VmTransactorSession) ClearMockedCalls() (*types.Transaction, error) { + return _Vm.Contract.ClearMockedCalls(&_Vm.TransactOpts) +} + +// CloseFile is a paid mutator transaction binding the contract method 0x48c3241f. +// +// Solidity: function closeFile(string path) returns() +func (_Vm *VmTransactor) CloseFile(opts *bind.TransactOpts, path string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "closeFile", path) +} + +// CloseFile is a paid mutator transaction binding the contract method 0x48c3241f. +// +// Solidity: function closeFile(string path) returns() +func (_Vm *VmSession) CloseFile(path string) (*types.Transaction, error) { + return _Vm.Contract.CloseFile(&_Vm.TransactOpts, path) +} + +// CloseFile is a paid mutator transaction binding the contract method 0x48c3241f. +// +// Solidity: function closeFile(string path) returns() +func (_Vm *VmTransactorSession) CloseFile(path string) (*types.Transaction, error) { + return _Vm.Contract.CloseFile(&_Vm.TransactOpts, path) +} + +// Coinbase is a paid mutator transaction binding the contract method 0xff483c54. +// +// Solidity: function coinbase(address newCoinbase) returns() +func (_Vm *VmTransactor) Coinbase(opts *bind.TransactOpts, newCoinbase common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "coinbase", newCoinbase) +} + +// Coinbase is a paid mutator transaction binding the contract method 0xff483c54. +// +// Solidity: function coinbase(address newCoinbase) returns() +func (_Vm *VmSession) Coinbase(newCoinbase common.Address) (*types.Transaction, error) { + return _Vm.Contract.Coinbase(&_Vm.TransactOpts, newCoinbase) +} + +// Coinbase is a paid mutator transaction binding the contract method 0xff483c54. +// +// Solidity: function coinbase(address newCoinbase) returns() +func (_Vm *VmTransactorSession) Coinbase(newCoinbase common.Address) (*types.Transaction, error) { + return _Vm.Contract.Coinbase(&_Vm.TransactOpts, newCoinbase) +} + +// CopyFile is a paid mutator transaction binding the contract method 0xa54a87d8. +// +// Solidity: function copyFile(string from, string to) returns(uint64 copied) +func (_Vm *VmTransactor) CopyFile(opts *bind.TransactOpts, from string, to string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "copyFile", from, to) +} + +// CopyFile is a paid mutator transaction binding the contract method 0xa54a87d8. +// +// Solidity: function copyFile(string from, string to) returns(uint64 copied) +func (_Vm *VmSession) CopyFile(from string, to string) (*types.Transaction, error) { + return _Vm.Contract.CopyFile(&_Vm.TransactOpts, from, to) +} + +// CopyFile is a paid mutator transaction binding the contract method 0xa54a87d8. +// +// Solidity: function copyFile(string from, string to) returns(uint64 copied) +func (_Vm *VmTransactorSession) CopyFile(from string, to string) (*types.Transaction, error) { + return _Vm.Contract.CopyFile(&_Vm.TransactOpts, from, to) +} + +// CreateDir is a paid mutator transaction binding the contract method 0x168b64d3. +// +// Solidity: function createDir(string path, bool recursive) returns() +func (_Vm *VmTransactor) CreateDir(opts *bind.TransactOpts, path string, recursive bool) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "createDir", path, recursive) +} + +// CreateDir is a paid mutator transaction binding the contract method 0x168b64d3. +// +// Solidity: function createDir(string path, bool recursive) returns() +func (_Vm *VmSession) CreateDir(path string, recursive bool) (*types.Transaction, error) { + return _Vm.Contract.CreateDir(&_Vm.TransactOpts, path, recursive) +} + +// CreateDir is a paid mutator transaction binding the contract method 0x168b64d3. +// +// Solidity: function createDir(string path, bool recursive) returns() +func (_Vm *VmTransactorSession) CreateDir(path string, recursive bool) (*types.Transaction, error) { + return _Vm.Contract.CreateDir(&_Vm.TransactOpts, path, recursive) +} + +// CreateFork is a paid mutator transaction binding the contract method 0x31ba3498. +// +// Solidity: function createFork(string urlOrAlias) returns(uint256 forkId) +func (_Vm *VmTransactor) CreateFork(opts *bind.TransactOpts, urlOrAlias string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "createFork", urlOrAlias) +} + +// CreateFork is a paid mutator transaction binding the contract method 0x31ba3498. +// +// Solidity: function createFork(string urlOrAlias) returns(uint256 forkId) +func (_Vm *VmSession) CreateFork(urlOrAlias string) (*types.Transaction, error) { + return _Vm.Contract.CreateFork(&_Vm.TransactOpts, urlOrAlias) +} + +// CreateFork is a paid mutator transaction binding the contract method 0x31ba3498. +// +// Solidity: function createFork(string urlOrAlias) returns(uint256 forkId) +func (_Vm *VmTransactorSession) CreateFork(urlOrAlias string) (*types.Transaction, error) { + return _Vm.Contract.CreateFork(&_Vm.TransactOpts, urlOrAlias) +} + +// CreateFork0 is a paid mutator transaction binding the contract method 0x6ba3ba2b. +// +// Solidity: function createFork(string urlOrAlias, uint256 blockNumber) returns(uint256 forkId) +func (_Vm *VmTransactor) CreateFork0(opts *bind.TransactOpts, urlOrAlias string, blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "createFork0", urlOrAlias, blockNumber) +} + +// CreateFork0 is a paid mutator transaction binding the contract method 0x6ba3ba2b. +// +// Solidity: function createFork(string urlOrAlias, uint256 blockNumber) returns(uint256 forkId) +func (_Vm *VmSession) CreateFork0(urlOrAlias string, blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.Contract.CreateFork0(&_Vm.TransactOpts, urlOrAlias, blockNumber) +} + +// CreateFork0 is a paid mutator transaction binding the contract method 0x6ba3ba2b. +// +// Solidity: function createFork(string urlOrAlias, uint256 blockNumber) returns(uint256 forkId) +func (_Vm *VmTransactorSession) CreateFork0(urlOrAlias string, blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.Contract.CreateFork0(&_Vm.TransactOpts, urlOrAlias, blockNumber) +} + +// CreateFork1 is a paid mutator transaction binding the contract method 0x7ca29682. +// +// Solidity: function createFork(string urlOrAlias, bytes32 txHash) returns(uint256 forkId) +func (_Vm *VmTransactor) CreateFork1(opts *bind.TransactOpts, urlOrAlias string, txHash [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "createFork1", urlOrAlias, txHash) +} + +// CreateFork1 is a paid mutator transaction binding the contract method 0x7ca29682. +// +// Solidity: function createFork(string urlOrAlias, bytes32 txHash) returns(uint256 forkId) +func (_Vm *VmSession) CreateFork1(urlOrAlias string, txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.CreateFork1(&_Vm.TransactOpts, urlOrAlias, txHash) +} + +// CreateFork1 is a paid mutator transaction binding the contract method 0x7ca29682. +// +// Solidity: function createFork(string urlOrAlias, bytes32 txHash) returns(uint256 forkId) +func (_Vm *VmTransactorSession) CreateFork1(urlOrAlias string, txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.CreateFork1(&_Vm.TransactOpts, urlOrAlias, txHash) +} + +// CreateSelectFork is a paid mutator transaction binding the contract method 0x71ee464d. +// +// Solidity: function createSelectFork(string urlOrAlias, uint256 blockNumber) returns(uint256 forkId) +func (_Vm *VmTransactor) CreateSelectFork(opts *bind.TransactOpts, urlOrAlias string, blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "createSelectFork", urlOrAlias, blockNumber) +} + +// CreateSelectFork is a paid mutator transaction binding the contract method 0x71ee464d. +// +// Solidity: function createSelectFork(string urlOrAlias, uint256 blockNumber) returns(uint256 forkId) +func (_Vm *VmSession) CreateSelectFork(urlOrAlias string, blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.Contract.CreateSelectFork(&_Vm.TransactOpts, urlOrAlias, blockNumber) +} + +// CreateSelectFork is a paid mutator transaction binding the contract method 0x71ee464d. +// +// Solidity: function createSelectFork(string urlOrAlias, uint256 blockNumber) returns(uint256 forkId) +func (_Vm *VmTransactorSession) CreateSelectFork(urlOrAlias string, blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.Contract.CreateSelectFork(&_Vm.TransactOpts, urlOrAlias, blockNumber) +} + +// CreateSelectFork0 is a paid mutator transaction binding the contract method 0x84d52b7a. +// +// Solidity: function createSelectFork(string urlOrAlias, bytes32 txHash) returns(uint256 forkId) +func (_Vm *VmTransactor) CreateSelectFork0(opts *bind.TransactOpts, urlOrAlias string, txHash [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "createSelectFork0", urlOrAlias, txHash) +} + +// CreateSelectFork0 is a paid mutator transaction binding the contract method 0x84d52b7a. +// +// Solidity: function createSelectFork(string urlOrAlias, bytes32 txHash) returns(uint256 forkId) +func (_Vm *VmSession) CreateSelectFork0(urlOrAlias string, txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.CreateSelectFork0(&_Vm.TransactOpts, urlOrAlias, txHash) +} + +// CreateSelectFork0 is a paid mutator transaction binding the contract method 0x84d52b7a. +// +// Solidity: function createSelectFork(string urlOrAlias, bytes32 txHash) returns(uint256 forkId) +func (_Vm *VmTransactorSession) CreateSelectFork0(urlOrAlias string, txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.CreateSelectFork0(&_Vm.TransactOpts, urlOrAlias, txHash) +} + +// CreateSelectFork1 is a paid mutator transaction binding the contract method 0x98680034. +// +// Solidity: function createSelectFork(string urlOrAlias) returns(uint256 forkId) +func (_Vm *VmTransactor) CreateSelectFork1(opts *bind.TransactOpts, urlOrAlias string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "createSelectFork1", urlOrAlias) +} + +// CreateSelectFork1 is a paid mutator transaction binding the contract method 0x98680034. +// +// Solidity: function createSelectFork(string urlOrAlias) returns(uint256 forkId) +func (_Vm *VmSession) CreateSelectFork1(urlOrAlias string) (*types.Transaction, error) { + return _Vm.Contract.CreateSelectFork1(&_Vm.TransactOpts, urlOrAlias) +} + +// CreateSelectFork1 is a paid mutator transaction binding the contract method 0x98680034. +// +// Solidity: function createSelectFork(string urlOrAlias) returns(uint256 forkId) +func (_Vm *VmTransactorSession) CreateSelectFork1(urlOrAlias string) (*types.Transaction, error) { + return _Vm.Contract.CreateSelectFork1(&_Vm.TransactOpts, urlOrAlias) +} + +// CreateWallet is a paid mutator transaction binding the contract method 0x7404f1d2. +// +// Solidity: function createWallet(string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_Vm *VmTransactor) CreateWallet(opts *bind.TransactOpts, walletLabel string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "createWallet", walletLabel) +} + +// CreateWallet is a paid mutator transaction binding the contract method 0x7404f1d2. +// +// Solidity: function createWallet(string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_Vm *VmSession) CreateWallet(walletLabel string) (*types.Transaction, error) { + return _Vm.Contract.CreateWallet(&_Vm.TransactOpts, walletLabel) +} + +// CreateWallet is a paid mutator transaction binding the contract method 0x7404f1d2. +// +// Solidity: function createWallet(string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_Vm *VmTransactorSession) CreateWallet(walletLabel string) (*types.Transaction, error) { + return _Vm.Contract.CreateWallet(&_Vm.TransactOpts, walletLabel) +} + +// CreateWallet0 is a paid mutator transaction binding the contract method 0x7a675bb6. +// +// Solidity: function createWallet(uint256 privateKey) returns((address,uint256,uint256,uint256) wallet) +func (_Vm *VmTransactor) CreateWallet0(opts *bind.TransactOpts, privateKey *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "createWallet0", privateKey) +} + +// CreateWallet0 is a paid mutator transaction binding the contract method 0x7a675bb6. +// +// Solidity: function createWallet(uint256 privateKey) returns((address,uint256,uint256,uint256) wallet) +func (_Vm *VmSession) CreateWallet0(privateKey *big.Int) (*types.Transaction, error) { + return _Vm.Contract.CreateWallet0(&_Vm.TransactOpts, privateKey) +} + +// CreateWallet0 is a paid mutator transaction binding the contract method 0x7a675bb6. +// +// Solidity: function createWallet(uint256 privateKey) returns((address,uint256,uint256,uint256) wallet) +func (_Vm *VmTransactorSession) CreateWallet0(privateKey *big.Int) (*types.Transaction, error) { + return _Vm.Contract.CreateWallet0(&_Vm.TransactOpts, privateKey) +} + +// CreateWallet1 is a paid mutator transaction binding the contract method 0xed7c5462. +// +// Solidity: function createWallet(uint256 privateKey, string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_Vm *VmTransactor) CreateWallet1(opts *bind.TransactOpts, privateKey *big.Int, walletLabel string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "createWallet1", privateKey, walletLabel) +} + +// CreateWallet1 is a paid mutator transaction binding the contract method 0xed7c5462. +// +// Solidity: function createWallet(uint256 privateKey, string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_Vm *VmSession) CreateWallet1(privateKey *big.Int, walletLabel string) (*types.Transaction, error) { + return _Vm.Contract.CreateWallet1(&_Vm.TransactOpts, privateKey, walletLabel) +} + +// CreateWallet1 is a paid mutator transaction binding the contract method 0xed7c5462. +// +// Solidity: function createWallet(uint256 privateKey, string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_Vm *VmTransactorSession) CreateWallet1(privateKey *big.Int, walletLabel string) (*types.Transaction, error) { + return _Vm.Contract.CreateWallet1(&_Vm.TransactOpts, privateKey, walletLabel) +} + +// Deal is a paid mutator transaction binding the contract method 0xc88a5e6d. +// +// Solidity: function deal(address account, uint256 newBalance) returns() +func (_Vm *VmTransactor) Deal(opts *bind.TransactOpts, account common.Address, newBalance *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "deal", account, newBalance) +} + +// Deal is a paid mutator transaction binding the contract method 0xc88a5e6d. +// +// Solidity: function deal(address account, uint256 newBalance) returns() +func (_Vm *VmSession) Deal(account common.Address, newBalance *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Deal(&_Vm.TransactOpts, account, newBalance) +} + +// Deal is a paid mutator transaction binding the contract method 0xc88a5e6d. +// +// Solidity: function deal(address account, uint256 newBalance) returns() +func (_Vm *VmTransactorSession) Deal(account common.Address, newBalance *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Deal(&_Vm.TransactOpts, account, newBalance) +} + +// DeleteSnapshot is a paid mutator transaction binding the contract method 0xa6368557. +// +// Solidity: function deleteSnapshot(uint256 snapshotId) returns(bool success) +func (_Vm *VmTransactor) DeleteSnapshot(opts *bind.TransactOpts, snapshotId *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "deleteSnapshot", snapshotId) +} + +// DeleteSnapshot is a paid mutator transaction binding the contract method 0xa6368557. +// +// Solidity: function deleteSnapshot(uint256 snapshotId) returns(bool success) +func (_Vm *VmSession) DeleteSnapshot(snapshotId *big.Int) (*types.Transaction, error) { + return _Vm.Contract.DeleteSnapshot(&_Vm.TransactOpts, snapshotId) +} + +// DeleteSnapshot is a paid mutator transaction binding the contract method 0xa6368557. +// +// Solidity: function deleteSnapshot(uint256 snapshotId) returns(bool success) +func (_Vm *VmTransactorSession) DeleteSnapshot(snapshotId *big.Int) (*types.Transaction, error) { + return _Vm.Contract.DeleteSnapshot(&_Vm.TransactOpts, snapshotId) +} + +// DeleteSnapshots is a paid mutator transaction binding the contract method 0x421ae469. +// +// Solidity: function deleteSnapshots() returns() +func (_Vm *VmTransactor) DeleteSnapshots(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "deleteSnapshots") +} + +// DeleteSnapshots is a paid mutator transaction binding the contract method 0x421ae469. +// +// Solidity: function deleteSnapshots() returns() +func (_Vm *VmSession) DeleteSnapshots() (*types.Transaction, error) { + return _Vm.Contract.DeleteSnapshots(&_Vm.TransactOpts) +} + +// DeleteSnapshots is a paid mutator transaction binding the contract method 0x421ae469. +// +// Solidity: function deleteSnapshots() returns() +func (_Vm *VmTransactorSession) DeleteSnapshots() (*types.Transaction, error) { + return _Vm.Contract.DeleteSnapshots(&_Vm.TransactOpts) +} + +// DeployCode is a paid mutator transaction binding the contract method 0x29ce9dde. +// +// Solidity: function deployCode(string artifactPath, bytes constructorArgs) returns(address deployedAddress) +func (_Vm *VmTransactor) DeployCode(opts *bind.TransactOpts, artifactPath string, constructorArgs []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "deployCode", artifactPath, constructorArgs) +} + +// DeployCode is a paid mutator transaction binding the contract method 0x29ce9dde. +// +// Solidity: function deployCode(string artifactPath, bytes constructorArgs) returns(address deployedAddress) +func (_Vm *VmSession) DeployCode(artifactPath string, constructorArgs []byte) (*types.Transaction, error) { + return _Vm.Contract.DeployCode(&_Vm.TransactOpts, artifactPath, constructorArgs) +} + +// DeployCode is a paid mutator transaction binding the contract method 0x29ce9dde. +// +// Solidity: function deployCode(string artifactPath, bytes constructorArgs) returns(address deployedAddress) +func (_Vm *VmTransactorSession) DeployCode(artifactPath string, constructorArgs []byte) (*types.Transaction, error) { + return _Vm.Contract.DeployCode(&_Vm.TransactOpts, artifactPath, constructorArgs) +} + +// DeployCode0 is a paid mutator transaction binding the contract method 0x9a8325a0. +// +// Solidity: function deployCode(string artifactPath) returns(address deployedAddress) +func (_Vm *VmTransactor) DeployCode0(opts *bind.TransactOpts, artifactPath string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "deployCode0", artifactPath) +} + +// DeployCode0 is a paid mutator transaction binding the contract method 0x9a8325a0. +// +// Solidity: function deployCode(string artifactPath) returns(address deployedAddress) +func (_Vm *VmSession) DeployCode0(artifactPath string) (*types.Transaction, error) { + return _Vm.Contract.DeployCode0(&_Vm.TransactOpts, artifactPath) +} + +// DeployCode0 is a paid mutator transaction binding the contract method 0x9a8325a0. +// +// Solidity: function deployCode(string artifactPath) returns(address deployedAddress) +func (_Vm *VmTransactorSession) DeployCode0(artifactPath string) (*types.Transaction, error) { + return _Vm.Contract.DeployCode0(&_Vm.TransactOpts, artifactPath) +} + +// Difficulty is a paid mutator transaction binding the contract method 0x46cc92d9. +// +// Solidity: function difficulty(uint256 newDifficulty) returns() +func (_Vm *VmTransactor) Difficulty(opts *bind.TransactOpts, newDifficulty *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "difficulty", newDifficulty) +} + +// Difficulty is a paid mutator transaction binding the contract method 0x46cc92d9. +// +// Solidity: function difficulty(uint256 newDifficulty) returns() +func (_Vm *VmSession) Difficulty(newDifficulty *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Difficulty(&_Vm.TransactOpts, newDifficulty) +} + +// Difficulty is a paid mutator transaction binding the contract method 0x46cc92d9. +// +// Solidity: function difficulty(uint256 newDifficulty) returns() +func (_Vm *VmTransactorSession) Difficulty(newDifficulty *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Difficulty(&_Vm.TransactOpts, newDifficulty) +} + +// DumpState is a paid mutator transaction binding the contract method 0x709ecd3f. +// +// Solidity: function dumpState(string pathToStateJson) returns() +func (_Vm *VmTransactor) DumpState(opts *bind.TransactOpts, pathToStateJson string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "dumpState", pathToStateJson) +} + +// DumpState is a paid mutator transaction binding the contract method 0x709ecd3f. +// +// Solidity: function dumpState(string pathToStateJson) returns() +func (_Vm *VmSession) DumpState(pathToStateJson string) (*types.Transaction, error) { + return _Vm.Contract.DumpState(&_Vm.TransactOpts, pathToStateJson) +} + +// DumpState is a paid mutator transaction binding the contract method 0x709ecd3f. +// +// Solidity: function dumpState(string pathToStateJson) returns() +func (_Vm *VmTransactorSession) DumpState(pathToStateJson string) (*types.Transaction, error) { + return _Vm.Contract.DumpState(&_Vm.TransactOpts, pathToStateJson) +} + +// Etch is a paid mutator transaction binding the contract method 0xb4d6c782. +// +// Solidity: function etch(address target, bytes newRuntimeBytecode) returns() +func (_Vm *VmTransactor) Etch(opts *bind.TransactOpts, target common.Address, newRuntimeBytecode []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "etch", target, newRuntimeBytecode) +} + +// Etch is a paid mutator transaction binding the contract method 0xb4d6c782. +// +// Solidity: function etch(address target, bytes newRuntimeBytecode) returns() +func (_Vm *VmSession) Etch(target common.Address, newRuntimeBytecode []byte) (*types.Transaction, error) { + return _Vm.Contract.Etch(&_Vm.TransactOpts, target, newRuntimeBytecode) +} + +// Etch is a paid mutator transaction binding the contract method 0xb4d6c782. +// +// Solidity: function etch(address target, bytes newRuntimeBytecode) returns() +func (_Vm *VmTransactorSession) Etch(target common.Address, newRuntimeBytecode []byte) (*types.Transaction, error) { + return _Vm.Contract.Etch(&_Vm.TransactOpts, target, newRuntimeBytecode) +} + +// EthGetLogs is a paid mutator transaction binding the contract method 0x35e1349b. +// +// Solidity: function eth_getLogs(uint256 fromBlock, uint256 toBlock, address target, bytes32[] topics) returns((address,bytes32[],bytes,bytes32,uint64,bytes32,uint64,uint256,bool)[] logs) +func (_Vm *VmTransactor) EthGetLogs(opts *bind.TransactOpts, fromBlock *big.Int, toBlock *big.Int, target common.Address, topics [][32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "eth_getLogs", fromBlock, toBlock, target, topics) +} + +// EthGetLogs is a paid mutator transaction binding the contract method 0x35e1349b. +// +// Solidity: function eth_getLogs(uint256 fromBlock, uint256 toBlock, address target, bytes32[] topics) returns((address,bytes32[],bytes,bytes32,uint64,bytes32,uint64,uint256,bool)[] logs) +func (_Vm *VmSession) EthGetLogs(fromBlock *big.Int, toBlock *big.Int, target common.Address, topics [][32]byte) (*types.Transaction, error) { + return _Vm.Contract.EthGetLogs(&_Vm.TransactOpts, fromBlock, toBlock, target, topics) +} + +// EthGetLogs is a paid mutator transaction binding the contract method 0x35e1349b. +// +// Solidity: function eth_getLogs(uint256 fromBlock, uint256 toBlock, address target, bytes32[] topics) returns((address,bytes32[],bytes,bytes32,uint64,bytes32,uint64,uint256,bool)[] logs) +func (_Vm *VmTransactorSession) EthGetLogs(fromBlock *big.Int, toBlock *big.Int, target common.Address, topics [][32]byte) (*types.Transaction, error) { + return _Vm.Contract.EthGetLogs(&_Vm.TransactOpts, fromBlock, toBlock, target, topics) +} + +// Exists is a paid mutator transaction binding the contract method 0x261a323e. +// +// Solidity: function exists(string path) returns(bool result) +func (_Vm *VmTransactor) Exists(opts *bind.TransactOpts, path string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "exists", path) +} + +// Exists is a paid mutator transaction binding the contract method 0x261a323e. +// +// Solidity: function exists(string path) returns(bool result) +func (_Vm *VmSession) Exists(path string) (*types.Transaction, error) { + return _Vm.Contract.Exists(&_Vm.TransactOpts, path) +} + +// Exists is a paid mutator transaction binding the contract method 0x261a323e. +// +// Solidity: function exists(string path) returns(bool result) +func (_Vm *VmTransactorSession) Exists(path string) (*types.Transaction, error) { + return _Vm.Contract.Exists(&_Vm.TransactOpts, path) +} + +// ExpectCall is a paid mutator transaction binding the contract method 0x23361207. +// +// Solidity: function expectCall(address callee, uint256 msgValue, uint64 gas, bytes data) returns() +func (_Vm *VmTransactor) ExpectCall(opts *bind.TransactOpts, callee common.Address, msgValue *big.Int, gas uint64, data []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectCall", callee, msgValue, gas, data) +} + +// ExpectCall is a paid mutator transaction binding the contract method 0x23361207. +// +// Solidity: function expectCall(address callee, uint256 msgValue, uint64 gas, bytes data) returns() +func (_Vm *VmSession) ExpectCall(callee common.Address, msgValue *big.Int, gas uint64, data []byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall(&_Vm.TransactOpts, callee, msgValue, gas, data) +} + +// ExpectCall is a paid mutator transaction binding the contract method 0x23361207. +// +// Solidity: function expectCall(address callee, uint256 msgValue, uint64 gas, bytes data) returns() +func (_Vm *VmTransactorSession) ExpectCall(callee common.Address, msgValue *big.Int, gas uint64, data []byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall(&_Vm.TransactOpts, callee, msgValue, gas, data) +} + +// ExpectCall0 is a paid mutator transaction binding the contract method 0x65b7b7cc. +// +// Solidity: function expectCall(address callee, uint256 msgValue, uint64 gas, bytes data, uint64 count) returns() +func (_Vm *VmTransactor) ExpectCall0(opts *bind.TransactOpts, callee common.Address, msgValue *big.Int, gas uint64, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectCall0", callee, msgValue, gas, data, count) +} + +// ExpectCall0 is a paid mutator transaction binding the contract method 0x65b7b7cc. +// +// Solidity: function expectCall(address callee, uint256 msgValue, uint64 gas, bytes data, uint64 count) returns() +func (_Vm *VmSession) ExpectCall0(callee common.Address, msgValue *big.Int, gas uint64, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall0(&_Vm.TransactOpts, callee, msgValue, gas, data, count) +} + +// ExpectCall0 is a paid mutator transaction binding the contract method 0x65b7b7cc. +// +// Solidity: function expectCall(address callee, uint256 msgValue, uint64 gas, bytes data, uint64 count) returns() +func (_Vm *VmTransactorSession) ExpectCall0(callee common.Address, msgValue *big.Int, gas uint64, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall0(&_Vm.TransactOpts, callee, msgValue, gas, data, count) +} + +// ExpectCall1 is a paid mutator transaction binding the contract method 0xa2b1a1ae. +// +// Solidity: function expectCall(address callee, uint256 msgValue, bytes data, uint64 count) returns() +func (_Vm *VmTransactor) ExpectCall1(opts *bind.TransactOpts, callee common.Address, msgValue *big.Int, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectCall1", callee, msgValue, data, count) +} + +// ExpectCall1 is a paid mutator transaction binding the contract method 0xa2b1a1ae. +// +// Solidity: function expectCall(address callee, uint256 msgValue, bytes data, uint64 count) returns() +func (_Vm *VmSession) ExpectCall1(callee common.Address, msgValue *big.Int, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall1(&_Vm.TransactOpts, callee, msgValue, data, count) +} + +// ExpectCall1 is a paid mutator transaction binding the contract method 0xa2b1a1ae. +// +// Solidity: function expectCall(address callee, uint256 msgValue, bytes data, uint64 count) returns() +func (_Vm *VmTransactorSession) ExpectCall1(callee common.Address, msgValue *big.Int, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall1(&_Vm.TransactOpts, callee, msgValue, data, count) +} + +// ExpectCall2 is a paid mutator transaction binding the contract method 0xbd6af434. +// +// Solidity: function expectCall(address callee, bytes data) returns() +func (_Vm *VmTransactor) ExpectCall2(opts *bind.TransactOpts, callee common.Address, data []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectCall2", callee, data) +} + +// ExpectCall2 is a paid mutator transaction binding the contract method 0xbd6af434. +// +// Solidity: function expectCall(address callee, bytes data) returns() +func (_Vm *VmSession) ExpectCall2(callee common.Address, data []byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall2(&_Vm.TransactOpts, callee, data) +} + +// ExpectCall2 is a paid mutator transaction binding the contract method 0xbd6af434. +// +// Solidity: function expectCall(address callee, bytes data) returns() +func (_Vm *VmTransactorSession) ExpectCall2(callee common.Address, data []byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall2(&_Vm.TransactOpts, callee, data) +} + +// ExpectCall3 is a paid mutator transaction binding the contract method 0xc1adbbff. +// +// Solidity: function expectCall(address callee, bytes data, uint64 count) returns() +func (_Vm *VmTransactor) ExpectCall3(opts *bind.TransactOpts, callee common.Address, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectCall3", callee, data, count) +} + +// ExpectCall3 is a paid mutator transaction binding the contract method 0xc1adbbff. +// +// Solidity: function expectCall(address callee, bytes data, uint64 count) returns() +func (_Vm *VmSession) ExpectCall3(callee common.Address, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall3(&_Vm.TransactOpts, callee, data, count) +} + +// ExpectCall3 is a paid mutator transaction binding the contract method 0xc1adbbff. +// +// Solidity: function expectCall(address callee, bytes data, uint64 count) returns() +func (_Vm *VmTransactorSession) ExpectCall3(callee common.Address, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall3(&_Vm.TransactOpts, callee, data, count) +} + +// ExpectCall4 is a paid mutator transaction binding the contract method 0xf30c7ba3. +// +// Solidity: function expectCall(address callee, uint256 msgValue, bytes data) returns() +func (_Vm *VmTransactor) ExpectCall4(opts *bind.TransactOpts, callee common.Address, msgValue *big.Int, data []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectCall4", callee, msgValue, data) +} + +// ExpectCall4 is a paid mutator transaction binding the contract method 0xf30c7ba3. +// +// Solidity: function expectCall(address callee, uint256 msgValue, bytes data) returns() +func (_Vm *VmSession) ExpectCall4(callee common.Address, msgValue *big.Int, data []byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall4(&_Vm.TransactOpts, callee, msgValue, data) +} + +// ExpectCall4 is a paid mutator transaction binding the contract method 0xf30c7ba3. +// +// Solidity: function expectCall(address callee, uint256 msgValue, bytes data) returns() +func (_Vm *VmTransactorSession) ExpectCall4(callee common.Address, msgValue *big.Int, data []byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectCall4(&_Vm.TransactOpts, callee, msgValue, data) +} + +// ExpectCallMinGas is a paid mutator transaction binding the contract method 0x08e4e116. +// +// Solidity: function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes data) returns() +func (_Vm *VmTransactor) ExpectCallMinGas(opts *bind.TransactOpts, callee common.Address, msgValue *big.Int, minGas uint64, data []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectCallMinGas", callee, msgValue, minGas, data) +} + +// ExpectCallMinGas is a paid mutator transaction binding the contract method 0x08e4e116. +// +// Solidity: function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes data) returns() +func (_Vm *VmSession) ExpectCallMinGas(callee common.Address, msgValue *big.Int, minGas uint64, data []byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectCallMinGas(&_Vm.TransactOpts, callee, msgValue, minGas, data) +} + +// ExpectCallMinGas is a paid mutator transaction binding the contract method 0x08e4e116. +// +// Solidity: function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes data) returns() +func (_Vm *VmTransactorSession) ExpectCallMinGas(callee common.Address, msgValue *big.Int, minGas uint64, data []byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectCallMinGas(&_Vm.TransactOpts, callee, msgValue, minGas, data) +} + +// ExpectCallMinGas0 is a paid mutator transaction binding the contract method 0xe13a1834. +// +// Solidity: function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes data, uint64 count) returns() +func (_Vm *VmTransactor) ExpectCallMinGas0(opts *bind.TransactOpts, callee common.Address, msgValue *big.Int, minGas uint64, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectCallMinGas0", callee, msgValue, minGas, data, count) +} + +// ExpectCallMinGas0 is a paid mutator transaction binding the contract method 0xe13a1834. +// +// Solidity: function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes data, uint64 count) returns() +func (_Vm *VmSession) ExpectCallMinGas0(callee common.Address, msgValue *big.Int, minGas uint64, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectCallMinGas0(&_Vm.TransactOpts, callee, msgValue, minGas, data, count) +} + +// ExpectCallMinGas0 is a paid mutator transaction binding the contract method 0xe13a1834. +// +// Solidity: function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes data, uint64 count) returns() +func (_Vm *VmTransactorSession) ExpectCallMinGas0(callee common.Address, msgValue *big.Int, minGas uint64, data []byte, count uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectCallMinGas0(&_Vm.TransactOpts, callee, msgValue, minGas, data, count) +} + +// ExpectEmit is a paid mutator transaction binding the contract method 0x440ed10d. +// +// Solidity: function expectEmit() returns() +func (_Vm *VmTransactor) ExpectEmit(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectEmit") +} + +// ExpectEmit is a paid mutator transaction binding the contract method 0x440ed10d. +// +// Solidity: function expectEmit() returns() +func (_Vm *VmSession) ExpectEmit() (*types.Transaction, error) { + return _Vm.Contract.ExpectEmit(&_Vm.TransactOpts) +} + +// ExpectEmit is a paid mutator transaction binding the contract method 0x440ed10d. +// +// Solidity: function expectEmit() returns() +func (_Vm *VmTransactorSession) ExpectEmit() (*types.Transaction, error) { + return _Vm.Contract.ExpectEmit(&_Vm.TransactOpts) +} + +// ExpectEmit0 is a paid mutator transaction binding the contract method 0x491cc7c2. +// +// Solidity: function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) returns() +func (_Vm *VmTransactor) ExpectEmit0(opts *bind.TransactOpts, checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectEmit0", checkTopic1, checkTopic2, checkTopic3, checkData) +} + +// ExpectEmit0 is a paid mutator transaction binding the contract method 0x491cc7c2. +// +// Solidity: function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) returns() +func (_Vm *VmSession) ExpectEmit0(checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmit0(&_Vm.TransactOpts, checkTopic1, checkTopic2, checkTopic3, checkData) +} + +// ExpectEmit0 is a paid mutator transaction binding the contract method 0x491cc7c2. +// +// Solidity: function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) returns() +func (_Vm *VmTransactorSession) ExpectEmit0(checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmit0(&_Vm.TransactOpts, checkTopic1, checkTopic2, checkTopic3, checkData) +} + +// ExpectEmit1 is a paid mutator transaction binding the contract method 0x81bad6f3. +// +// Solidity: function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData, address emitter) returns() +func (_Vm *VmTransactor) ExpectEmit1(opts *bind.TransactOpts, checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool, emitter common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectEmit1", checkTopic1, checkTopic2, checkTopic3, checkData, emitter) +} + +// ExpectEmit1 is a paid mutator transaction binding the contract method 0x81bad6f3. +// +// Solidity: function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData, address emitter) returns() +func (_Vm *VmSession) ExpectEmit1(checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool, emitter common.Address) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmit1(&_Vm.TransactOpts, checkTopic1, checkTopic2, checkTopic3, checkData, emitter) +} + +// ExpectEmit1 is a paid mutator transaction binding the contract method 0x81bad6f3. +// +// Solidity: function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData, address emitter) returns() +func (_Vm *VmTransactorSession) ExpectEmit1(checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool, emitter common.Address) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmit1(&_Vm.TransactOpts, checkTopic1, checkTopic2, checkTopic3, checkData, emitter) +} + +// ExpectEmit2 is a paid mutator transaction binding the contract method 0x86b9620d. +// +// Solidity: function expectEmit(address emitter) returns() +func (_Vm *VmTransactor) ExpectEmit2(opts *bind.TransactOpts, emitter common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectEmit2", emitter) +} + +// ExpectEmit2 is a paid mutator transaction binding the contract method 0x86b9620d. +// +// Solidity: function expectEmit(address emitter) returns() +func (_Vm *VmSession) ExpectEmit2(emitter common.Address) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmit2(&_Vm.TransactOpts, emitter) +} + +// ExpectEmit2 is a paid mutator transaction binding the contract method 0x86b9620d. +// +// Solidity: function expectEmit(address emitter) returns() +func (_Vm *VmTransactorSession) ExpectEmit2(emitter common.Address) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmit2(&_Vm.TransactOpts, emitter) +} + +// ExpectEmitAnonymous is a paid mutator transaction binding the contract method 0x2e5f270c. +// +// Solidity: function expectEmitAnonymous() returns() +func (_Vm *VmTransactor) ExpectEmitAnonymous(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectEmitAnonymous") +} + +// ExpectEmitAnonymous is a paid mutator transaction binding the contract method 0x2e5f270c. +// +// Solidity: function expectEmitAnonymous() returns() +func (_Vm *VmSession) ExpectEmitAnonymous() (*types.Transaction, error) { + return _Vm.Contract.ExpectEmitAnonymous(&_Vm.TransactOpts) +} + +// ExpectEmitAnonymous is a paid mutator transaction binding the contract method 0x2e5f270c. +// +// Solidity: function expectEmitAnonymous() returns() +func (_Vm *VmTransactorSession) ExpectEmitAnonymous() (*types.Transaction, error) { + return _Vm.Contract.ExpectEmitAnonymous(&_Vm.TransactOpts) +} + +// ExpectEmitAnonymous0 is a paid mutator transaction binding the contract method 0x6fc68705. +// +// Solidity: function expectEmitAnonymous(address emitter) returns() +func (_Vm *VmTransactor) ExpectEmitAnonymous0(opts *bind.TransactOpts, emitter common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectEmitAnonymous0", emitter) +} + +// ExpectEmitAnonymous0 is a paid mutator transaction binding the contract method 0x6fc68705. +// +// Solidity: function expectEmitAnonymous(address emitter) returns() +func (_Vm *VmSession) ExpectEmitAnonymous0(emitter common.Address) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmitAnonymous0(&_Vm.TransactOpts, emitter) +} + +// ExpectEmitAnonymous0 is a paid mutator transaction binding the contract method 0x6fc68705. +// +// Solidity: function expectEmitAnonymous(address emitter) returns() +func (_Vm *VmTransactorSession) ExpectEmitAnonymous0(emitter common.Address) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmitAnonymous0(&_Vm.TransactOpts, emitter) +} + +// ExpectEmitAnonymous1 is a paid mutator transaction binding the contract method 0x71c95899. +// +// Solidity: function expectEmitAnonymous(bool checkTopic0, bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData, address emitter) returns() +func (_Vm *VmTransactor) ExpectEmitAnonymous1(opts *bind.TransactOpts, checkTopic0 bool, checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool, emitter common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectEmitAnonymous1", checkTopic0, checkTopic1, checkTopic2, checkTopic3, checkData, emitter) +} + +// ExpectEmitAnonymous1 is a paid mutator transaction binding the contract method 0x71c95899. +// +// Solidity: function expectEmitAnonymous(bool checkTopic0, bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData, address emitter) returns() +func (_Vm *VmSession) ExpectEmitAnonymous1(checkTopic0 bool, checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool, emitter common.Address) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmitAnonymous1(&_Vm.TransactOpts, checkTopic0, checkTopic1, checkTopic2, checkTopic3, checkData, emitter) +} + +// ExpectEmitAnonymous1 is a paid mutator transaction binding the contract method 0x71c95899. +// +// Solidity: function expectEmitAnonymous(bool checkTopic0, bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData, address emitter) returns() +func (_Vm *VmTransactorSession) ExpectEmitAnonymous1(checkTopic0 bool, checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool, emitter common.Address) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmitAnonymous1(&_Vm.TransactOpts, checkTopic0, checkTopic1, checkTopic2, checkTopic3, checkData, emitter) +} + +// ExpectEmitAnonymous2 is a paid mutator transaction binding the contract method 0xc948db5e. +// +// Solidity: function expectEmitAnonymous(bool checkTopic0, bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) returns() +func (_Vm *VmTransactor) ExpectEmitAnonymous2(opts *bind.TransactOpts, checkTopic0 bool, checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectEmitAnonymous2", checkTopic0, checkTopic1, checkTopic2, checkTopic3, checkData) +} + +// ExpectEmitAnonymous2 is a paid mutator transaction binding the contract method 0xc948db5e. +// +// Solidity: function expectEmitAnonymous(bool checkTopic0, bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) returns() +func (_Vm *VmSession) ExpectEmitAnonymous2(checkTopic0 bool, checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmitAnonymous2(&_Vm.TransactOpts, checkTopic0, checkTopic1, checkTopic2, checkTopic3, checkData) +} + +// ExpectEmitAnonymous2 is a paid mutator transaction binding the contract method 0xc948db5e. +// +// Solidity: function expectEmitAnonymous(bool checkTopic0, bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) returns() +func (_Vm *VmTransactorSession) ExpectEmitAnonymous2(checkTopic0 bool, checkTopic1 bool, checkTopic2 bool, checkTopic3 bool, checkData bool) (*types.Transaction, error) { + return _Vm.Contract.ExpectEmitAnonymous2(&_Vm.TransactOpts, checkTopic0, checkTopic1, checkTopic2, checkTopic3, checkData) +} + +// ExpectRevert is a paid mutator transaction binding the contract method 0xc31eb0e0. +// +// Solidity: function expectRevert(bytes4 revertData) returns() +func (_Vm *VmTransactor) ExpectRevert(opts *bind.TransactOpts, revertData [4]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectRevert", revertData) +} + +// ExpectRevert is a paid mutator transaction binding the contract method 0xc31eb0e0. +// +// Solidity: function expectRevert(bytes4 revertData) returns() +func (_Vm *VmSession) ExpectRevert(revertData [4]byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectRevert(&_Vm.TransactOpts, revertData) +} + +// ExpectRevert is a paid mutator transaction binding the contract method 0xc31eb0e0. +// +// Solidity: function expectRevert(bytes4 revertData) returns() +func (_Vm *VmTransactorSession) ExpectRevert(revertData [4]byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectRevert(&_Vm.TransactOpts, revertData) +} + +// ExpectRevert0 is a paid mutator transaction binding the contract method 0xf28dceb3. +// +// Solidity: function expectRevert(bytes revertData) returns() +func (_Vm *VmTransactor) ExpectRevert0(opts *bind.TransactOpts, revertData []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectRevert0", revertData) +} + +// ExpectRevert0 is a paid mutator transaction binding the contract method 0xf28dceb3. +// +// Solidity: function expectRevert(bytes revertData) returns() +func (_Vm *VmSession) ExpectRevert0(revertData []byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectRevert0(&_Vm.TransactOpts, revertData) +} + +// ExpectRevert0 is a paid mutator transaction binding the contract method 0xf28dceb3. +// +// Solidity: function expectRevert(bytes revertData) returns() +func (_Vm *VmTransactorSession) ExpectRevert0(revertData []byte) (*types.Transaction, error) { + return _Vm.Contract.ExpectRevert0(&_Vm.TransactOpts, revertData) +} + +// ExpectRevert1 is a paid mutator transaction binding the contract method 0xf4844814. +// +// Solidity: function expectRevert() returns() +func (_Vm *VmTransactor) ExpectRevert1(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectRevert1") +} + +// ExpectRevert1 is a paid mutator transaction binding the contract method 0xf4844814. +// +// Solidity: function expectRevert() returns() +func (_Vm *VmSession) ExpectRevert1() (*types.Transaction, error) { + return _Vm.Contract.ExpectRevert1(&_Vm.TransactOpts) +} + +// ExpectRevert1 is a paid mutator transaction binding the contract method 0xf4844814. +// +// Solidity: function expectRevert() returns() +func (_Vm *VmTransactorSession) ExpectRevert1() (*types.Transaction, error) { + return _Vm.Contract.ExpectRevert1(&_Vm.TransactOpts) +} + +// ExpectSafeMemory is a paid mutator transaction binding the contract method 0x6d016688. +// +// Solidity: function expectSafeMemory(uint64 min, uint64 max) returns() +func (_Vm *VmTransactor) ExpectSafeMemory(opts *bind.TransactOpts, min uint64, max uint64) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectSafeMemory", min, max) +} + +// ExpectSafeMemory is a paid mutator transaction binding the contract method 0x6d016688. +// +// Solidity: function expectSafeMemory(uint64 min, uint64 max) returns() +func (_Vm *VmSession) ExpectSafeMemory(min uint64, max uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectSafeMemory(&_Vm.TransactOpts, min, max) +} + +// ExpectSafeMemory is a paid mutator transaction binding the contract method 0x6d016688. +// +// Solidity: function expectSafeMemory(uint64 min, uint64 max) returns() +func (_Vm *VmTransactorSession) ExpectSafeMemory(min uint64, max uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectSafeMemory(&_Vm.TransactOpts, min, max) +} + +// ExpectSafeMemoryCall is a paid mutator transaction binding the contract method 0x05838bf4. +// +// Solidity: function expectSafeMemoryCall(uint64 min, uint64 max) returns() +func (_Vm *VmTransactor) ExpectSafeMemoryCall(opts *bind.TransactOpts, min uint64, max uint64) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "expectSafeMemoryCall", min, max) +} + +// ExpectSafeMemoryCall is a paid mutator transaction binding the contract method 0x05838bf4. +// +// Solidity: function expectSafeMemoryCall(uint64 min, uint64 max) returns() +func (_Vm *VmSession) ExpectSafeMemoryCall(min uint64, max uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectSafeMemoryCall(&_Vm.TransactOpts, min, max) +} + +// ExpectSafeMemoryCall is a paid mutator transaction binding the contract method 0x05838bf4. +// +// Solidity: function expectSafeMemoryCall(uint64 min, uint64 max) returns() +func (_Vm *VmTransactorSession) ExpectSafeMemoryCall(min uint64, max uint64) (*types.Transaction, error) { + return _Vm.Contract.ExpectSafeMemoryCall(&_Vm.TransactOpts, min, max) +} + +// Fee is a paid mutator transaction binding the contract method 0x39b37ab0. +// +// Solidity: function fee(uint256 newBasefee) returns() +func (_Vm *VmTransactor) Fee(opts *bind.TransactOpts, newBasefee *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "fee", newBasefee) +} + +// Fee is a paid mutator transaction binding the contract method 0x39b37ab0. +// +// Solidity: function fee(uint256 newBasefee) returns() +func (_Vm *VmSession) Fee(newBasefee *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Fee(&_Vm.TransactOpts, newBasefee) +} + +// Fee is a paid mutator transaction binding the contract method 0x39b37ab0. +// +// Solidity: function fee(uint256 newBasefee) returns() +func (_Vm *VmTransactorSession) Fee(newBasefee *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Fee(&_Vm.TransactOpts, newBasefee) +} + +// Ffi is a paid mutator transaction binding the contract method 0x89160467. +// +// Solidity: function ffi(string[] commandInput) returns(bytes result) +func (_Vm *VmTransactor) Ffi(opts *bind.TransactOpts, commandInput []string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "ffi", commandInput) +} + +// Ffi is a paid mutator transaction binding the contract method 0x89160467. +// +// Solidity: function ffi(string[] commandInput) returns(bytes result) +func (_Vm *VmSession) Ffi(commandInput []string) (*types.Transaction, error) { + return _Vm.Contract.Ffi(&_Vm.TransactOpts, commandInput) +} + +// Ffi is a paid mutator transaction binding the contract method 0x89160467. +// +// Solidity: function ffi(string[] commandInput) returns(bytes result) +func (_Vm *VmTransactorSession) Ffi(commandInput []string) (*types.Transaction, error) { + return _Vm.Contract.Ffi(&_Vm.TransactOpts, commandInput) +} + +// GetMappingKeyAndParentOf is a paid mutator transaction binding the contract method 0x876e24e6. +// +// Solidity: function getMappingKeyAndParentOf(address target, bytes32 elementSlot) returns(bool found, bytes32 key, bytes32 parent) +func (_Vm *VmTransactor) GetMappingKeyAndParentOf(opts *bind.TransactOpts, target common.Address, elementSlot [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "getMappingKeyAndParentOf", target, elementSlot) +} + +// GetMappingKeyAndParentOf is a paid mutator transaction binding the contract method 0x876e24e6. +// +// Solidity: function getMappingKeyAndParentOf(address target, bytes32 elementSlot) returns(bool found, bytes32 key, bytes32 parent) +func (_Vm *VmSession) GetMappingKeyAndParentOf(target common.Address, elementSlot [32]byte) (*types.Transaction, error) { + return _Vm.Contract.GetMappingKeyAndParentOf(&_Vm.TransactOpts, target, elementSlot) +} + +// GetMappingKeyAndParentOf is a paid mutator transaction binding the contract method 0x876e24e6. +// +// Solidity: function getMappingKeyAndParentOf(address target, bytes32 elementSlot) returns(bool found, bytes32 key, bytes32 parent) +func (_Vm *VmTransactorSession) GetMappingKeyAndParentOf(target common.Address, elementSlot [32]byte) (*types.Transaction, error) { + return _Vm.Contract.GetMappingKeyAndParentOf(&_Vm.TransactOpts, target, elementSlot) +} + +// GetMappingLength is a paid mutator transaction binding the contract method 0x2f2fd63f. +// +// Solidity: function getMappingLength(address target, bytes32 mappingSlot) returns(uint256 length) +func (_Vm *VmTransactor) GetMappingLength(opts *bind.TransactOpts, target common.Address, mappingSlot [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "getMappingLength", target, mappingSlot) +} + +// GetMappingLength is a paid mutator transaction binding the contract method 0x2f2fd63f. +// +// Solidity: function getMappingLength(address target, bytes32 mappingSlot) returns(uint256 length) +func (_Vm *VmSession) GetMappingLength(target common.Address, mappingSlot [32]byte) (*types.Transaction, error) { + return _Vm.Contract.GetMappingLength(&_Vm.TransactOpts, target, mappingSlot) +} + +// GetMappingLength is a paid mutator transaction binding the contract method 0x2f2fd63f. +// +// Solidity: function getMappingLength(address target, bytes32 mappingSlot) returns(uint256 length) +func (_Vm *VmTransactorSession) GetMappingLength(target common.Address, mappingSlot [32]byte) (*types.Transaction, error) { + return _Vm.Contract.GetMappingLength(&_Vm.TransactOpts, target, mappingSlot) +} + +// GetMappingSlotAt is a paid mutator transaction binding the contract method 0xebc73ab4. +// +// Solidity: function getMappingSlotAt(address target, bytes32 mappingSlot, uint256 idx) returns(bytes32 value) +func (_Vm *VmTransactor) GetMappingSlotAt(opts *bind.TransactOpts, target common.Address, mappingSlot [32]byte, idx *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "getMappingSlotAt", target, mappingSlot, idx) +} + +// GetMappingSlotAt is a paid mutator transaction binding the contract method 0xebc73ab4. +// +// Solidity: function getMappingSlotAt(address target, bytes32 mappingSlot, uint256 idx) returns(bytes32 value) +func (_Vm *VmSession) GetMappingSlotAt(target common.Address, mappingSlot [32]byte, idx *big.Int) (*types.Transaction, error) { + return _Vm.Contract.GetMappingSlotAt(&_Vm.TransactOpts, target, mappingSlot, idx) +} + +// GetMappingSlotAt is a paid mutator transaction binding the contract method 0xebc73ab4. +// +// Solidity: function getMappingSlotAt(address target, bytes32 mappingSlot, uint256 idx) returns(bytes32 value) +func (_Vm *VmTransactorSession) GetMappingSlotAt(target common.Address, mappingSlot [32]byte, idx *big.Int) (*types.Transaction, error) { + return _Vm.Contract.GetMappingSlotAt(&_Vm.TransactOpts, target, mappingSlot, idx) +} + +// GetNonce0 is a paid mutator transaction binding the contract method 0xa5748aad. +// +// Solidity: function getNonce((address,uint256,uint256,uint256) wallet) returns(uint64 nonce) +func (_Vm *VmTransactor) GetNonce0(opts *bind.TransactOpts, wallet VmSafeWallet) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "getNonce0", wallet) +} + +// GetNonce0 is a paid mutator transaction binding the contract method 0xa5748aad. +// +// Solidity: function getNonce((address,uint256,uint256,uint256) wallet) returns(uint64 nonce) +func (_Vm *VmSession) GetNonce0(wallet VmSafeWallet) (*types.Transaction, error) { + return _Vm.Contract.GetNonce0(&_Vm.TransactOpts, wallet) +} + +// GetNonce0 is a paid mutator transaction binding the contract method 0xa5748aad. +// +// Solidity: function getNonce((address,uint256,uint256,uint256) wallet) returns(uint64 nonce) +func (_Vm *VmTransactorSession) GetNonce0(wallet VmSafeWallet) (*types.Transaction, error) { + return _Vm.Contract.GetNonce0(&_Vm.TransactOpts, wallet) +} + +// GetRecordedLogs is a paid mutator transaction binding the contract method 0x191553a4. +// +// Solidity: function getRecordedLogs() returns((bytes32[],bytes,address)[] logs) +func (_Vm *VmTransactor) GetRecordedLogs(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "getRecordedLogs") +} + +// GetRecordedLogs is a paid mutator transaction binding the contract method 0x191553a4. +// +// Solidity: function getRecordedLogs() returns((bytes32[],bytes,address)[] logs) +func (_Vm *VmSession) GetRecordedLogs() (*types.Transaction, error) { + return _Vm.Contract.GetRecordedLogs(&_Vm.TransactOpts) +} + +// GetRecordedLogs is a paid mutator transaction binding the contract method 0x191553a4. +// +// Solidity: function getRecordedLogs() returns((bytes32[],bytes,address)[] logs) +func (_Vm *VmTransactorSession) GetRecordedLogs() (*types.Transaction, error) { + return _Vm.Contract.GetRecordedLogs(&_Vm.TransactOpts) +} + +// IsDir is a paid mutator transaction binding the contract method 0x7d15d019. +// +// Solidity: function isDir(string path) returns(bool result) +func (_Vm *VmTransactor) IsDir(opts *bind.TransactOpts, path string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "isDir", path) +} + +// IsDir is a paid mutator transaction binding the contract method 0x7d15d019. +// +// Solidity: function isDir(string path) returns(bool result) +func (_Vm *VmSession) IsDir(path string) (*types.Transaction, error) { + return _Vm.Contract.IsDir(&_Vm.TransactOpts, path) +} + +// IsDir is a paid mutator transaction binding the contract method 0x7d15d019. +// +// Solidity: function isDir(string path) returns(bool result) +func (_Vm *VmTransactorSession) IsDir(path string) (*types.Transaction, error) { + return _Vm.Contract.IsDir(&_Vm.TransactOpts, path) +} + +// IsFile is a paid mutator transaction binding the contract method 0xe0eb04d4. +// +// Solidity: function isFile(string path) returns(bool result) +func (_Vm *VmTransactor) IsFile(opts *bind.TransactOpts, path string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "isFile", path) +} + +// IsFile is a paid mutator transaction binding the contract method 0xe0eb04d4. +// +// Solidity: function isFile(string path) returns(bool result) +func (_Vm *VmSession) IsFile(path string) (*types.Transaction, error) { + return _Vm.Contract.IsFile(&_Vm.TransactOpts, path) +} + +// IsFile is a paid mutator transaction binding the contract method 0xe0eb04d4. +// +// Solidity: function isFile(string path) returns(bool result) +func (_Vm *VmTransactorSession) IsFile(path string) (*types.Transaction, error) { + return _Vm.Contract.IsFile(&_Vm.TransactOpts, path) +} + +// Label is a paid mutator transaction binding the contract method 0xc657c718. +// +// Solidity: function label(address account, string newLabel) returns() +func (_Vm *VmTransactor) Label(opts *bind.TransactOpts, account common.Address, newLabel string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "label", account, newLabel) +} + +// Label is a paid mutator transaction binding the contract method 0xc657c718. +// +// Solidity: function label(address account, string newLabel) returns() +func (_Vm *VmSession) Label(account common.Address, newLabel string) (*types.Transaction, error) { + return _Vm.Contract.Label(&_Vm.TransactOpts, account, newLabel) +} + +// Label is a paid mutator transaction binding the contract method 0xc657c718. +// +// Solidity: function label(address account, string newLabel) returns() +func (_Vm *VmTransactorSession) Label(account common.Address, newLabel string) (*types.Transaction, error) { + return _Vm.Contract.Label(&_Vm.TransactOpts, account, newLabel) +} + +// LoadAllocs is a paid mutator transaction binding the contract method 0xb3a056d7. +// +// Solidity: function loadAllocs(string pathToAllocsJson) returns() +func (_Vm *VmTransactor) LoadAllocs(opts *bind.TransactOpts, pathToAllocsJson string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "loadAllocs", pathToAllocsJson) +} + +// LoadAllocs is a paid mutator transaction binding the contract method 0xb3a056d7. +// +// Solidity: function loadAllocs(string pathToAllocsJson) returns() +func (_Vm *VmSession) LoadAllocs(pathToAllocsJson string) (*types.Transaction, error) { + return _Vm.Contract.LoadAllocs(&_Vm.TransactOpts, pathToAllocsJson) +} + +// LoadAllocs is a paid mutator transaction binding the contract method 0xb3a056d7. +// +// Solidity: function loadAllocs(string pathToAllocsJson) returns() +func (_Vm *VmTransactorSession) LoadAllocs(pathToAllocsJson string) (*types.Transaction, error) { + return _Vm.Contract.LoadAllocs(&_Vm.TransactOpts, pathToAllocsJson) +} + +// MakePersistent is a paid mutator transaction binding the contract method 0x1d9e269e. +// +// Solidity: function makePersistent(address[] accounts) returns() +func (_Vm *VmTransactor) MakePersistent(opts *bind.TransactOpts, accounts []common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "makePersistent", accounts) +} + +// MakePersistent is a paid mutator transaction binding the contract method 0x1d9e269e. +// +// Solidity: function makePersistent(address[] accounts) returns() +func (_Vm *VmSession) MakePersistent(accounts []common.Address) (*types.Transaction, error) { + return _Vm.Contract.MakePersistent(&_Vm.TransactOpts, accounts) +} + +// MakePersistent is a paid mutator transaction binding the contract method 0x1d9e269e. +// +// Solidity: function makePersistent(address[] accounts) returns() +func (_Vm *VmTransactorSession) MakePersistent(accounts []common.Address) (*types.Transaction, error) { + return _Vm.Contract.MakePersistent(&_Vm.TransactOpts, accounts) +} + +// MakePersistent0 is a paid mutator transaction binding the contract method 0x4074e0a8. +// +// Solidity: function makePersistent(address account0, address account1) returns() +func (_Vm *VmTransactor) MakePersistent0(opts *bind.TransactOpts, account0 common.Address, account1 common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "makePersistent0", account0, account1) +} + +// MakePersistent0 is a paid mutator transaction binding the contract method 0x4074e0a8. +// +// Solidity: function makePersistent(address account0, address account1) returns() +func (_Vm *VmSession) MakePersistent0(account0 common.Address, account1 common.Address) (*types.Transaction, error) { + return _Vm.Contract.MakePersistent0(&_Vm.TransactOpts, account0, account1) +} + +// MakePersistent0 is a paid mutator transaction binding the contract method 0x4074e0a8. +// +// Solidity: function makePersistent(address account0, address account1) returns() +func (_Vm *VmTransactorSession) MakePersistent0(account0 common.Address, account1 common.Address) (*types.Transaction, error) { + return _Vm.Contract.MakePersistent0(&_Vm.TransactOpts, account0, account1) +} + +// MakePersistent1 is a paid mutator transaction binding the contract method 0x57e22dde. +// +// Solidity: function makePersistent(address account) returns() +func (_Vm *VmTransactor) MakePersistent1(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "makePersistent1", account) +} + +// MakePersistent1 is a paid mutator transaction binding the contract method 0x57e22dde. +// +// Solidity: function makePersistent(address account) returns() +func (_Vm *VmSession) MakePersistent1(account common.Address) (*types.Transaction, error) { + return _Vm.Contract.MakePersistent1(&_Vm.TransactOpts, account) +} + +// MakePersistent1 is a paid mutator transaction binding the contract method 0x57e22dde. +// +// Solidity: function makePersistent(address account) returns() +func (_Vm *VmTransactorSession) MakePersistent1(account common.Address) (*types.Transaction, error) { + return _Vm.Contract.MakePersistent1(&_Vm.TransactOpts, account) +} + +// MakePersistent2 is a paid mutator transaction binding the contract method 0xefb77a75. +// +// Solidity: function makePersistent(address account0, address account1, address account2) returns() +func (_Vm *VmTransactor) MakePersistent2(opts *bind.TransactOpts, account0 common.Address, account1 common.Address, account2 common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "makePersistent2", account0, account1, account2) +} + +// MakePersistent2 is a paid mutator transaction binding the contract method 0xefb77a75. +// +// Solidity: function makePersistent(address account0, address account1, address account2) returns() +func (_Vm *VmSession) MakePersistent2(account0 common.Address, account1 common.Address, account2 common.Address) (*types.Transaction, error) { + return _Vm.Contract.MakePersistent2(&_Vm.TransactOpts, account0, account1, account2) +} + +// MakePersistent2 is a paid mutator transaction binding the contract method 0xefb77a75. +// +// Solidity: function makePersistent(address account0, address account1, address account2) returns() +func (_Vm *VmTransactorSession) MakePersistent2(account0 common.Address, account1 common.Address, account2 common.Address) (*types.Transaction, error) { + return _Vm.Contract.MakePersistent2(&_Vm.TransactOpts, account0, account1, account2) +} + +// MockCall is a paid mutator transaction binding the contract method 0x81409b91. +// +// Solidity: function mockCall(address callee, uint256 msgValue, bytes data, bytes returnData) returns() +func (_Vm *VmTransactor) MockCall(opts *bind.TransactOpts, callee common.Address, msgValue *big.Int, data []byte, returnData []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "mockCall", callee, msgValue, data, returnData) +} + +// MockCall is a paid mutator transaction binding the contract method 0x81409b91. +// +// Solidity: function mockCall(address callee, uint256 msgValue, bytes data, bytes returnData) returns() +func (_Vm *VmSession) MockCall(callee common.Address, msgValue *big.Int, data []byte, returnData []byte) (*types.Transaction, error) { + return _Vm.Contract.MockCall(&_Vm.TransactOpts, callee, msgValue, data, returnData) +} + +// MockCall is a paid mutator transaction binding the contract method 0x81409b91. +// +// Solidity: function mockCall(address callee, uint256 msgValue, bytes data, bytes returnData) returns() +func (_Vm *VmTransactorSession) MockCall(callee common.Address, msgValue *big.Int, data []byte, returnData []byte) (*types.Transaction, error) { + return _Vm.Contract.MockCall(&_Vm.TransactOpts, callee, msgValue, data, returnData) +} + +// MockCall0 is a paid mutator transaction binding the contract method 0xb96213e4. +// +// Solidity: function mockCall(address callee, bytes data, bytes returnData) returns() +func (_Vm *VmTransactor) MockCall0(opts *bind.TransactOpts, callee common.Address, data []byte, returnData []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "mockCall0", callee, data, returnData) +} + +// MockCall0 is a paid mutator transaction binding the contract method 0xb96213e4. +// +// Solidity: function mockCall(address callee, bytes data, bytes returnData) returns() +func (_Vm *VmSession) MockCall0(callee common.Address, data []byte, returnData []byte) (*types.Transaction, error) { + return _Vm.Contract.MockCall0(&_Vm.TransactOpts, callee, data, returnData) +} + +// MockCall0 is a paid mutator transaction binding the contract method 0xb96213e4. +// +// Solidity: function mockCall(address callee, bytes data, bytes returnData) returns() +func (_Vm *VmTransactorSession) MockCall0(callee common.Address, data []byte, returnData []byte) (*types.Transaction, error) { + return _Vm.Contract.MockCall0(&_Vm.TransactOpts, callee, data, returnData) +} + +// MockCallRevert is a paid mutator transaction binding the contract method 0xd23cd037. +// +// Solidity: function mockCallRevert(address callee, uint256 msgValue, bytes data, bytes revertData) returns() +func (_Vm *VmTransactor) MockCallRevert(opts *bind.TransactOpts, callee common.Address, msgValue *big.Int, data []byte, revertData []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "mockCallRevert", callee, msgValue, data, revertData) +} + +// MockCallRevert is a paid mutator transaction binding the contract method 0xd23cd037. +// +// Solidity: function mockCallRevert(address callee, uint256 msgValue, bytes data, bytes revertData) returns() +func (_Vm *VmSession) MockCallRevert(callee common.Address, msgValue *big.Int, data []byte, revertData []byte) (*types.Transaction, error) { + return _Vm.Contract.MockCallRevert(&_Vm.TransactOpts, callee, msgValue, data, revertData) +} + +// MockCallRevert is a paid mutator transaction binding the contract method 0xd23cd037. +// +// Solidity: function mockCallRevert(address callee, uint256 msgValue, bytes data, bytes revertData) returns() +func (_Vm *VmTransactorSession) MockCallRevert(callee common.Address, msgValue *big.Int, data []byte, revertData []byte) (*types.Transaction, error) { + return _Vm.Contract.MockCallRevert(&_Vm.TransactOpts, callee, msgValue, data, revertData) +} + +// MockCallRevert0 is a paid mutator transaction binding the contract method 0xdbaad147. +// +// Solidity: function mockCallRevert(address callee, bytes data, bytes revertData) returns() +func (_Vm *VmTransactor) MockCallRevert0(opts *bind.TransactOpts, callee common.Address, data []byte, revertData []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "mockCallRevert0", callee, data, revertData) +} + +// MockCallRevert0 is a paid mutator transaction binding the contract method 0xdbaad147. +// +// Solidity: function mockCallRevert(address callee, bytes data, bytes revertData) returns() +func (_Vm *VmSession) MockCallRevert0(callee common.Address, data []byte, revertData []byte) (*types.Transaction, error) { + return _Vm.Contract.MockCallRevert0(&_Vm.TransactOpts, callee, data, revertData) +} + +// MockCallRevert0 is a paid mutator transaction binding the contract method 0xdbaad147. +// +// Solidity: function mockCallRevert(address callee, bytes data, bytes revertData) returns() +func (_Vm *VmTransactorSession) MockCallRevert0(callee common.Address, data []byte, revertData []byte) (*types.Transaction, error) { + return _Vm.Contract.MockCallRevert0(&_Vm.TransactOpts, callee, data, revertData) +} + +// PauseGasMetering is a paid mutator transaction binding the contract method 0xd1a5b36f. +// +// Solidity: function pauseGasMetering() returns() +func (_Vm *VmTransactor) PauseGasMetering(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "pauseGasMetering") +} + +// PauseGasMetering is a paid mutator transaction binding the contract method 0xd1a5b36f. +// +// Solidity: function pauseGasMetering() returns() +func (_Vm *VmSession) PauseGasMetering() (*types.Transaction, error) { + return _Vm.Contract.PauseGasMetering(&_Vm.TransactOpts) +} + +// PauseGasMetering is a paid mutator transaction binding the contract method 0xd1a5b36f. +// +// Solidity: function pauseGasMetering() returns() +func (_Vm *VmTransactorSession) PauseGasMetering() (*types.Transaction, error) { + return _Vm.Contract.PauseGasMetering(&_Vm.TransactOpts) +} + +// Prank is a paid mutator transaction binding the contract method 0x47e50cce. +// +// Solidity: function prank(address msgSender, address txOrigin) returns() +func (_Vm *VmTransactor) Prank(opts *bind.TransactOpts, msgSender common.Address, txOrigin common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "prank", msgSender, txOrigin) +} + +// Prank is a paid mutator transaction binding the contract method 0x47e50cce. +// +// Solidity: function prank(address msgSender, address txOrigin) returns() +func (_Vm *VmSession) Prank(msgSender common.Address, txOrigin common.Address) (*types.Transaction, error) { + return _Vm.Contract.Prank(&_Vm.TransactOpts, msgSender, txOrigin) +} + +// Prank is a paid mutator transaction binding the contract method 0x47e50cce. +// +// Solidity: function prank(address msgSender, address txOrigin) returns() +func (_Vm *VmTransactorSession) Prank(msgSender common.Address, txOrigin common.Address) (*types.Transaction, error) { + return _Vm.Contract.Prank(&_Vm.TransactOpts, msgSender, txOrigin) +} + +// Prank0 is a paid mutator transaction binding the contract method 0xca669fa7. +// +// Solidity: function prank(address msgSender) returns() +func (_Vm *VmTransactor) Prank0(opts *bind.TransactOpts, msgSender common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "prank0", msgSender) +} + +// Prank0 is a paid mutator transaction binding the contract method 0xca669fa7. +// +// Solidity: function prank(address msgSender) returns() +func (_Vm *VmSession) Prank0(msgSender common.Address) (*types.Transaction, error) { + return _Vm.Contract.Prank0(&_Vm.TransactOpts, msgSender) +} + +// Prank0 is a paid mutator transaction binding the contract method 0xca669fa7. +// +// Solidity: function prank(address msgSender) returns() +func (_Vm *VmTransactorSession) Prank0(msgSender common.Address) (*types.Transaction, error) { + return _Vm.Contract.Prank0(&_Vm.TransactOpts, msgSender) +} + +// Prevrandao is a paid mutator transaction binding the contract method 0x3b925549. +// +// Solidity: function prevrandao(bytes32 newPrevrandao) returns() +func (_Vm *VmTransactor) Prevrandao(opts *bind.TransactOpts, newPrevrandao [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "prevrandao", newPrevrandao) +} + +// Prevrandao is a paid mutator transaction binding the contract method 0x3b925549. +// +// Solidity: function prevrandao(bytes32 newPrevrandao) returns() +func (_Vm *VmSession) Prevrandao(newPrevrandao [32]byte) (*types.Transaction, error) { + return _Vm.Contract.Prevrandao(&_Vm.TransactOpts, newPrevrandao) +} + +// Prevrandao is a paid mutator transaction binding the contract method 0x3b925549. +// +// Solidity: function prevrandao(bytes32 newPrevrandao) returns() +func (_Vm *VmTransactorSession) Prevrandao(newPrevrandao [32]byte) (*types.Transaction, error) { + return _Vm.Contract.Prevrandao(&_Vm.TransactOpts, newPrevrandao) +} + +// Prevrandao0 is a paid mutator transaction binding the contract method 0x9cb1c0d4. +// +// Solidity: function prevrandao(uint256 newPrevrandao) returns() +func (_Vm *VmTransactor) Prevrandao0(opts *bind.TransactOpts, newPrevrandao *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "prevrandao0", newPrevrandao) +} + +// Prevrandao0 is a paid mutator transaction binding the contract method 0x9cb1c0d4. +// +// Solidity: function prevrandao(uint256 newPrevrandao) returns() +func (_Vm *VmSession) Prevrandao0(newPrevrandao *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Prevrandao0(&_Vm.TransactOpts, newPrevrandao) +} + +// Prevrandao0 is a paid mutator transaction binding the contract method 0x9cb1c0d4. +// +// Solidity: function prevrandao(uint256 newPrevrandao) returns() +func (_Vm *VmTransactorSession) Prevrandao0(newPrevrandao *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Prevrandao0(&_Vm.TransactOpts, newPrevrandao) +} + +// Prompt is a paid mutator transaction binding the contract method 0x47eaf474. +// +// Solidity: function prompt(string promptText) returns(string input) +func (_Vm *VmTransactor) Prompt(opts *bind.TransactOpts, promptText string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "prompt", promptText) +} + +// Prompt is a paid mutator transaction binding the contract method 0x47eaf474. +// +// Solidity: function prompt(string promptText) returns(string input) +func (_Vm *VmSession) Prompt(promptText string) (*types.Transaction, error) { + return _Vm.Contract.Prompt(&_Vm.TransactOpts, promptText) +} + +// Prompt is a paid mutator transaction binding the contract method 0x47eaf474. +// +// Solidity: function prompt(string promptText) returns(string input) +func (_Vm *VmTransactorSession) Prompt(promptText string) (*types.Transaction, error) { + return _Vm.Contract.Prompt(&_Vm.TransactOpts, promptText) +} + +// PromptAddress is a paid mutator transaction binding the contract method 0x62ee05f4. +// +// Solidity: function promptAddress(string promptText) returns(address) +func (_Vm *VmTransactor) PromptAddress(opts *bind.TransactOpts, promptText string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "promptAddress", promptText) +} + +// PromptAddress is a paid mutator transaction binding the contract method 0x62ee05f4. +// +// Solidity: function promptAddress(string promptText) returns(address) +func (_Vm *VmSession) PromptAddress(promptText string) (*types.Transaction, error) { + return _Vm.Contract.PromptAddress(&_Vm.TransactOpts, promptText) +} + +// PromptAddress is a paid mutator transaction binding the contract method 0x62ee05f4. +// +// Solidity: function promptAddress(string promptText) returns(address) +func (_Vm *VmTransactorSession) PromptAddress(promptText string) (*types.Transaction, error) { + return _Vm.Contract.PromptAddress(&_Vm.TransactOpts, promptText) +} + +// PromptSecret is a paid mutator transaction binding the contract method 0x1e279d41. +// +// Solidity: function promptSecret(string promptText) returns(string input) +func (_Vm *VmTransactor) PromptSecret(opts *bind.TransactOpts, promptText string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "promptSecret", promptText) +} + +// PromptSecret is a paid mutator transaction binding the contract method 0x1e279d41. +// +// Solidity: function promptSecret(string promptText) returns(string input) +func (_Vm *VmSession) PromptSecret(promptText string) (*types.Transaction, error) { + return _Vm.Contract.PromptSecret(&_Vm.TransactOpts, promptText) +} + +// PromptSecret is a paid mutator transaction binding the contract method 0x1e279d41. +// +// Solidity: function promptSecret(string promptText) returns(string input) +func (_Vm *VmTransactorSession) PromptSecret(promptText string) (*types.Transaction, error) { + return _Vm.Contract.PromptSecret(&_Vm.TransactOpts, promptText) +} + +// PromptSecretUint is a paid mutator transaction binding the contract method 0x69ca02b7. +// +// Solidity: function promptSecretUint(string promptText) returns(uint256) +func (_Vm *VmTransactor) PromptSecretUint(opts *bind.TransactOpts, promptText string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "promptSecretUint", promptText) +} + +// PromptSecretUint is a paid mutator transaction binding the contract method 0x69ca02b7. +// +// Solidity: function promptSecretUint(string promptText) returns(uint256) +func (_Vm *VmSession) PromptSecretUint(promptText string) (*types.Transaction, error) { + return _Vm.Contract.PromptSecretUint(&_Vm.TransactOpts, promptText) +} + +// PromptSecretUint is a paid mutator transaction binding the contract method 0x69ca02b7. +// +// Solidity: function promptSecretUint(string promptText) returns(uint256) +func (_Vm *VmTransactorSession) PromptSecretUint(promptText string) (*types.Transaction, error) { + return _Vm.Contract.PromptSecretUint(&_Vm.TransactOpts, promptText) +} + +// PromptUint is a paid mutator transaction binding the contract method 0x652fd489. +// +// Solidity: function promptUint(string promptText) returns(uint256) +func (_Vm *VmTransactor) PromptUint(opts *bind.TransactOpts, promptText string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "promptUint", promptText) +} + +// PromptUint is a paid mutator transaction binding the contract method 0x652fd489. +// +// Solidity: function promptUint(string promptText) returns(uint256) +func (_Vm *VmSession) PromptUint(promptText string) (*types.Transaction, error) { + return _Vm.Contract.PromptUint(&_Vm.TransactOpts, promptText) +} + +// PromptUint is a paid mutator transaction binding the contract method 0x652fd489. +// +// Solidity: function promptUint(string promptText) returns(uint256) +func (_Vm *VmTransactorSession) PromptUint(promptText string) (*types.Transaction, error) { + return _Vm.Contract.PromptUint(&_Vm.TransactOpts, promptText) +} + +// RandomAddress is a paid mutator transaction binding the contract method 0xd5bee9f5. +// +// Solidity: function randomAddress() returns(address) +func (_Vm *VmTransactor) RandomAddress(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "randomAddress") +} + +// RandomAddress is a paid mutator transaction binding the contract method 0xd5bee9f5. +// +// Solidity: function randomAddress() returns(address) +func (_Vm *VmSession) RandomAddress() (*types.Transaction, error) { + return _Vm.Contract.RandomAddress(&_Vm.TransactOpts) +} + +// RandomAddress is a paid mutator transaction binding the contract method 0xd5bee9f5. +// +// Solidity: function randomAddress() returns(address) +func (_Vm *VmTransactorSession) RandomAddress() (*types.Transaction, error) { + return _Vm.Contract.RandomAddress(&_Vm.TransactOpts) +} + +// RandomUint is a paid mutator transaction binding the contract method 0x25124730. +// +// Solidity: function randomUint() returns(uint256) +func (_Vm *VmTransactor) RandomUint(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "randomUint") +} + +// RandomUint is a paid mutator transaction binding the contract method 0x25124730. +// +// Solidity: function randomUint() returns(uint256) +func (_Vm *VmSession) RandomUint() (*types.Transaction, error) { + return _Vm.Contract.RandomUint(&_Vm.TransactOpts) +} + +// RandomUint is a paid mutator transaction binding the contract method 0x25124730. +// +// Solidity: function randomUint() returns(uint256) +func (_Vm *VmTransactorSession) RandomUint() (*types.Transaction, error) { + return _Vm.Contract.RandomUint(&_Vm.TransactOpts) +} + +// RandomUint0 is a paid mutator transaction binding the contract method 0xd61b051b. +// +// Solidity: function randomUint(uint256 min, uint256 max) returns(uint256) +func (_Vm *VmTransactor) RandomUint0(opts *bind.TransactOpts, min *big.Int, max *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "randomUint0", min, max) +} + +// RandomUint0 is a paid mutator transaction binding the contract method 0xd61b051b. +// +// Solidity: function randomUint(uint256 min, uint256 max) returns(uint256) +func (_Vm *VmSession) RandomUint0(min *big.Int, max *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RandomUint0(&_Vm.TransactOpts, min, max) +} + +// RandomUint0 is a paid mutator transaction binding the contract method 0xd61b051b. +// +// Solidity: function randomUint(uint256 min, uint256 max) returns(uint256) +func (_Vm *VmTransactorSession) RandomUint0(min *big.Int, max *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RandomUint0(&_Vm.TransactOpts, min, max) +} + +// ReadCallers is a paid mutator transaction binding the contract method 0x4ad0bac9. +// +// Solidity: function readCallers() returns(uint8 callerMode, address msgSender, address txOrigin) +func (_Vm *VmTransactor) ReadCallers(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "readCallers") +} + +// ReadCallers is a paid mutator transaction binding the contract method 0x4ad0bac9. +// +// Solidity: function readCallers() returns(uint8 callerMode, address msgSender, address txOrigin) +func (_Vm *VmSession) ReadCallers() (*types.Transaction, error) { + return _Vm.Contract.ReadCallers(&_Vm.TransactOpts) +} + +// ReadCallers is a paid mutator transaction binding the contract method 0x4ad0bac9. +// +// Solidity: function readCallers() returns(uint8 callerMode, address msgSender, address txOrigin) +func (_Vm *VmTransactorSession) ReadCallers() (*types.Transaction, error) { + return _Vm.Contract.ReadCallers(&_Vm.TransactOpts) +} + +// Record is a paid mutator transaction binding the contract method 0x266cf109. +// +// Solidity: function record() returns() +func (_Vm *VmTransactor) Record(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "record") +} + +// Record is a paid mutator transaction binding the contract method 0x266cf109. +// +// Solidity: function record() returns() +func (_Vm *VmSession) Record() (*types.Transaction, error) { + return _Vm.Contract.Record(&_Vm.TransactOpts) +} + +// Record is a paid mutator transaction binding the contract method 0x266cf109. +// +// Solidity: function record() returns() +func (_Vm *VmTransactorSession) Record() (*types.Transaction, error) { + return _Vm.Contract.Record(&_Vm.TransactOpts) +} + +// RecordLogs is a paid mutator transaction binding the contract method 0x41af2f52. +// +// Solidity: function recordLogs() returns() +func (_Vm *VmTransactor) RecordLogs(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "recordLogs") +} + +// RecordLogs is a paid mutator transaction binding the contract method 0x41af2f52. +// +// Solidity: function recordLogs() returns() +func (_Vm *VmSession) RecordLogs() (*types.Transaction, error) { + return _Vm.Contract.RecordLogs(&_Vm.TransactOpts) +} + +// RecordLogs is a paid mutator transaction binding the contract method 0x41af2f52. +// +// Solidity: function recordLogs() returns() +func (_Vm *VmTransactorSession) RecordLogs() (*types.Transaction, error) { + return _Vm.Contract.RecordLogs(&_Vm.TransactOpts) +} + +// RememberKey is a paid mutator transaction binding the contract method 0x22100064. +// +// Solidity: function rememberKey(uint256 privateKey) returns(address keyAddr) +func (_Vm *VmTransactor) RememberKey(opts *bind.TransactOpts, privateKey *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "rememberKey", privateKey) +} + +// RememberKey is a paid mutator transaction binding the contract method 0x22100064. +// +// Solidity: function rememberKey(uint256 privateKey) returns(address keyAddr) +func (_Vm *VmSession) RememberKey(privateKey *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RememberKey(&_Vm.TransactOpts, privateKey) +} + +// RememberKey is a paid mutator transaction binding the contract method 0x22100064. +// +// Solidity: function rememberKey(uint256 privateKey) returns(address keyAddr) +func (_Vm *VmTransactorSession) RememberKey(privateKey *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RememberKey(&_Vm.TransactOpts, privateKey) +} + +// RemoveDir is a paid mutator transaction binding the contract method 0x45c62011. +// +// Solidity: function removeDir(string path, bool recursive) returns() +func (_Vm *VmTransactor) RemoveDir(opts *bind.TransactOpts, path string, recursive bool) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "removeDir", path, recursive) +} + +// RemoveDir is a paid mutator transaction binding the contract method 0x45c62011. +// +// Solidity: function removeDir(string path, bool recursive) returns() +func (_Vm *VmSession) RemoveDir(path string, recursive bool) (*types.Transaction, error) { + return _Vm.Contract.RemoveDir(&_Vm.TransactOpts, path, recursive) +} + +// RemoveDir is a paid mutator transaction binding the contract method 0x45c62011. +// +// Solidity: function removeDir(string path, bool recursive) returns() +func (_Vm *VmTransactorSession) RemoveDir(path string, recursive bool) (*types.Transaction, error) { + return _Vm.Contract.RemoveDir(&_Vm.TransactOpts, path, recursive) +} + +// RemoveFile is a paid mutator transaction binding the contract method 0xf1afe04d. +// +// Solidity: function removeFile(string path) returns() +func (_Vm *VmTransactor) RemoveFile(opts *bind.TransactOpts, path string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "removeFile", path) +} + +// RemoveFile is a paid mutator transaction binding the contract method 0xf1afe04d. +// +// Solidity: function removeFile(string path) returns() +func (_Vm *VmSession) RemoveFile(path string) (*types.Transaction, error) { + return _Vm.Contract.RemoveFile(&_Vm.TransactOpts, path) +} + +// RemoveFile is a paid mutator transaction binding the contract method 0xf1afe04d. +// +// Solidity: function removeFile(string path) returns() +func (_Vm *VmTransactorSession) RemoveFile(path string) (*types.Transaction, error) { + return _Vm.Contract.RemoveFile(&_Vm.TransactOpts, path) +} + +// ResetNonce is a paid mutator transaction binding the contract method 0x1c72346d. +// +// Solidity: function resetNonce(address account) returns() +func (_Vm *VmTransactor) ResetNonce(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "resetNonce", account) +} + +// ResetNonce is a paid mutator transaction binding the contract method 0x1c72346d. +// +// Solidity: function resetNonce(address account) returns() +func (_Vm *VmSession) ResetNonce(account common.Address) (*types.Transaction, error) { + return _Vm.Contract.ResetNonce(&_Vm.TransactOpts, account) +} + +// ResetNonce is a paid mutator transaction binding the contract method 0x1c72346d. +// +// Solidity: function resetNonce(address account) returns() +func (_Vm *VmTransactorSession) ResetNonce(account common.Address) (*types.Transaction, error) { + return _Vm.Contract.ResetNonce(&_Vm.TransactOpts, account) +} + +// ResumeGasMetering is a paid mutator transaction binding the contract method 0x2bcd50e0. +// +// Solidity: function resumeGasMetering() returns() +func (_Vm *VmTransactor) ResumeGasMetering(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "resumeGasMetering") +} + +// ResumeGasMetering is a paid mutator transaction binding the contract method 0x2bcd50e0. +// +// Solidity: function resumeGasMetering() returns() +func (_Vm *VmSession) ResumeGasMetering() (*types.Transaction, error) { + return _Vm.Contract.ResumeGasMetering(&_Vm.TransactOpts) +} + +// ResumeGasMetering is a paid mutator transaction binding the contract method 0x2bcd50e0. +// +// Solidity: function resumeGasMetering() returns() +func (_Vm *VmTransactorSession) ResumeGasMetering() (*types.Transaction, error) { + return _Vm.Contract.ResumeGasMetering(&_Vm.TransactOpts) +} + +// RevertTo is a paid mutator transaction binding the contract method 0x44d7f0a4. +// +// Solidity: function revertTo(uint256 snapshotId) returns(bool success) +func (_Vm *VmTransactor) RevertTo(opts *bind.TransactOpts, snapshotId *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "revertTo", snapshotId) +} + +// RevertTo is a paid mutator transaction binding the contract method 0x44d7f0a4. +// +// Solidity: function revertTo(uint256 snapshotId) returns(bool success) +func (_Vm *VmSession) RevertTo(snapshotId *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RevertTo(&_Vm.TransactOpts, snapshotId) +} + +// RevertTo is a paid mutator transaction binding the contract method 0x44d7f0a4. +// +// Solidity: function revertTo(uint256 snapshotId) returns(bool success) +func (_Vm *VmTransactorSession) RevertTo(snapshotId *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RevertTo(&_Vm.TransactOpts, snapshotId) +} + +// RevertToAndDelete is a paid mutator transaction binding the contract method 0x03e0aca9. +// +// Solidity: function revertToAndDelete(uint256 snapshotId) returns(bool success) +func (_Vm *VmTransactor) RevertToAndDelete(opts *bind.TransactOpts, snapshotId *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "revertToAndDelete", snapshotId) +} + +// RevertToAndDelete is a paid mutator transaction binding the contract method 0x03e0aca9. +// +// Solidity: function revertToAndDelete(uint256 snapshotId) returns(bool success) +func (_Vm *VmSession) RevertToAndDelete(snapshotId *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RevertToAndDelete(&_Vm.TransactOpts, snapshotId) +} + +// RevertToAndDelete is a paid mutator transaction binding the contract method 0x03e0aca9. +// +// Solidity: function revertToAndDelete(uint256 snapshotId) returns(bool success) +func (_Vm *VmTransactorSession) RevertToAndDelete(snapshotId *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RevertToAndDelete(&_Vm.TransactOpts, snapshotId) +} + +// RevokePersistent is a paid mutator transaction binding the contract method 0x3ce969e6. +// +// Solidity: function revokePersistent(address[] accounts) returns() +func (_Vm *VmTransactor) RevokePersistent(opts *bind.TransactOpts, accounts []common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "revokePersistent", accounts) +} + +// RevokePersistent is a paid mutator transaction binding the contract method 0x3ce969e6. +// +// Solidity: function revokePersistent(address[] accounts) returns() +func (_Vm *VmSession) RevokePersistent(accounts []common.Address) (*types.Transaction, error) { + return _Vm.Contract.RevokePersistent(&_Vm.TransactOpts, accounts) +} + +// RevokePersistent is a paid mutator transaction binding the contract method 0x3ce969e6. +// +// Solidity: function revokePersistent(address[] accounts) returns() +func (_Vm *VmTransactorSession) RevokePersistent(accounts []common.Address) (*types.Transaction, error) { + return _Vm.Contract.RevokePersistent(&_Vm.TransactOpts, accounts) +} + +// RevokePersistent0 is a paid mutator transaction binding the contract method 0x997a0222. +// +// Solidity: function revokePersistent(address account) returns() +func (_Vm *VmTransactor) RevokePersistent0(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "revokePersistent0", account) +} + +// RevokePersistent0 is a paid mutator transaction binding the contract method 0x997a0222. +// +// Solidity: function revokePersistent(address account) returns() +func (_Vm *VmSession) RevokePersistent0(account common.Address) (*types.Transaction, error) { + return _Vm.Contract.RevokePersistent0(&_Vm.TransactOpts, account) +} + +// RevokePersistent0 is a paid mutator transaction binding the contract method 0x997a0222. +// +// Solidity: function revokePersistent(address account) returns() +func (_Vm *VmTransactorSession) RevokePersistent0(account common.Address) (*types.Transaction, error) { + return _Vm.Contract.RevokePersistent0(&_Vm.TransactOpts, account) +} + +// Roll is a paid mutator transaction binding the contract method 0x1f7b4f30. +// +// Solidity: function roll(uint256 newHeight) returns() +func (_Vm *VmTransactor) Roll(opts *bind.TransactOpts, newHeight *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "roll", newHeight) +} + +// Roll is a paid mutator transaction binding the contract method 0x1f7b4f30. +// +// Solidity: function roll(uint256 newHeight) returns() +func (_Vm *VmSession) Roll(newHeight *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Roll(&_Vm.TransactOpts, newHeight) +} + +// Roll is a paid mutator transaction binding the contract method 0x1f7b4f30. +// +// Solidity: function roll(uint256 newHeight) returns() +func (_Vm *VmTransactorSession) Roll(newHeight *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Roll(&_Vm.TransactOpts, newHeight) +} + +// RollFork is a paid mutator transaction binding the contract method 0x0f29772b. +// +// Solidity: function rollFork(bytes32 txHash) returns() +func (_Vm *VmTransactor) RollFork(opts *bind.TransactOpts, txHash [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "rollFork", txHash) +} + +// RollFork is a paid mutator transaction binding the contract method 0x0f29772b. +// +// Solidity: function rollFork(bytes32 txHash) returns() +func (_Vm *VmSession) RollFork(txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.RollFork(&_Vm.TransactOpts, txHash) +} + +// RollFork is a paid mutator transaction binding the contract method 0x0f29772b. +// +// Solidity: function rollFork(bytes32 txHash) returns() +func (_Vm *VmTransactorSession) RollFork(txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.RollFork(&_Vm.TransactOpts, txHash) +} + +// RollFork0 is a paid mutator transaction binding the contract method 0xd74c83a4. +// +// Solidity: function rollFork(uint256 forkId, uint256 blockNumber) returns() +func (_Vm *VmTransactor) RollFork0(opts *bind.TransactOpts, forkId *big.Int, blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "rollFork0", forkId, blockNumber) +} + +// RollFork0 is a paid mutator transaction binding the contract method 0xd74c83a4. +// +// Solidity: function rollFork(uint256 forkId, uint256 blockNumber) returns() +func (_Vm *VmSession) RollFork0(forkId *big.Int, blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RollFork0(&_Vm.TransactOpts, forkId, blockNumber) +} + +// RollFork0 is a paid mutator transaction binding the contract method 0xd74c83a4. +// +// Solidity: function rollFork(uint256 forkId, uint256 blockNumber) returns() +func (_Vm *VmTransactorSession) RollFork0(forkId *big.Int, blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RollFork0(&_Vm.TransactOpts, forkId, blockNumber) +} + +// RollFork1 is a paid mutator transaction binding the contract method 0xd9bbf3a1. +// +// Solidity: function rollFork(uint256 blockNumber) returns() +func (_Vm *VmTransactor) RollFork1(opts *bind.TransactOpts, blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "rollFork1", blockNumber) +} + +// RollFork1 is a paid mutator transaction binding the contract method 0xd9bbf3a1. +// +// Solidity: function rollFork(uint256 blockNumber) returns() +func (_Vm *VmSession) RollFork1(blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RollFork1(&_Vm.TransactOpts, blockNumber) +} + +// RollFork1 is a paid mutator transaction binding the contract method 0xd9bbf3a1. +// +// Solidity: function rollFork(uint256 blockNumber) returns() +func (_Vm *VmTransactorSession) RollFork1(blockNumber *big.Int) (*types.Transaction, error) { + return _Vm.Contract.RollFork1(&_Vm.TransactOpts, blockNumber) +} + +// RollFork2 is a paid mutator transaction binding the contract method 0xf2830f7b. +// +// Solidity: function rollFork(uint256 forkId, bytes32 txHash) returns() +func (_Vm *VmTransactor) RollFork2(opts *bind.TransactOpts, forkId *big.Int, txHash [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "rollFork2", forkId, txHash) +} + +// RollFork2 is a paid mutator transaction binding the contract method 0xf2830f7b. +// +// Solidity: function rollFork(uint256 forkId, bytes32 txHash) returns() +func (_Vm *VmSession) RollFork2(forkId *big.Int, txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.RollFork2(&_Vm.TransactOpts, forkId, txHash) +} + +// RollFork2 is a paid mutator transaction binding the contract method 0xf2830f7b. +// +// Solidity: function rollFork(uint256 forkId, bytes32 txHash) returns() +func (_Vm *VmTransactorSession) RollFork2(forkId *big.Int, txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.RollFork2(&_Vm.TransactOpts, forkId, txHash) +} + +// Rpc is a paid mutator transaction binding the contract method 0x0199a220. +// +// Solidity: function rpc(string urlOrAlias, string method, string params) returns(bytes data) +func (_Vm *VmTransactor) Rpc(opts *bind.TransactOpts, urlOrAlias string, method string, params string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "rpc", urlOrAlias, method, params) +} + +// Rpc is a paid mutator transaction binding the contract method 0x0199a220. +// +// Solidity: function rpc(string urlOrAlias, string method, string params) returns(bytes data) +func (_Vm *VmSession) Rpc(urlOrAlias string, method string, params string) (*types.Transaction, error) { + return _Vm.Contract.Rpc(&_Vm.TransactOpts, urlOrAlias, method, params) +} + +// Rpc is a paid mutator transaction binding the contract method 0x0199a220. +// +// Solidity: function rpc(string urlOrAlias, string method, string params) returns(bytes data) +func (_Vm *VmTransactorSession) Rpc(urlOrAlias string, method string, params string) (*types.Transaction, error) { + return _Vm.Contract.Rpc(&_Vm.TransactOpts, urlOrAlias, method, params) +} + +// Rpc0 is a paid mutator transaction binding the contract method 0x1206c8a8. +// +// Solidity: function rpc(string method, string params) returns(bytes data) +func (_Vm *VmTransactor) Rpc0(opts *bind.TransactOpts, method string, params string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "rpc0", method, params) +} + +// Rpc0 is a paid mutator transaction binding the contract method 0x1206c8a8. +// +// Solidity: function rpc(string method, string params) returns(bytes data) +func (_Vm *VmSession) Rpc0(method string, params string) (*types.Transaction, error) { + return _Vm.Contract.Rpc0(&_Vm.TransactOpts, method, params) +} + +// Rpc0 is a paid mutator transaction binding the contract method 0x1206c8a8. +// +// Solidity: function rpc(string method, string params) returns(bytes data) +func (_Vm *VmTransactorSession) Rpc0(method string, params string) (*types.Transaction, error) { + return _Vm.Contract.Rpc0(&_Vm.TransactOpts, method, params) +} + +// SelectFork is a paid mutator transaction binding the contract method 0x9ebf6827. +// +// Solidity: function selectFork(uint256 forkId) returns() +func (_Vm *VmTransactor) SelectFork(opts *bind.TransactOpts, forkId *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "selectFork", forkId) +} + +// SelectFork is a paid mutator transaction binding the contract method 0x9ebf6827. +// +// Solidity: function selectFork(uint256 forkId) returns() +func (_Vm *VmSession) SelectFork(forkId *big.Int) (*types.Transaction, error) { + return _Vm.Contract.SelectFork(&_Vm.TransactOpts, forkId) +} + +// SelectFork is a paid mutator transaction binding the contract method 0x9ebf6827. +// +// Solidity: function selectFork(uint256 forkId) returns() +func (_Vm *VmTransactorSession) SelectFork(forkId *big.Int) (*types.Transaction, error) { + return _Vm.Contract.SelectFork(&_Vm.TransactOpts, forkId) +} + +// SerializeAddress is a paid mutator transaction binding the contract method 0x1e356e1a. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address[] values) returns(string json) +func (_Vm *VmTransactor) SerializeAddress(opts *bind.TransactOpts, objectKey string, valueKey string, values []common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeAddress", objectKey, valueKey, values) +} + +// SerializeAddress is a paid mutator transaction binding the contract method 0x1e356e1a. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address[] values) returns(string json) +func (_Vm *VmSession) SerializeAddress(objectKey string, valueKey string, values []common.Address) (*types.Transaction, error) { + return _Vm.Contract.SerializeAddress(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeAddress is a paid mutator transaction binding the contract method 0x1e356e1a. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address[] values) returns(string json) +func (_Vm *VmTransactorSession) SerializeAddress(objectKey string, valueKey string, values []common.Address) (*types.Transaction, error) { + return _Vm.Contract.SerializeAddress(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeAddress0 is a paid mutator transaction binding the contract method 0x972c6062. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address value) returns(string json) +func (_Vm *VmTransactor) SerializeAddress0(opts *bind.TransactOpts, objectKey string, valueKey string, value common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeAddress0", objectKey, valueKey, value) +} + +// SerializeAddress0 is a paid mutator transaction binding the contract method 0x972c6062. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address value) returns(string json) +func (_Vm *VmSession) SerializeAddress0(objectKey string, valueKey string, value common.Address) (*types.Transaction, error) { + return _Vm.Contract.SerializeAddress0(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeAddress0 is a paid mutator transaction binding the contract method 0x972c6062. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address value) returns(string json) +func (_Vm *VmTransactorSession) SerializeAddress0(objectKey string, valueKey string, value common.Address) (*types.Transaction, error) { + return _Vm.Contract.SerializeAddress0(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBool is a paid mutator transaction binding the contract method 0x92925aa1. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool[] values) returns(string json) +func (_Vm *VmTransactor) SerializeBool(opts *bind.TransactOpts, objectKey string, valueKey string, values []bool) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeBool", objectKey, valueKey, values) +} + +// SerializeBool is a paid mutator transaction binding the contract method 0x92925aa1. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool[] values) returns(string json) +func (_Vm *VmSession) SerializeBool(objectKey string, valueKey string, values []bool) (*types.Transaction, error) { + return _Vm.Contract.SerializeBool(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBool is a paid mutator transaction binding the contract method 0x92925aa1. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool[] values) returns(string json) +func (_Vm *VmTransactorSession) SerializeBool(objectKey string, valueKey string, values []bool) (*types.Transaction, error) { + return _Vm.Contract.SerializeBool(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBool0 is a paid mutator transaction binding the contract method 0xac22e971. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool value) returns(string json) +func (_Vm *VmTransactor) SerializeBool0(opts *bind.TransactOpts, objectKey string, valueKey string, value bool) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeBool0", objectKey, valueKey, value) +} + +// SerializeBool0 is a paid mutator transaction binding the contract method 0xac22e971. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool value) returns(string json) +func (_Vm *VmSession) SerializeBool0(objectKey string, valueKey string, value bool) (*types.Transaction, error) { + return _Vm.Contract.SerializeBool0(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBool0 is a paid mutator transaction binding the contract method 0xac22e971. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool value) returns(string json) +func (_Vm *VmTransactorSession) SerializeBool0(objectKey string, valueKey string, value bool) (*types.Transaction, error) { + return _Vm.Contract.SerializeBool0(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBytes is a paid mutator transaction binding the contract method 0x9884b232. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes[] values) returns(string json) +func (_Vm *VmTransactor) SerializeBytes(opts *bind.TransactOpts, objectKey string, valueKey string, values [][]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeBytes", objectKey, valueKey, values) +} + +// SerializeBytes is a paid mutator transaction binding the contract method 0x9884b232. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes[] values) returns(string json) +func (_Vm *VmSession) SerializeBytes(objectKey string, valueKey string, values [][]byte) (*types.Transaction, error) { + return _Vm.Contract.SerializeBytes(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBytes is a paid mutator transaction binding the contract method 0x9884b232. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes[] values) returns(string json) +func (_Vm *VmTransactorSession) SerializeBytes(objectKey string, valueKey string, values [][]byte) (*types.Transaction, error) { + return _Vm.Contract.SerializeBytes(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBytes0 is a paid mutator transaction binding the contract method 0xf21d52c7. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes value) returns(string json) +func (_Vm *VmTransactor) SerializeBytes0(opts *bind.TransactOpts, objectKey string, valueKey string, value []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeBytes0", objectKey, valueKey, value) +} + +// SerializeBytes0 is a paid mutator transaction binding the contract method 0xf21d52c7. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes value) returns(string json) +func (_Vm *VmSession) SerializeBytes0(objectKey string, valueKey string, value []byte) (*types.Transaction, error) { + return _Vm.Contract.SerializeBytes0(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBytes0 is a paid mutator transaction binding the contract method 0xf21d52c7. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes value) returns(string json) +func (_Vm *VmTransactorSession) SerializeBytes0(objectKey string, valueKey string, value []byte) (*types.Transaction, error) { + return _Vm.Contract.SerializeBytes0(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBytes32 is a paid mutator transaction binding the contract method 0x201e43e2. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32[] values) returns(string json) +func (_Vm *VmTransactor) SerializeBytes32(opts *bind.TransactOpts, objectKey string, valueKey string, values [][32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeBytes32", objectKey, valueKey, values) +} + +// SerializeBytes32 is a paid mutator transaction binding the contract method 0x201e43e2. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32[] values) returns(string json) +func (_Vm *VmSession) SerializeBytes32(objectKey string, valueKey string, values [][32]byte) (*types.Transaction, error) { + return _Vm.Contract.SerializeBytes32(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBytes32 is a paid mutator transaction binding the contract method 0x201e43e2. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32[] values) returns(string json) +func (_Vm *VmTransactorSession) SerializeBytes32(objectKey string, valueKey string, values [][32]byte) (*types.Transaction, error) { + return _Vm.Contract.SerializeBytes32(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBytes320 is a paid mutator transaction binding the contract method 0x2d812b44. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32 value) returns(string json) +func (_Vm *VmTransactor) SerializeBytes320(opts *bind.TransactOpts, objectKey string, valueKey string, value [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeBytes320", objectKey, valueKey, value) +} + +// SerializeBytes320 is a paid mutator transaction binding the contract method 0x2d812b44. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32 value) returns(string json) +func (_Vm *VmSession) SerializeBytes320(objectKey string, valueKey string, value [32]byte) (*types.Transaction, error) { + return _Vm.Contract.SerializeBytes320(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBytes320 is a paid mutator transaction binding the contract method 0x2d812b44. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32 value) returns(string json) +func (_Vm *VmTransactorSession) SerializeBytes320(objectKey string, valueKey string, value [32]byte) (*types.Transaction, error) { + return _Vm.Contract.SerializeBytes320(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeInt is a paid mutator transaction binding the contract method 0x3f33db60. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256 value) returns(string json) +func (_Vm *VmTransactor) SerializeInt(opts *bind.TransactOpts, objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeInt", objectKey, valueKey, value) +} + +// SerializeInt is a paid mutator transaction binding the contract method 0x3f33db60. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256 value) returns(string json) +func (_Vm *VmSession) SerializeInt(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _Vm.Contract.SerializeInt(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeInt is a paid mutator transaction binding the contract method 0x3f33db60. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256 value) returns(string json) +func (_Vm *VmTransactorSession) SerializeInt(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _Vm.Contract.SerializeInt(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeInt0 is a paid mutator transaction binding the contract method 0x7676e127. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256[] values) returns(string json) +func (_Vm *VmTransactor) SerializeInt0(opts *bind.TransactOpts, objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeInt0", objectKey, valueKey, values) +} + +// SerializeInt0 is a paid mutator transaction binding the contract method 0x7676e127. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256[] values) returns(string json) +func (_Vm *VmSession) SerializeInt0(objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _Vm.Contract.SerializeInt0(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeInt0 is a paid mutator transaction binding the contract method 0x7676e127. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256[] values) returns(string json) +func (_Vm *VmTransactorSession) SerializeInt0(objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _Vm.Contract.SerializeInt0(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeJson is a paid mutator transaction binding the contract method 0x9b3358b0. +// +// Solidity: function serializeJson(string objectKey, string value) returns(string json) +func (_Vm *VmTransactor) SerializeJson(opts *bind.TransactOpts, objectKey string, value string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeJson", objectKey, value) +} + +// SerializeJson is a paid mutator transaction binding the contract method 0x9b3358b0. +// +// Solidity: function serializeJson(string objectKey, string value) returns(string json) +func (_Vm *VmSession) SerializeJson(objectKey string, value string) (*types.Transaction, error) { + return _Vm.Contract.SerializeJson(&_Vm.TransactOpts, objectKey, value) +} + +// SerializeJson is a paid mutator transaction binding the contract method 0x9b3358b0. +// +// Solidity: function serializeJson(string objectKey, string value) returns(string json) +func (_Vm *VmTransactorSession) SerializeJson(objectKey string, value string) (*types.Transaction, error) { + return _Vm.Contract.SerializeJson(&_Vm.TransactOpts, objectKey, value) +} + +// SerializeJsonType0 is a paid mutator transaction binding the contract method 0x6f93bccb. +// +// Solidity: function serializeJsonType(string objectKey, string valueKey, string typeDescription, bytes value) returns(string json) +func (_Vm *VmTransactor) SerializeJsonType0(opts *bind.TransactOpts, objectKey string, valueKey string, typeDescription string, value []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeJsonType0", objectKey, valueKey, typeDescription, value) +} + +// SerializeJsonType0 is a paid mutator transaction binding the contract method 0x6f93bccb. +// +// Solidity: function serializeJsonType(string objectKey, string valueKey, string typeDescription, bytes value) returns(string json) +func (_Vm *VmSession) SerializeJsonType0(objectKey string, valueKey string, typeDescription string, value []byte) (*types.Transaction, error) { + return _Vm.Contract.SerializeJsonType0(&_Vm.TransactOpts, objectKey, valueKey, typeDescription, value) +} + +// SerializeJsonType0 is a paid mutator transaction binding the contract method 0x6f93bccb. +// +// Solidity: function serializeJsonType(string objectKey, string valueKey, string typeDescription, bytes value) returns(string json) +func (_Vm *VmTransactorSession) SerializeJsonType0(objectKey string, valueKey string, typeDescription string, value []byte) (*types.Transaction, error) { + return _Vm.Contract.SerializeJsonType0(&_Vm.TransactOpts, objectKey, valueKey, typeDescription, value) +} + +// SerializeString is a paid mutator transaction binding the contract method 0x561cd6f3. +// +// Solidity: function serializeString(string objectKey, string valueKey, string[] values) returns(string json) +func (_Vm *VmTransactor) SerializeString(opts *bind.TransactOpts, objectKey string, valueKey string, values []string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeString", objectKey, valueKey, values) +} + +// SerializeString is a paid mutator transaction binding the contract method 0x561cd6f3. +// +// Solidity: function serializeString(string objectKey, string valueKey, string[] values) returns(string json) +func (_Vm *VmSession) SerializeString(objectKey string, valueKey string, values []string) (*types.Transaction, error) { + return _Vm.Contract.SerializeString(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeString is a paid mutator transaction binding the contract method 0x561cd6f3. +// +// Solidity: function serializeString(string objectKey, string valueKey, string[] values) returns(string json) +func (_Vm *VmTransactorSession) SerializeString(objectKey string, valueKey string, values []string) (*types.Transaction, error) { + return _Vm.Contract.SerializeString(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeString0 is a paid mutator transaction binding the contract method 0x88da6d35. +// +// Solidity: function serializeString(string objectKey, string valueKey, string value) returns(string json) +func (_Vm *VmTransactor) SerializeString0(opts *bind.TransactOpts, objectKey string, valueKey string, value string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeString0", objectKey, valueKey, value) +} + +// SerializeString0 is a paid mutator transaction binding the contract method 0x88da6d35. +// +// Solidity: function serializeString(string objectKey, string valueKey, string value) returns(string json) +func (_Vm *VmSession) SerializeString0(objectKey string, valueKey string, value string) (*types.Transaction, error) { + return _Vm.Contract.SerializeString0(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeString0 is a paid mutator transaction binding the contract method 0x88da6d35. +// +// Solidity: function serializeString(string objectKey, string valueKey, string value) returns(string json) +func (_Vm *VmTransactorSession) SerializeString0(objectKey string, valueKey string, value string) (*types.Transaction, error) { + return _Vm.Contract.SerializeString0(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeUint is a paid mutator transaction binding the contract method 0x129e9002. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256 value) returns(string json) +func (_Vm *VmTransactor) SerializeUint(opts *bind.TransactOpts, objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeUint", objectKey, valueKey, value) +} + +// SerializeUint is a paid mutator transaction binding the contract method 0x129e9002. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256 value) returns(string json) +func (_Vm *VmSession) SerializeUint(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _Vm.Contract.SerializeUint(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeUint is a paid mutator transaction binding the contract method 0x129e9002. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256 value) returns(string json) +func (_Vm *VmTransactorSession) SerializeUint(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _Vm.Contract.SerializeUint(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeUint0 is a paid mutator transaction binding the contract method 0xfee9a469. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256[] values) returns(string json) +func (_Vm *VmTransactor) SerializeUint0(opts *bind.TransactOpts, objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeUint0", objectKey, valueKey, values) +} + +// SerializeUint0 is a paid mutator transaction binding the contract method 0xfee9a469. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256[] values) returns(string json) +func (_Vm *VmSession) SerializeUint0(objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _Vm.Contract.SerializeUint0(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeUint0 is a paid mutator transaction binding the contract method 0xfee9a469. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256[] values) returns(string json) +func (_Vm *VmTransactorSession) SerializeUint0(objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _Vm.Contract.SerializeUint0(&_Vm.TransactOpts, objectKey, valueKey, values) +} + +// SerializeUintToHex is a paid mutator transaction binding the contract method 0xae5a2ae8. +// +// Solidity: function serializeUintToHex(string objectKey, string valueKey, uint256 value) returns(string json) +func (_Vm *VmTransactor) SerializeUintToHex(opts *bind.TransactOpts, objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "serializeUintToHex", objectKey, valueKey, value) +} + +// SerializeUintToHex is a paid mutator transaction binding the contract method 0xae5a2ae8. +// +// Solidity: function serializeUintToHex(string objectKey, string valueKey, uint256 value) returns(string json) +func (_Vm *VmSession) SerializeUintToHex(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _Vm.Contract.SerializeUintToHex(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SerializeUintToHex is a paid mutator transaction binding the contract method 0xae5a2ae8. +// +// Solidity: function serializeUintToHex(string objectKey, string valueKey, uint256 value) returns(string json) +func (_Vm *VmTransactorSession) SerializeUintToHex(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _Vm.Contract.SerializeUintToHex(&_Vm.TransactOpts, objectKey, valueKey, value) +} + +// SetBlockhash is a paid mutator transaction binding the contract method 0x5314b54a. +// +// Solidity: function setBlockhash(uint256 blockNumber, bytes32 blockHash) returns() +func (_Vm *VmTransactor) SetBlockhash(opts *bind.TransactOpts, blockNumber *big.Int, blockHash [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "setBlockhash", blockNumber, blockHash) +} + +// SetBlockhash is a paid mutator transaction binding the contract method 0x5314b54a. +// +// Solidity: function setBlockhash(uint256 blockNumber, bytes32 blockHash) returns() +func (_Vm *VmSession) SetBlockhash(blockNumber *big.Int, blockHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.SetBlockhash(&_Vm.TransactOpts, blockNumber, blockHash) +} + +// SetBlockhash is a paid mutator transaction binding the contract method 0x5314b54a. +// +// Solidity: function setBlockhash(uint256 blockNumber, bytes32 blockHash) returns() +func (_Vm *VmTransactorSession) SetBlockhash(blockNumber *big.Int, blockHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.SetBlockhash(&_Vm.TransactOpts, blockNumber, blockHash) +} + +// SetEnv is a paid mutator transaction binding the contract method 0x3d5923ee. +// +// Solidity: function setEnv(string name, string value) returns() +func (_Vm *VmTransactor) SetEnv(opts *bind.TransactOpts, name string, value string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "setEnv", name, value) +} + +// SetEnv is a paid mutator transaction binding the contract method 0x3d5923ee. +// +// Solidity: function setEnv(string name, string value) returns() +func (_Vm *VmSession) SetEnv(name string, value string) (*types.Transaction, error) { + return _Vm.Contract.SetEnv(&_Vm.TransactOpts, name, value) +} + +// SetEnv is a paid mutator transaction binding the contract method 0x3d5923ee. +// +// Solidity: function setEnv(string name, string value) returns() +func (_Vm *VmTransactorSession) SetEnv(name string, value string) (*types.Transaction, error) { + return _Vm.Contract.SetEnv(&_Vm.TransactOpts, name, value) +} + +// SetNonce is a paid mutator transaction binding the contract method 0xf8e18b57. +// +// Solidity: function setNonce(address account, uint64 newNonce) returns() +func (_Vm *VmTransactor) SetNonce(opts *bind.TransactOpts, account common.Address, newNonce uint64) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "setNonce", account, newNonce) +} + +// SetNonce is a paid mutator transaction binding the contract method 0xf8e18b57. +// +// Solidity: function setNonce(address account, uint64 newNonce) returns() +func (_Vm *VmSession) SetNonce(account common.Address, newNonce uint64) (*types.Transaction, error) { + return _Vm.Contract.SetNonce(&_Vm.TransactOpts, account, newNonce) +} + +// SetNonce is a paid mutator transaction binding the contract method 0xf8e18b57. +// +// Solidity: function setNonce(address account, uint64 newNonce) returns() +func (_Vm *VmTransactorSession) SetNonce(account common.Address, newNonce uint64) (*types.Transaction, error) { + return _Vm.Contract.SetNonce(&_Vm.TransactOpts, account, newNonce) +} + +// SetNonceUnsafe is a paid mutator transaction binding the contract method 0x9b67b21c. +// +// Solidity: function setNonceUnsafe(address account, uint64 newNonce) returns() +func (_Vm *VmTransactor) SetNonceUnsafe(opts *bind.TransactOpts, account common.Address, newNonce uint64) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "setNonceUnsafe", account, newNonce) +} + +// SetNonceUnsafe is a paid mutator transaction binding the contract method 0x9b67b21c. +// +// Solidity: function setNonceUnsafe(address account, uint64 newNonce) returns() +func (_Vm *VmSession) SetNonceUnsafe(account common.Address, newNonce uint64) (*types.Transaction, error) { + return _Vm.Contract.SetNonceUnsafe(&_Vm.TransactOpts, account, newNonce) +} + +// SetNonceUnsafe is a paid mutator transaction binding the contract method 0x9b67b21c. +// +// Solidity: function setNonceUnsafe(address account, uint64 newNonce) returns() +func (_Vm *VmTransactorSession) SetNonceUnsafe(account common.Address, newNonce uint64) (*types.Transaction, error) { + return _Vm.Contract.SetNonceUnsafe(&_Vm.TransactOpts, account, newNonce) +} + +// Sign1 is a paid mutator transaction binding the contract method 0xb25c5a25. +// +// Solidity: function sign((address,uint256,uint256,uint256) wallet, bytes32 digest) returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmTransactor) Sign1(opts *bind.TransactOpts, wallet VmSafeWallet, digest [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "sign1", wallet, digest) +} + +// Sign1 is a paid mutator transaction binding the contract method 0xb25c5a25. +// +// Solidity: function sign((address,uint256,uint256,uint256) wallet, bytes32 digest) returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmSession) Sign1(wallet VmSafeWallet, digest [32]byte) (*types.Transaction, error) { + return _Vm.Contract.Sign1(&_Vm.TransactOpts, wallet, digest) +} + +// Sign1 is a paid mutator transaction binding the contract method 0xb25c5a25. +// +// Solidity: function sign((address,uint256,uint256,uint256) wallet, bytes32 digest) returns(uint8 v, bytes32 r, bytes32 s) +func (_Vm *VmTransactorSession) Sign1(wallet VmSafeWallet, digest [32]byte) (*types.Transaction, error) { + return _Vm.Contract.Sign1(&_Vm.TransactOpts, wallet, digest) +} + +// Skip is a paid mutator transaction binding the contract method 0xdd82d13e. +// +// Solidity: function skip(bool skipTest) returns() +func (_Vm *VmTransactor) Skip(opts *bind.TransactOpts, skipTest bool) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "skip", skipTest) +} + +// Skip is a paid mutator transaction binding the contract method 0xdd82d13e. +// +// Solidity: function skip(bool skipTest) returns() +func (_Vm *VmSession) Skip(skipTest bool) (*types.Transaction, error) { + return _Vm.Contract.Skip(&_Vm.TransactOpts, skipTest) +} + +// Skip is a paid mutator transaction binding the contract method 0xdd82d13e. +// +// Solidity: function skip(bool skipTest) returns() +func (_Vm *VmTransactorSession) Skip(skipTest bool) (*types.Transaction, error) { + return _Vm.Contract.Skip(&_Vm.TransactOpts, skipTest) +} + +// Sleep is a paid mutator transaction binding the contract method 0xfa9d8713. +// +// Solidity: function sleep(uint256 duration) returns() +func (_Vm *VmTransactor) Sleep(opts *bind.TransactOpts, duration *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "sleep", duration) +} + +// Sleep is a paid mutator transaction binding the contract method 0xfa9d8713. +// +// Solidity: function sleep(uint256 duration) returns() +func (_Vm *VmSession) Sleep(duration *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Sleep(&_Vm.TransactOpts, duration) +} + +// Sleep is a paid mutator transaction binding the contract method 0xfa9d8713. +// +// Solidity: function sleep(uint256 duration) returns() +func (_Vm *VmTransactorSession) Sleep(duration *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Sleep(&_Vm.TransactOpts, duration) +} + +// Snapshot is a paid mutator transaction binding the contract method 0x9711715a. +// +// Solidity: function snapshot() returns(uint256 snapshotId) +func (_Vm *VmTransactor) Snapshot(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "snapshot") +} + +// Snapshot is a paid mutator transaction binding the contract method 0x9711715a. +// +// Solidity: function snapshot() returns(uint256 snapshotId) +func (_Vm *VmSession) Snapshot() (*types.Transaction, error) { + return _Vm.Contract.Snapshot(&_Vm.TransactOpts) +} + +// Snapshot is a paid mutator transaction binding the contract method 0x9711715a. +// +// Solidity: function snapshot() returns(uint256 snapshotId) +func (_Vm *VmTransactorSession) Snapshot() (*types.Transaction, error) { + return _Vm.Contract.Snapshot(&_Vm.TransactOpts) +} + +// StartBroadcast is a paid mutator transaction binding the contract method 0x7fb5297f. +// +// Solidity: function startBroadcast() returns() +func (_Vm *VmTransactor) StartBroadcast(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "startBroadcast") +} + +// StartBroadcast is a paid mutator transaction binding the contract method 0x7fb5297f. +// +// Solidity: function startBroadcast() returns() +func (_Vm *VmSession) StartBroadcast() (*types.Transaction, error) { + return _Vm.Contract.StartBroadcast(&_Vm.TransactOpts) +} + +// StartBroadcast is a paid mutator transaction binding the contract method 0x7fb5297f. +// +// Solidity: function startBroadcast() returns() +func (_Vm *VmTransactorSession) StartBroadcast() (*types.Transaction, error) { + return _Vm.Contract.StartBroadcast(&_Vm.TransactOpts) +} + +// StartBroadcast0 is a paid mutator transaction binding the contract method 0x7fec2a8d. +// +// Solidity: function startBroadcast(address signer) returns() +func (_Vm *VmTransactor) StartBroadcast0(opts *bind.TransactOpts, signer common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "startBroadcast0", signer) +} + +// StartBroadcast0 is a paid mutator transaction binding the contract method 0x7fec2a8d. +// +// Solidity: function startBroadcast(address signer) returns() +func (_Vm *VmSession) StartBroadcast0(signer common.Address) (*types.Transaction, error) { + return _Vm.Contract.StartBroadcast0(&_Vm.TransactOpts, signer) +} + +// StartBroadcast0 is a paid mutator transaction binding the contract method 0x7fec2a8d. +// +// Solidity: function startBroadcast(address signer) returns() +func (_Vm *VmTransactorSession) StartBroadcast0(signer common.Address) (*types.Transaction, error) { + return _Vm.Contract.StartBroadcast0(&_Vm.TransactOpts, signer) +} + +// StartBroadcast1 is a paid mutator transaction binding the contract method 0xce817d47. +// +// Solidity: function startBroadcast(uint256 privateKey) returns() +func (_Vm *VmTransactor) StartBroadcast1(opts *bind.TransactOpts, privateKey *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "startBroadcast1", privateKey) +} + +// StartBroadcast1 is a paid mutator transaction binding the contract method 0xce817d47. +// +// Solidity: function startBroadcast(uint256 privateKey) returns() +func (_Vm *VmSession) StartBroadcast1(privateKey *big.Int) (*types.Transaction, error) { + return _Vm.Contract.StartBroadcast1(&_Vm.TransactOpts, privateKey) +} + +// StartBroadcast1 is a paid mutator transaction binding the contract method 0xce817d47. +// +// Solidity: function startBroadcast(uint256 privateKey) returns() +func (_Vm *VmTransactorSession) StartBroadcast1(privateKey *big.Int) (*types.Transaction, error) { + return _Vm.Contract.StartBroadcast1(&_Vm.TransactOpts, privateKey) +} + +// StartMappingRecording is a paid mutator transaction binding the contract method 0x3e9705c0. +// +// Solidity: function startMappingRecording() returns() +func (_Vm *VmTransactor) StartMappingRecording(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "startMappingRecording") +} + +// StartMappingRecording is a paid mutator transaction binding the contract method 0x3e9705c0. +// +// Solidity: function startMappingRecording() returns() +func (_Vm *VmSession) StartMappingRecording() (*types.Transaction, error) { + return _Vm.Contract.StartMappingRecording(&_Vm.TransactOpts) +} + +// StartMappingRecording is a paid mutator transaction binding the contract method 0x3e9705c0. +// +// Solidity: function startMappingRecording() returns() +func (_Vm *VmTransactorSession) StartMappingRecording() (*types.Transaction, error) { + return _Vm.Contract.StartMappingRecording(&_Vm.TransactOpts) +} + +// StartPrank is a paid mutator transaction binding the contract method 0x06447d56. +// +// Solidity: function startPrank(address msgSender) returns() +func (_Vm *VmTransactor) StartPrank(opts *bind.TransactOpts, msgSender common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "startPrank", msgSender) +} + +// StartPrank is a paid mutator transaction binding the contract method 0x06447d56. +// +// Solidity: function startPrank(address msgSender) returns() +func (_Vm *VmSession) StartPrank(msgSender common.Address) (*types.Transaction, error) { + return _Vm.Contract.StartPrank(&_Vm.TransactOpts, msgSender) +} + +// StartPrank is a paid mutator transaction binding the contract method 0x06447d56. +// +// Solidity: function startPrank(address msgSender) returns() +func (_Vm *VmTransactorSession) StartPrank(msgSender common.Address) (*types.Transaction, error) { + return _Vm.Contract.StartPrank(&_Vm.TransactOpts, msgSender) +} + +// StartPrank0 is a paid mutator transaction binding the contract method 0x45b56078. +// +// Solidity: function startPrank(address msgSender, address txOrigin) returns() +func (_Vm *VmTransactor) StartPrank0(opts *bind.TransactOpts, msgSender common.Address, txOrigin common.Address) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "startPrank0", msgSender, txOrigin) +} + +// StartPrank0 is a paid mutator transaction binding the contract method 0x45b56078. +// +// Solidity: function startPrank(address msgSender, address txOrigin) returns() +func (_Vm *VmSession) StartPrank0(msgSender common.Address, txOrigin common.Address) (*types.Transaction, error) { + return _Vm.Contract.StartPrank0(&_Vm.TransactOpts, msgSender, txOrigin) +} + +// StartPrank0 is a paid mutator transaction binding the contract method 0x45b56078. +// +// Solidity: function startPrank(address msgSender, address txOrigin) returns() +func (_Vm *VmTransactorSession) StartPrank0(msgSender common.Address, txOrigin common.Address) (*types.Transaction, error) { + return _Vm.Contract.StartPrank0(&_Vm.TransactOpts, msgSender, txOrigin) +} + +// StartStateDiffRecording is a paid mutator transaction binding the contract method 0xcf22e3c9. +// +// Solidity: function startStateDiffRecording() returns() +func (_Vm *VmTransactor) StartStateDiffRecording(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "startStateDiffRecording") +} + +// StartStateDiffRecording is a paid mutator transaction binding the contract method 0xcf22e3c9. +// +// Solidity: function startStateDiffRecording() returns() +func (_Vm *VmSession) StartStateDiffRecording() (*types.Transaction, error) { + return _Vm.Contract.StartStateDiffRecording(&_Vm.TransactOpts) +} + +// StartStateDiffRecording is a paid mutator transaction binding the contract method 0xcf22e3c9. +// +// Solidity: function startStateDiffRecording() returns() +func (_Vm *VmTransactorSession) StartStateDiffRecording() (*types.Transaction, error) { + return _Vm.Contract.StartStateDiffRecording(&_Vm.TransactOpts) +} + +// StopAndReturnStateDiff is a paid mutator transaction binding the contract method 0xaa5cf90e. +// +// Solidity: function stopAndReturnStateDiff() returns(((uint256,uint256),uint8,address,address,bool,uint256,uint256,bytes,uint256,bytes,bool,(address,bytes32,bool,bytes32,bytes32,bool)[],uint64)[] accountAccesses) +func (_Vm *VmTransactor) StopAndReturnStateDiff(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "stopAndReturnStateDiff") +} + +// StopAndReturnStateDiff is a paid mutator transaction binding the contract method 0xaa5cf90e. +// +// Solidity: function stopAndReturnStateDiff() returns(((uint256,uint256),uint8,address,address,bool,uint256,uint256,bytes,uint256,bytes,bool,(address,bytes32,bool,bytes32,bytes32,bool)[],uint64)[] accountAccesses) +func (_Vm *VmSession) StopAndReturnStateDiff() (*types.Transaction, error) { + return _Vm.Contract.StopAndReturnStateDiff(&_Vm.TransactOpts) +} + +// StopAndReturnStateDiff is a paid mutator transaction binding the contract method 0xaa5cf90e. +// +// Solidity: function stopAndReturnStateDiff() returns(((uint256,uint256),uint8,address,address,bool,uint256,uint256,bytes,uint256,bytes,bool,(address,bytes32,bool,bytes32,bytes32,bool)[],uint64)[] accountAccesses) +func (_Vm *VmTransactorSession) StopAndReturnStateDiff() (*types.Transaction, error) { + return _Vm.Contract.StopAndReturnStateDiff(&_Vm.TransactOpts) +} + +// StopBroadcast is a paid mutator transaction binding the contract method 0x76eadd36. +// +// Solidity: function stopBroadcast() returns() +func (_Vm *VmTransactor) StopBroadcast(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "stopBroadcast") +} + +// StopBroadcast is a paid mutator transaction binding the contract method 0x76eadd36. +// +// Solidity: function stopBroadcast() returns() +func (_Vm *VmSession) StopBroadcast() (*types.Transaction, error) { + return _Vm.Contract.StopBroadcast(&_Vm.TransactOpts) +} + +// StopBroadcast is a paid mutator transaction binding the contract method 0x76eadd36. +// +// Solidity: function stopBroadcast() returns() +func (_Vm *VmTransactorSession) StopBroadcast() (*types.Transaction, error) { + return _Vm.Contract.StopBroadcast(&_Vm.TransactOpts) +} + +// StopExpectSafeMemory is a paid mutator transaction binding the contract method 0x0956441b. +// +// Solidity: function stopExpectSafeMemory() returns() +func (_Vm *VmTransactor) StopExpectSafeMemory(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "stopExpectSafeMemory") +} + +// StopExpectSafeMemory is a paid mutator transaction binding the contract method 0x0956441b. +// +// Solidity: function stopExpectSafeMemory() returns() +func (_Vm *VmSession) StopExpectSafeMemory() (*types.Transaction, error) { + return _Vm.Contract.StopExpectSafeMemory(&_Vm.TransactOpts) +} + +// StopExpectSafeMemory is a paid mutator transaction binding the contract method 0x0956441b. +// +// Solidity: function stopExpectSafeMemory() returns() +func (_Vm *VmTransactorSession) StopExpectSafeMemory() (*types.Transaction, error) { + return _Vm.Contract.StopExpectSafeMemory(&_Vm.TransactOpts) +} + +// StopMappingRecording is a paid mutator transaction binding the contract method 0x0d4aae9b. +// +// Solidity: function stopMappingRecording() returns() +func (_Vm *VmTransactor) StopMappingRecording(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "stopMappingRecording") +} + +// StopMappingRecording is a paid mutator transaction binding the contract method 0x0d4aae9b. +// +// Solidity: function stopMappingRecording() returns() +func (_Vm *VmSession) StopMappingRecording() (*types.Transaction, error) { + return _Vm.Contract.StopMappingRecording(&_Vm.TransactOpts) +} + +// StopMappingRecording is a paid mutator transaction binding the contract method 0x0d4aae9b. +// +// Solidity: function stopMappingRecording() returns() +func (_Vm *VmTransactorSession) StopMappingRecording() (*types.Transaction, error) { + return _Vm.Contract.StopMappingRecording(&_Vm.TransactOpts) +} + +// StopPrank is a paid mutator transaction binding the contract method 0x90c5013b. +// +// Solidity: function stopPrank() returns() +func (_Vm *VmTransactor) StopPrank(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "stopPrank") +} + +// StopPrank is a paid mutator transaction binding the contract method 0x90c5013b. +// +// Solidity: function stopPrank() returns() +func (_Vm *VmSession) StopPrank() (*types.Transaction, error) { + return _Vm.Contract.StopPrank(&_Vm.TransactOpts) +} + +// StopPrank is a paid mutator transaction binding the contract method 0x90c5013b. +// +// Solidity: function stopPrank() returns() +func (_Vm *VmTransactorSession) StopPrank() (*types.Transaction, error) { + return _Vm.Contract.StopPrank(&_Vm.TransactOpts) +} + +// Store is a paid mutator transaction binding the contract method 0x70ca10bb. +// +// Solidity: function store(address target, bytes32 slot, bytes32 value) returns() +func (_Vm *VmTransactor) Store(opts *bind.TransactOpts, target common.Address, slot [32]byte, value [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "store", target, slot, value) +} + +// Store is a paid mutator transaction binding the contract method 0x70ca10bb. +// +// Solidity: function store(address target, bytes32 slot, bytes32 value) returns() +func (_Vm *VmSession) Store(target common.Address, slot [32]byte, value [32]byte) (*types.Transaction, error) { + return _Vm.Contract.Store(&_Vm.TransactOpts, target, slot, value) +} + +// Store is a paid mutator transaction binding the contract method 0x70ca10bb. +// +// Solidity: function store(address target, bytes32 slot, bytes32 value) returns() +func (_Vm *VmTransactorSession) Store(target common.Address, slot [32]byte, value [32]byte) (*types.Transaction, error) { + return _Vm.Contract.Store(&_Vm.TransactOpts, target, slot, value) +} + +// Transact is a paid mutator transaction binding the contract method 0x4d8abc4b. +// +// Solidity: function transact(uint256 forkId, bytes32 txHash) returns() +func (_Vm *VmTransactor) Transact(opts *bind.TransactOpts, forkId *big.Int, txHash [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "transact", forkId, txHash) +} + +// Transact is a paid mutator transaction binding the contract method 0x4d8abc4b. +// +// Solidity: function transact(uint256 forkId, bytes32 txHash) returns() +func (_Vm *VmSession) Transact(forkId *big.Int, txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.Transact(&_Vm.TransactOpts, forkId, txHash) +} + +// Transact is a paid mutator transaction binding the contract method 0x4d8abc4b. +// +// Solidity: function transact(uint256 forkId, bytes32 txHash) returns() +func (_Vm *VmTransactorSession) Transact(forkId *big.Int, txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.Transact(&_Vm.TransactOpts, forkId, txHash) +} + +// Transact0 is a paid mutator transaction binding the contract method 0xbe646da1. +// +// Solidity: function transact(bytes32 txHash) returns() +func (_Vm *VmTransactor) Transact0(opts *bind.TransactOpts, txHash [32]byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "transact0", txHash) +} + +// Transact0 is a paid mutator transaction binding the contract method 0xbe646da1. +// +// Solidity: function transact(bytes32 txHash) returns() +func (_Vm *VmSession) Transact0(txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.Transact0(&_Vm.TransactOpts, txHash) +} + +// Transact0 is a paid mutator transaction binding the contract method 0xbe646da1. +// +// Solidity: function transact(bytes32 txHash) returns() +func (_Vm *VmTransactorSession) Transact0(txHash [32]byte) (*types.Transaction, error) { + return _Vm.Contract.Transact0(&_Vm.TransactOpts, txHash) +} + +// TryFfi is a paid mutator transaction binding the contract method 0xf45c1ce7. +// +// Solidity: function tryFfi(string[] commandInput) returns((int32,bytes,bytes) result) +func (_Vm *VmTransactor) TryFfi(opts *bind.TransactOpts, commandInput []string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "tryFfi", commandInput) +} + +// TryFfi is a paid mutator transaction binding the contract method 0xf45c1ce7. +// +// Solidity: function tryFfi(string[] commandInput) returns((int32,bytes,bytes) result) +func (_Vm *VmSession) TryFfi(commandInput []string) (*types.Transaction, error) { + return _Vm.Contract.TryFfi(&_Vm.TransactOpts, commandInput) +} + +// TryFfi is a paid mutator transaction binding the contract method 0xf45c1ce7. +// +// Solidity: function tryFfi(string[] commandInput) returns((int32,bytes,bytes) result) +func (_Vm *VmTransactorSession) TryFfi(commandInput []string) (*types.Transaction, error) { + return _Vm.Contract.TryFfi(&_Vm.TransactOpts, commandInput) +} + +// TxGasPrice is a paid mutator transaction binding the contract method 0x48f50c0f. +// +// Solidity: function txGasPrice(uint256 newGasPrice) returns() +func (_Vm *VmTransactor) TxGasPrice(opts *bind.TransactOpts, newGasPrice *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "txGasPrice", newGasPrice) +} + +// TxGasPrice is a paid mutator transaction binding the contract method 0x48f50c0f. +// +// Solidity: function txGasPrice(uint256 newGasPrice) returns() +func (_Vm *VmSession) TxGasPrice(newGasPrice *big.Int) (*types.Transaction, error) { + return _Vm.Contract.TxGasPrice(&_Vm.TransactOpts, newGasPrice) +} + +// TxGasPrice is a paid mutator transaction binding the contract method 0x48f50c0f. +// +// Solidity: function txGasPrice(uint256 newGasPrice) returns() +func (_Vm *VmTransactorSession) TxGasPrice(newGasPrice *big.Int) (*types.Transaction, error) { + return _Vm.Contract.TxGasPrice(&_Vm.TransactOpts, newGasPrice) +} + +// UnixTime is a paid mutator transaction binding the contract method 0x625387dc. +// +// Solidity: function unixTime() returns(uint256 milliseconds) +func (_Vm *VmTransactor) UnixTime(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "unixTime") +} + +// UnixTime is a paid mutator transaction binding the contract method 0x625387dc. +// +// Solidity: function unixTime() returns(uint256 milliseconds) +func (_Vm *VmSession) UnixTime() (*types.Transaction, error) { + return _Vm.Contract.UnixTime(&_Vm.TransactOpts) +} + +// UnixTime is a paid mutator transaction binding the contract method 0x625387dc. +// +// Solidity: function unixTime() returns(uint256 milliseconds) +func (_Vm *VmTransactorSession) UnixTime() (*types.Transaction, error) { + return _Vm.Contract.UnixTime(&_Vm.TransactOpts) +} + +// Warp is a paid mutator transaction binding the contract method 0xe5d6bf02. +// +// Solidity: function warp(uint256 newTimestamp) returns() +func (_Vm *VmTransactor) Warp(opts *bind.TransactOpts, newTimestamp *big.Int) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "warp", newTimestamp) +} + +// Warp is a paid mutator transaction binding the contract method 0xe5d6bf02. +// +// Solidity: function warp(uint256 newTimestamp) returns() +func (_Vm *VmSession) Warp(newTimestamp *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Warp(&_Vm.TransactOpts, newTimestamp) +} + +// Warp is a paid mutator transaction binding the contract method 0xe5d6bf02. +// +// Solidity: function warp(uint256 newTimestamp) returns() +func (_Vm *VmTransactorSession) Warp(newTimestamp *big.Int) (*types.Transaction, error) { + return _Vm.Contract.Warp(&_Vm.TransactOpts, newTimestamp) +} + +// WriteFile is a paid mutator transaction binding the contract method 0x897e0a97. +// +// Solidity: function writeFile(string path, string data) returns() +func (_Vm *VmTransactor) WriteFile(opts *bind.TransactOpts, path string, data string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "writeFile", path, data) +} + +// WriteFile is a paid mutator transaction binding the contract method 0x897e0a97. +// +// Solidity: function writeFile(string path, string data) returns() +func (_Vm *VmSession) WriteFile(path string, data string) (*types.Transaction, error) { + return _Vm.Contract.WriteFile(&_Vm.TransactOpts, path, data) +} + +// WriteFile is a paid mutator transaction binding the contract method 0x897e0a97. +// +// Solidity: function writeFile(string path, string data) returns() +func (_Vm *VmTransactorSession) WriteFile(path string, data string) (*types.Transaction, error) { + return _Vm.Contract.WriteFile(&_Vm.TransactOpts, path, data) +} + +// WriteFileBinary is a paid mutator transaction binding the contract method 0x1f21fc80. +// +// Solidity: function writeFileBinary(string path, bytes data) returns() +func (_Vm *VmTransactor) WriteFileBinary(opts *bind.TransactOpts, path string, data []byte) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "writeFileBinary", path, data) +} + +// WriteFileBinary is a paid mutator transaction binding the contract method 0x1f21fc80. +// +// Solidity: function writeFileBinary(string path, bytes data) returns() +func (_Vm *VmSession) WriteFileBinary(path string, data []byte) (*types.Transaction, error) { + return _Vm.Contract.WriteFileBinary(&_Vm.TransactOpts, path, data) +} + +// WriteFileBinary is a paid mutator transaction binding the contract method 0x1f21fc80. +// +// Solidity: function writeFileBinary(string path, bytes data) returns() +func (_Vm *VmTransactorSession) WriteFileBinary(path string, data []byte) (*types.Transaction, error) { + return _Vm.Contract.WriteFileBinary(&_Vm.TransactOpts, path, data) +} + +// WriteJson is a paid mutator transaction binding the contract method 0x35d6ad46. +// +// Solidity: function writeJson(string json, string path, string valueKey) returns() +func (_Vm *VmTransactor) WriteJson(opts *bind.TransactOpts, json string, path string, valueKey string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "writeJson", json, path, valueKey) +} + +// WriteJson is a paid mutator transaction binding the contract method 0x35d6ad46. +// +// Solidity: function writeJson(string json, string path, string valueKey) returns() +func (_Vm *VmSession) WriteJson(json string, path string, valueKey string) (*types.Transaction, error) { + return _Vm.Contract.WriteJson(&_Vm.TransactOpts, json, path, valueKey) +} + +// WriteJson is a paid mutator transaction binding the contract method 0x35d6ad46. +// +// Solidity: function writeJson(string json, string path, string valueKey) returns() +func (_Vm *VmTransactorSession) WriteJson(json string, path string, valueKey string) (*types.Transaction, error) { + return _Vm.Contract.WriteJson(&_Vm.TransactOpts, json, path, valueKey) +} + +// WriteJson0 is a paid mutator transaction binding the contract method 0xe23cd19f. +// +// Solidity: function writeJson(string json, string path) returns() +func (_Vm *VmTransactor) WriteJson0(opts *bind.TransactOpts, json string, path string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "writeJson0", json, path) +} + +// WriteJson0 is a paid mutator transaction binding the contract method 0xe23cd19f. +// +// Solidity: function writeJson(string json, string path) returns() +func (_Vm *VmSession) WriteJson0(json string, path string) (*types.Transaction, error) { + return _Vm.Contract.WriteJson0(&_Vm.TransactOpts, json, path) +} + +// WriteJson0 is a paid mutator transaction binding the contract method 0xe23cd19f. +// +// Solidity: function writeJson(string json, string path) returns() +func (_Vm *VmTransactorSession) WriteJson0(json string, path string) (*types.Transaction, error) { + return _Vm.Contract.WriteJson0(&_Vm.TransactOpts, json, path) +} + +// WriteLine is a paid mutator transaction binding the contract method 0x619d897f. +// +// Solidity: function writeLine(string path, string data) returns() +func (_Vm *VmTransactor) WriteLine(opts *bind.TransactOpts, path string, data string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "writeLine", path, data) +} + +// WriteLine is a paid mutator transaction binding the contract method 0x619d897f. +// +// Solidity: function writeLine(string path, string data) returns() +func (_Vm *VmSession) WriteLine(path string, data string) (*types.Transaction, error) { + return _Vm.Contract.WriteLine(&_Vm.TransactOpts, path, data) +} + +// WriteLine is a paid mutator transaction binding the contract method 0x619d897f. +// +// Solidity: function writeLine(string path, string data) returns() +func (_Vm *VmTransactorSession) WriteLine(path string, data string) (*types.Transaction, error) { + return _Vm.Contract.WriteLine(&_Vm.TransactOpts, path, data) +} + +// WriteToml is a paid mutator transaction binding the contract method 0x51ac6a33. +// +// Solidity: function writeToml(string json, string path, string valueKey) returns() +func (_Vm *VmTransactor) WriteToml(opts *bind.TransactOpts, json string, path string, valueKey string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "writeToml", json, path, valueKey) +} + +// WriteToml is a paid mutator transaction binding the contract method 0x51ac6a33. +// +// Solidity: function writeToml(string json, string path, string valueKey) returns() +func (_Vm *VmSession) WriteToml(json string, path string, valueKey string) (*types.Transaction, error) { + return _Vm.Contract.WriteToml(&_Vm.TransactOpts, json, path, valueKey) +} + +// WriteToml is a paid mutator transaction binding the contract method 0x51ac6a33. +// +// Solidity: function writeToml(string json, string path, string valueKey) returns() +func (_Vm *VmTransactorSession) WriteToml(json string, path string, valueKey string) (*types.Transaction, error) { + return _Vm.Contract.WriteToml(&_Vm.TransactOpts, json, path, valueKey) +} + +// WriteToml0 is a paid mutator transaction binding the contract method 0xc0865ba7. +// +// Solidity: function writeToml(string json, string path) returns() +func (_Vm *VmTransactor) WriteToml0(opts *bind.TransactOpts, json string, path string) (*types.Transaction, error) { + return _Vm.contract.Transact(opts, "writeToml0", json, path) +} + +// WriteToml0 is a paid mutator transaction binding the contract method 0xc0865ba7. +// +// Solidity: function writeToml(string json, string path) returns() +func (_Vm *VmSession) WriteToml0(json string, path string) (*types.Transaction, error) { + return _Vm.Contract.WriteToml0(&_Vm.TransactOpts, json, path) +} + +// WriteToml0 is a paid mutator transaction binding the contract method 0xc0865ba7. +// +// Solidity: function writeToml(string json, string path) returns() +func (_Vm *VmTransactorSession) WriteToml0(json string, path string) (*types.Transaction, error) { + return _Vm.Contract.WriteToml0(&_Vm.TransactOpts, json, path) +} diff --git a/v2/pkg/vm.sol/vmsafe.go b/v2/pkg/vm.sol/vmsafe.go new file mode 100644 index 00000000..80eb5739 --- /dev/null +++ b/v2/pkg/vm.sol/vmsafe.go @@ -0,0 +1,9344 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package vm + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// VmSafeAccountAccess is an auto generated low-level Go binding around an user-defined struct. +type VmSafeAccountAccess struct { + ChainInfo VmSafeChainInfo + Kind uint8 + Account common.Address + Accessor common.Address + Initialized bool + OldBalance *big.Int + NewBalance *big.Int + DeployedCode []byte + Value *big.Int + Data []byte + Reverted bool + StorageAccesses []VmSafeStorageAccess + Depth uint64 +} + +// VmSafeChainInfo is an auto generated low-level Go binding around an user-defined struct. +type VmSafeChainInfo struct { + ForkId *big.Int + ChainId *big.Int +} + +// VmSafeDirEntry is an auto generated low-level Go binding around an user-defined struct. +type VmSafeDirEntry struct { + ErrorMessage string + Path string + Depth uint64 + IsDir bool + IsSymlink bool +} + +// VmSafeEthGetLogs is an auto generated low-level Go binding around an user-defined struct. +type VmSafeEthGetLogs struct { + Emitter common.Address + Topics [][32]byte + Data []byte + BlockHash [32]byte + BlockNumber uint64 + TransactionHash [32]byte + TransactionIndex uint64 + LogIndex *big.Int + Removed bool +} + +// VmSafeFfiResult is an auto generated low-level Go binding around an user-defined struct. +type VmSafeFfiResult struct { + ExitCode int32 + Stdout []byte + Stderr []byte +} + +// VmSafeFsMetadata is an auto generated low-level Go binding around an user-defined struct. +type VmSafeFsMetadata struct { + IsDir bool + IsSymlink bool + Length *big.Int + ReadOnly bool + Modified *big.Int + Accessed *big.Int + Created *big.Int +} + +// VmSafeGas is an auto generated low-level Go binding around an user-defined struct. +type VmSafeGas struct { + GasLimit uint64 + GasTotalUsed uint64 + GasMemoryUsed uint64 + GasRefunded int64 + GasRemaining uint64 +} + +// VmSafeLog is an auto generated low-level Go binding around an user-defined struct. +type VmSafeLog struct { + Topics [][32]byte + Data []byte + Emitter common.Address +} + +// VmSafeRpc is an auto generated low-level Go binding around an user-defined struct. +type VmSafeRpc struct { + Key string + Url string +} + +// VmSafeStorageAccess is an auto generated low-level Go binding around an user-defined struct. +type VmSafeStorageAccess struct { + Account common.Address + Slot [32]byte + IsWrite bool + PreviousValue [32]byte + NewValue [32]byte + Reverted bool +} + +// VmSafeWallet is an auto generated low-level Go binding around an user-defined struct. +type VmSafeWallet struct { + Addr common.Address + PublicKeyX *big.Int + PublicKeyY *big.Int + PrivateKey *big.Int +} + +// VmSafeMetaData contains all meta data concerning the VmSafe contract. +var VmSafeMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"accesses\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"readSlots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"writeSlots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"addr\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"keyAddr\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbs\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbs\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbs\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbs\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbsDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbsDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbsDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqAbsDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRel\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRel\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRel\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRel\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRelDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRelDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRelDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertApproxEqRelDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"maxPercentDelta\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"right\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"right\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"right\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"right\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"right\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"right\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"right\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"right\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"right\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"right\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"right\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"right\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"right\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"right\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"right\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"right\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"right\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"right\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"right\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"right\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"right\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"right\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"right\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"right\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertFalse\",\"inputs\":[{\"name\":\"condition\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertFalse\",\"inputs\":[{\"name\":\"condition\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGe\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGe\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGe\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGe\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGt\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGt\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGt\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGt\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertGtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLe\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLe\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLe\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLe\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLeDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLt\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLt\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLt\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLt\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertLtDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"right\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"right\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"right\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"right\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"right\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"right\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"right\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"right\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"right\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"right\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"right\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"right\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"right\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"right\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"right\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"right\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"right\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"right\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"right\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"right\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"right\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"right\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"right\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"right\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEq\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"right\",\"type\":\"int256\",\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertNotEqDecimal\",\"inputs\":[{\"name\":\"left\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"right\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertTrue\",\"inputs\":[{\"name\":\"condition\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assertTrue\",\"inputs\":[{\"name\":\"condition\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"error\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"assume\",\"inputs\":[{\"name\":\"condition\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"breakpoint\",\"inputs\":[{\"name\":\"char\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"breakpoint\",\"inputs\":[{\"name\":\"char\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"broadcast\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"broadcast\",\"inputs\":[{\"name\":\"signer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"broadcast\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"closeFile\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"computeCreate2Address\",\"inputs\":[{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"initCodeHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"computeCreate2Address\",\"inputs\":[{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"initCodeHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"deployer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"computeCreateAddress\",\"inputs\":[{\"name\":\"deployer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"copyFile\",\"inputs\":[{\"name\":\"from\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"to\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"copied\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"recursive\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createWallet\",\"inputs\":[{\"name\":\"walletLabel\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"wallet\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Wallet\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"publicKeyX\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"publicKeyY\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createWallet\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"wallet\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Wallet\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"publicKeyX\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"publicKeyY\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createWallet\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"walletLabel\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"wallet\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Wallet\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"publicKeyX\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"publicKeyY\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deployCode\",\"inputs\":[{\"name\":\"artifactPath\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"constructorArgs\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"deployedAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deployCode\",\"inputs\":[{\"name\":\"artifactPath\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"deployedAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deriveKey\",\"inputs\":[{\"name\":\"mnemonic\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"derivationPath\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"index\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"language\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"deriveKey\",\"inputs\":[{\"name\":\"mnemonic\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"index\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"language\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"deriveKey\",\"inputs\":[{\"name\":\"mnemonic\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"index\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"deriveKey\",\"inputs\":[{\"name\":\"mnemonic\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"derivationPath\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"index\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"ensNamehash\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"envAddress\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envAddress\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBool\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBool\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBytes\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBytes\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBytes32\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envBytes32\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envExists\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envInt\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envInt\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envOr\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"defaultValue\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envString\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envString\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envUint\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"envUint\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delim\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eth_getLogs\",\"inputs\":[{\"name\":\"fromBlock\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"toBlock\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"topics\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"logs\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.EthGetLogs[]\",\"components\":[{\"name\":\"emitter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"topics\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"blockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"transactionHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"transactionIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"logIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"removed\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"exists\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ffi\",\"inputs\":[{\"name\":\"commandInput\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"fsMetadata\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"metadata\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.FsMetadata\",\"components\":[{\"name\":\"isDir\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"isSymlink\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"length\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"readOnly\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"modified\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"accessed\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"created\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlobBaseFee\",\"inputs\":[],\"outputs\":[{\"name\":\"blobBaseFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"height\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlockTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"timestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCode\",\"inputs\":[{\"name\":\"artifactPath\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"creationBytecode\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDeployedCode\",\"inputs\":[{\"name\":\"artifactPath\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"runtimeBytecode\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLabel\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"currentLabel\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMappingKeyAndParentOf\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"elementSlot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"found\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"key\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"parent\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getMappingLength\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"mappingSlot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"length\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getMappingSlotAt\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"mappingSlot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"idx\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getNonce\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"nonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNonce\",\"inputs\":[{\"name\":\"wallet\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Wallet\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"publicKeyX\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"publicKeyY\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"nonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getRecordedLogs\",\"inputs\":[],\"outputs\":[{\"name\":\"logs\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.Log[]\",\"components\":[{\"name\":\"topics\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"emitter\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"indexOf\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"isContext\",\"inputs\":[{\"name\":\"context\",\"type\":\"uint8\",\"internalType\":\"enumVmSafe.ForgeContext\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isFile\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"keyExists\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"keyExistsJson\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"keyExistsToml\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"label\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newLabel\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastCallGas\",\"inputs\":[],\"outputs\":[{\"name\":\"gas\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Gas\",\"components\":[{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasTotalUsed\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasMemoryUsed\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasRefunded\",\"type\":\"int64\",\"internalType\":\"int64\"},{\"name\":\"gasRemaining\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"load\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"slot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"parseAddress\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseBool\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseBytes\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseBytes32\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseInt\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJson\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"abiEncodedData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJson\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"abiEncodedData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonAddress\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonAddressArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBool\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBoolArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBytes\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBytes32\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBytes32Array\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonBytesArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonInt\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonIntArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonKeys\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"keys\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonString\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonStringArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonType\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"typeDescription\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonType\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"typeDescription\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonTypeArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"typeDescription\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonUint\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseJsonUintArray\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseToml\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"abiEncodedData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseToml\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"abiEncodedData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlAddress\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlAddressArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBool\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBoolArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBytes\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBytes32\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBytes32Array\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlBytesArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlInt\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlIntArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlKeys\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"keys\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlString\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlStringArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlUint\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseTomlUintArray\",\"inputs\":[{\"name\":\"toml\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"parseUint\",\"inputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"parsedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"pauseGasMetering\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"projectRoot\",\"inputs\":[],\"outputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"prompt\",\"inputs\":[{\"name\":\"promptText\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"promptAddress\",\"inputs\":[{\"name\":\"promptText\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"promptSecret\",\"inputs\":[{\"name\":\"promptText\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"promptSecretUint\",\"inputs\":[{\"name\":\"promptText\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"promptUint\",\"inputs\":[{\"name\":\"promptText\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"randomAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"randomUint\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"randomUint\",\"inputs\":[{\"name\":\"min\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"max\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"readDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"maxDepth\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"entries\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.DirEntry[]\",\"components\":[{\"name\":\"errorMessage\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"depth\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"isDir\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"isSymlink\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"maxDepth\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"followLinks\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[{\"name\":\"entries\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.DirEntry[]\",\"components\":[{\"name\":\"errorMessage\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"depth\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"isDir\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"isSymlink\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"entries\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.DirEntry[]\",\"components\":[{\"name\":\"errorMessage\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"depth\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"isDir\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"isSymlink\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readFile\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readFileBinary\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readLine\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"line\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readLink\",\"inputs\":[{\"name\":\"linkPath\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"targetPath\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"record\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"recordLogs\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rememberKey\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"keyAddr\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeDir\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"recursive\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeFile\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"replace\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"from\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"to\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"output\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"resumeGasMetering\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rpc\",\"inputs\":[{\"name\":\"urlOrAlias\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"method\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"params\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rpc\",\"inputs\":[{\"name\":\"method\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"params\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rpcUrl\",\"inputs\":[{\"name\":\"rpcAlias\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"rpcUrlStructs\",\"inputs\":[],\"outputs\":[{\"name\":\"urls\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.Rpc[]\",\"components\":[{\"name\":\"key\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"url\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"rpcUrls\",\"inputs\":[],\"outputs\":[{\"name\":\"urls\",\"type\":\"string[2][]\",\"internalType\":\"string[2][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"serializeAddress\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeAddress\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBool\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBool\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBytes\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBytes\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBytes32\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeBytes32\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeInt\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeInt\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"int256[]\",\"internalType\":\"int256[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeJson\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeJsonType\",\"inputs\":[{\"name\":\"typeDescription\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"serializeJsonType\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"typeDescription\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeString\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeString\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeUint\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeUint\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"values\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serializeUintToHex\",\"inputs\":[{\"name\":\"objectKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEnv\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"value\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sign\",\"inputs\":[{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"sign\",\"inputs\":[{\"name\":\"signer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"sign\",\"inputs\":[{\"name\":\"wallet\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.Wallet\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"publicKeyX\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"publicKeyY\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sign\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"signP256\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"sleep\",\"inputs\":[{\"name\":\"duration\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"split\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"delimiter\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"outputs\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"startBroadcast\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"startBroadcast\",\"inputs\":[{\"name\":\"signer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"startBroadcast\",\"inputs\":[{\"name\":\"privateKey\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"startMappingRecording\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"startStateDiffRecording\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stopAndReturnStateDiff\",\"inputs\":[],\"outputs\":[{\"name\":\"accountAccesses\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.AccountAccess[]\",\"components\":[{\"name\":\"chainInfo\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.ChainInfo\",\"components\":[{\"name\":\"forkId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"kind\",\"type\":\"uint8\",\"internalType\":\"enumVmSafe.AccountAccessKind\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"accessor\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialized\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"oldBalance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"newBalance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"deployedCode\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"reverted\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"storageAccesses\",\"type\":\"tuple[]\",\"internalType\":\"structVmSafe.StorageAccess[]\",\"components\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"slot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"isWrite\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"previousValue\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"newValue\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"reverted\",\"type\":\"bool\",\"internalType\":\"bool\"}]},{\"name\":\"depth\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stopBroadcast\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stopMappingRecording\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"toBase64\",\"inputs\":[{\"name\":\"data\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toBase64\",\"inputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toBase64URL\",\"inputs\":[{\"name\":\"data\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toBase64URL\",\"inputs\":[{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toLowercase\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"output\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toString\",\"inputs\":[{\"name\":\"value\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"stringifiedValue\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"toUppercase\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"output\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"trim\",\"inputs\":[{\"name\":\"input\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"output\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"tryFfi\",\"inputs\":[{\"name\":\"commandInput\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"tuple\",\"internalType\":\"structVmSafe.FfiResult\",\"components\":[{\"name\":\"exitCode\",\"type\":\"int32\",\"internalType\":\"int32\"},{\"name\":\"stdout\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"stderr\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unixTime\",\"inputs\":[],\"outputs\":[{\"name\":\"milliseconds\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeFile\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"data\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeFileBinary\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeJson\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeJson\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeLine\",\"inputs\":[{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"data\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeToml\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"valueKey\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"writeToml\",\"inputs\":[{\"name\":\"json\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"path\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", +} + +// VmSafeABI is the input ABI used to generate the binding from. +// Deprecated: Use VmSafeMetaData.ABI instead. +var VmSafeABI = VmSafeMetaData.ABI + +// VmSafe is an auto generated Go binding around an Ethereum contract. +type VmSafe struct { + VmSafeCaller // Read-only binding to the contract + VmSafeTransactor // Write-only binding to the contract + VmSafeFilterer // Log filterer for contract events +} + +// VmSafeCaller is an auto generated read-only Go binding around an Ethereum contract. +type VmSafeCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VmSafeTransactor is an auto generated write-only Go binding around an Ethereum contract. +type VmSafeTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VmSafeFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type VmSafeFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VmSafeSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type VmSafeSession struct { + Contract *VmSafe // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// VmSafeCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type VmSafeCallerSession struct { + Contract *VmSafeCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// VmSafeTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type VmSafeTransactorSession struct { + Contract *VmSafeTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// VmSafeRaw is an auto generated low-level Go binding around an Ethereum contract. +type VmSafeRaw struct { + Contract *VmSafe // Generic contract binding to access the raw methods on +} + +// VmSafeCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type VmSafeCallerRaw struct { + Contract *VmSafeCaller // Generic read-only contract binding to access the raw methods on +} + +// VmSafeTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type VmSafeTransactorRaw struct { + Contract *VmSafeTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewVmSafe creates a new instance of VmSafe, bound to a specific deployed contract. +func NewVmSafe(address common.Address, backend bind.ContractBackend) (*VmSafe, error) { + contract, err := bindVmSafe(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &VmSafe{VmSafeCaller: VmSafeCaller{contract: contract}, VmSafeTransactor: VmSafeTransactor{contract: contract}, VmSafeFilterer: VmSafeFilterer{contract: contract}}, nil +} + +// NewVmSafeCaller creates a new read-only instance of VmSafe, bound to a specific deployed contract. +func NewVmSafeCaller(address common.Address, caller bind.ContractCaller) (*VmSafeCaller, error) { + contract, err := bindVmSafe(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &VmSafeCaller{contract: contract}, nil +} + +// NewVmSafeTransactor creates a new write-only instance of VmSafe, bound to a specific deployed contract. +func NewVmSafeTransactor(address common.Address, transactor bind.ContractTransactor) (*VmSafeTransactor, error) { + contract, err := bindVmSafe(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &VmSafeTransactor{contract: contract}, nil +} + +// NewVmSafeFilterer creates a new log filterer instance of VmSafe, bound to a specific deployed contract. +func NewVmSafeFilterer(address common.Address, filterer bind.ContractFilterer) (*VmSafeFilterer, error) { + contract, err := bindVmSafe(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &VmSafeFilterer{contract: contract}, nil +} + +// bindVmSafe binds a generic wrapper to an already deployed contract. +func bindVmSafe(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := VmSafeMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_VmSafe *VmSafeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _VmSafe.Contract.VmSafeCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_VmSafe *VmSafeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.Contract.VmSafeTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_VmSafe *VmSafeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _VmSafe.Contract.VmSafeTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_VmSafe *VmSafeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _VmSafe.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_VmSafe *VmSafeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_VmSafe *VmSafeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _VmSafe.Contract.contract.Transact(opts, method, params...) +} + +// Addr is a free data retrieval call binding the contract method 0xffa18649. +// +// Solidity: function addr(uint256 privateKey) pure returns(address keyAddr) +func (_VmSafe *VmSafeCaller) Addr(opts *bind.CallOpts, privateKey *big.Int) (common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "addr", privateKey) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Addr is a free data retrieval call binding the contract method 0xffa18649. +// +// Solidity: function addr(uint256 privateKey) pure returns(address keyAddr) +func (_VmSafe *VmSafeSession) Addr(privateKey *big.Int) (common.Address, error) { + return _VmSafe.Contract.Addr(&_VmSafe.CallOpts, privateKey) +} + +// Addr is a free data retrieval call binding the contract method 0xffa18649. +// +// Solidity: function addr(uint256 privateKey) pure returns(address keyAddr) +func (_VmSafe *VmSafeCallerSession) Addr(privateKey *big.Int) (common.Address, error) { + return _VmSafe.Contract.Addr(&_VmSafe.CallOpts, privateKey) +} + +// AssertApproxEqAbs is a free data retrieval call binding the contract method 0x16d207c6. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqAbs(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqAbs", left, right, maxDelta) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbs is a free data retrieval call binding the contract method 0x16d207c6. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqAbs(left *big.Int, right *big.Int, maxDelta *big.Int) error { + return _VmSafe.Contract.AssertApproxEqAbs(&_VmSafe.CallOpts, left, right, maxDelta) +} + +// AssertApproxEqAbs is a free data retrieval call binding the contract method 0x16d207c6. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqAbs(left *big.Int, right *big.Int, maxDelta *big.Int) error { + return _VmSafe.Contract.AssertApproxEqAbs(&_VmSafe.CallOpts, left, right, maxDelta) +} + +// AssertApproxEqAbs0 is a free data retrieval call binding the contract method 0x240f839d. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqAbs0(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqAbs0", left, right, maxDelta) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbs0 is a free data retrieval call binding the contract method 0x240f839d. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqAbs0(left *big.Int, right *big.Int, maxDelta *big.Int) error { + return _VmSafe.Contract.AssertApproxEqAbs0(&_VmSafe.CallOpts, left, right, maxDelta) +} + +// AssertApproxEqAbs0 is a free data retrieval call binding the contract method 0x240f839d. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqAbs0(left *big.Int, right *big.Int, maxDelta *big.Int) error { + return _VmSafe.Contract.AssertApproxEqAbs0(&_VmSafe.CallOpts, left, right, maxDelta) +} + +// AssertApproxEqAbs1 is a free data retrieval call binding the contract method 0x8289e621. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqAbs1(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqAbs1", left, right, maxDelta, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbs1 is a free data retrieval call binding the contract method 0x8289e621. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqAbs1(left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqAbs1(&_VmSafe.CallOpts, left, right, maxDelta, error) +} + +// AssertApproxEqAbs1 is a free data retrieval call binding the contract method 0x8289e621. +// +// Solidity: function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqAbs1(left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqAbs1(&_VmSafe.CallOpts, left, right, maxDelta, error) +} + +// AssertApproxEqAbs2 is a free data retrieval call binding the contract method 0xf710b062. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqAbs2(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqAbs2", left, right, maxDelta, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbs2 is a free data retrieval call binding the contract method 0xf710b062. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqAbs2(left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqAbs2(&_VmSafe.CallOpts, left, right, maxDelta, error) +} + +// AssertApproxEqAbs2 is a free data retrieval call binding the contract method 0xf710b062. +// +// Solidity: function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqAbs2(left *big.Int, right *big.Int, maxDelta *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqAbs2(&_VmSafe.CallOpts, left, right, maxDelta, error) +} + +// AssertApproxEqAbsDecimal is a free data retrieval call binding the contract method 0x045c55ce. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqAbsDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqAbsDecimal", left, right, maxDelta, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbsDecimal is a free data retrieval call binding the contract method 0x045c55ce. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqAbsDecimal(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertApproxEqAbsDecimal(&_VmSafe.CallOpts, left, right, maxDelta, decimals) +} + +// AssertApproxEqAbsDecimal is a free data retrieval call binding the contract method 0x045c55ce. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqAbsDecimal(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertApproxEqAbsDecimal(&_VmSafe.CallOpts, left, right, maxDelta, decimals) +} + +// AssertApproxEqAbsDecimal0 is a free data retrieval call binding the contract method 0x3d5bc8bc. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqAbsDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqAbsDecimal0", left, right, maxDelta, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbsDecimal0 is a free data retrieval call binding the contract method 0x3d5bc8bc. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqAbsDecimal0(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertApproxEqAbsDecimal0(&_VmSafe.CallOpts, left, right, maxDelta, decimals) +} + +// AssertApproxEqAbsDecimal0 is a free data retrieval call binding the contract method 0x3d5bc8bc. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqAbsDecimal0(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertApproxEqAbsDecimal0(&_VmSafe.CallOpts, left, right, maxDelta, decimals) +} + +// AssertApproxEqAbsDecimal1 is a free data retrieval call binding the contract method 0x60429eb2. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqAbsDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqAbsDecimal1", left, right, maxDelta, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbsDecimal1 is a free data retrieval call binding the contract method 0x60429eb2. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqAbsDecimal1(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqAbsDecimal1(&_VmSafe.CallOpts, left, right, maxDelta, decimals, error) +} + +// AssertApproxEqAbsDecimal1 is a free data retrieval call binding the contract method 0x60429eb2. +// +// Solidity: function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqAbsDecimal1(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqAbsDecimal1(&_VmSafe.CallOpts, left, right, maxDelta, decimals, error) +} + +// AssertApproxEqAbsDecimal2 is a free data retrieval call binding the contract method 0x6a5066d4. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqAbsDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqAbsDecimal2", left, right, maxDelta, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqAbsDecimal2 is a free data retrieval call binding the contract method 0x6a5066d4. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqAbsDecimal2(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqAbsDecimal2(&_VmSafe.CallOpts, left, right, maxDelta, decimals, error) +} + +// AssertApproxEqAbsDecimal2 is a free data retrieval call binding the contract method 0x6a5066d4. +// +// Solidity: function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqAbsDecimal2(left *big.Int, right *big.Int, maxDelta *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqAbsDecimal2(&_VmSafe.CallOpts, left, right, maxDelta, decimals, error) +} + +// AssertApproxEqRel is a free data retrieval call binding the contract method 0x1ecb7d33. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqRel(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqRel", left, right, maxPercentDelta, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRel is a free data retrieval call binding the contract method 0x1ecb7d33. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqRel(left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqRel(&_VmSafe.CallOpts, left, right, maxPercentDelta, error) +} + +// AssertApproxEqRel is a free data retrieval call binding the contract method 0x1ecb7d33. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqRel(left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqRel(&_VmSafe.CallOpts, left, right, maxPercentDelta, error) +} + +// AssertApproxEqRel0 is a free data retrieval call binding the contract method 0x8cf25ef4. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqRel0(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqRel0", left, right, maxPercentDelta) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRel0 is a free data retrieval call binding the contract method 0x8cf25ef4. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqRel0(left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + return _VmSafe.Contract.AssertApproxEqRel0(&_VmSafe.CallOpts, left, right, maxPercentDelta) +} + +// AssertApproxEqRel0 is a free data retrieval call binding the contract method 0x8cf25ef4. +// +// Solidity: function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqRel0(left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + return _VmSafe.Contract.AssertApproxEqRel0(&_VmSafe.CallOpts, left, right, maxPercentDelta) +} + +// AssertApproxEqRel1 is a free data retrieval call binding the contract method 0xef277d72. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqRel1(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqRel1", left, right, maxPercentDelta, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRel1 is a free data retrieval call binding the contract method 0xef277d72. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqRel1(left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqRel1(&_VmSafe.CallOpts, left, right, maxPercentDelta, error) +} + +// AssertApproxEqRel1 is a free data retrieval call binding the contract method 0xef277d72. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqRel1(left *big.Int, right *big.Int, maxPercentDelta *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqRel1(&_VmSafe.CallOpts, left, right, maxPercentDelta, error) +} + +// AssertApproxEqRel2 is a free data retrieval call binding the contract method 0xfea2d14f. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqRel2(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqRel2", left, right, maxPercentDelta) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRel2 is a free data retrieval call binding the contract method 0xfea2d14f. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqRel2(left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + return _VmSafe.Contract.AssertApproxEqRel2(&_VmSafe.CallOpts, left, right, maxPercentDelta) +} + +// AssertApproxEqRel2 is a free data retrieval call binding the contract method 0xfea2d14f. +// +// Solidity: function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqRel2(left *big.Int, right *big.Int, maxPercentDelta *big.Int) error { + return _VmSafe.Contract.AssertApproxEqRel2(&_VmSafe.CallOpts, left, right, maxPercentDelta) +} + +// AssertApproxEqRelDecimal is a free data retrieval call binding the contract method 0x21ed2977. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqRelDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqRelDecimal", left, right, maxPercentDelta, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRelDecimal is a free data retrieval call binding the contract method 0x21ed2977. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqRelDecimal(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertApproxEqRelDecimal(&_VmSafe.CallOpts, left, right, maxPercentDelta, decimals) +} + +// AssertApproxEqRelDecimal is a free data retrieval call binding the contract method 0x21ed2977. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqRelDecimal(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertApproxEqRelDecimal(&_VmSafe.CallOpts, left, right, maxPercentDelta, decimals) +} + +// AssertApproxEqRelDecimal0 is a free data retrieval call binding the contract method 0x82d6c8fd. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqRelDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqRelDecimal0", left, right, maxPercentDelta, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRelDecimal0 is a free data retrieval call binding the contract method 0x82d6c8fd. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqRelDecimal0(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqRelDecimal0(&_VmSafe.CallOpts, left, right, maxPercentDelta, decimals, error) +} + +// AssertApproxEqRelDecimal0 is a free data retrieval call binding the contract method 0x82d6c8fd. +// +// Solidity: function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqRelDecimal0(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqRelDecimal0(&_VmSafe.CallOpts, left, right, maxPercentDelta, decimals, error) +} + +// AssertApproxEqRelDecimal1 is a free data retrieval call binding the contract method 0xabbf21cc. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqRelDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqRelDecimal1", left, right, maxPercentDelta, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRelDecimal1 is a free data retrieval call binding the contract method 0xabbf21cc. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqRelDecimal1(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertApproxEqRelDecimal1(&_VmSafe.CallOpts, left, right, maxPercentDelta, decimals) +} + +// AssertApproxEqRelDecimal1 is a free data retrieval call binding the contract method 0xabbf21cc. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqRelDecimal1(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertApproxEqRelDecimal1(&_VmSafe.CallOpts, left, right, maxPercentDelta, decimals) +} + +// AssertApproxEqRelDecimal2 is a free data retrieval call binding the contract method 0xfccc11c4. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertApproxEqRelDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertApproxEqRelDecimal2", left, right, maxPercentDelta, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertApproxEqRelDecimal2 is a free data retrieval call binding the contract method 0xfccc11c4. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertApproxEqRelDecimal2(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqRelDecimal2(&_VmSafe.CallOpts, left, right, maxPercentDelta, decimals, error) +} + +// AssertApproxEqRelDecimal2 is a free data retrieval call binding the contract method 0xfccc11c4. +// +// Solidity: function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertApproxEqRelDecimal2(left *big.Int, right *big.Int, maxPercentDelta *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertApproxEqRelDecimal2(&_VmSafe.CallOpts, left, right, maxPercentDelta, decimals, error) +} + +// AssertEq is a free data retrieval call binding the contract method 0x0cc9ee84. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq(opts *bind.CallOpts, left [][32]byte, right [][32]byte) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq is a free data retrieval call binding the contract method 0x0cc9ee84. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq(left [][32]byte, right [][32]byte) error { + return _VmSafe.Contract.AssertEq(&_VmSafe.CallOpts, left, right) +} + +// AssertEq is a free data retrieval call binding the contract method 0x0cc9ee84. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq(left [][32]byte, right [][32]byte) error { + return _VmSafe.Contract.AssertEq(&_VmSafe.CallOpts, left, right) +} + +// AssertEq0 is a free data retrieval call binding the contract method 0x191f1b30. +// +// Solidity: function assertEq(int256[] left, int256[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq0(opts *bind.CallOpts, left []*big.Int, right []*big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq0", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq0 is a free data retrieval call binding the contract method 0x191f1b30. +// +// Solidity: function assertEq(int256[] left, int256[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq0(left []*big.Int, right []*big.Int, error string) error { + return _VmSafe.Contract.AssertEq0(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq0 is a free data retrieval call binding the contract method 0x191f1b30. +// +// Solidity: function assertEq(int256[] left, int256[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq0(left []*big.Int, right []*big.Int, error string) error { + return _VmSafe.Contract.AssertEq0(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq1 is a free data retrieval call binding the contract method 0x2f2769d1. +// +// Solidity: function assertEq(address left, address right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq1(opts *bind.CallOpts, left common.Address, right common.Address, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq1", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq1 is a free data retrieval call binding the contract method 0x2f2769d1. +// +// Solidity: function assertEq(address left, address right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq1(left common.Address, right common.Address, error string) error { + return _VmSafe.Contract.AssertEq1(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq1 is a free data retrieval call binding the contract method 0x2f2769d1. +// +// Solidity: function assertEq(address left, address right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq1(left common.Address, right common.Address, error string) error { + return _VmSafe.Contract.AssertEq1(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq10 is a free data retrieval call binding the contract method 0x714a2f13. +// +// Solidity: function assertEq(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq10(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq10", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq10 is a free data retrieval call binding the contract method 0x714a2f13. +// +// Solidity: function assertEq(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq10(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertEq10(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq10 is a free data retrieval call binding the contract method 0x714a2f13. +// +// Solidity: function assertEq(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq10(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertEq10(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq11 is a free data retrieval call binding the contract method 0x7c84c69b. +// +// Solidity: function assertEq(bytes32 left, bytes32 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq11(opts *bind.CallOpts, left [32]byte, right [32]byte) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq11", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq11 is a free data retrieval call binding the contract method 0x7c84c69b. +// +// Solidity: function assertEq(bytes32 left, bytes32 right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq11(left [32]byte, right [32]byte) error { + return _VmSafe.Contract.AssertEq11(&_VmSafe.CallOpts, left, right) +} + +// AssertEq11 is a free data retrieval call binding the contract method 0x7c84c69b. +// +// Solidity: function assertEq(bytes32 left, bytes32 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq11(left [32]byte, right [32]byte) error { + return _VmSafe.Contract.AssertEq11(&_VmSafe.CallOpts, left, right) +} + +// AssertEq12 is a free data retrieval call binding the contract method 0x88b44c85. +// +// Solidity: function assertEq(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq12(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq12", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq12 is a free data retrieval call binding the contract method 0x88b44c85. +// +// Solidity: function assertEq(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq12(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertEq12(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq12 is a free data retrieval call binding the contract method 0x88b44c85. +// +// Solidity: function assertEq(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq12(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertEq12(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq13 is a free data retrieval call binding the contract method 0x975d5a12. +// +// Solidity: function assertEq(uint256[] left, uint256[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq13(opts *bind.CallOpts, left []*big.Int, right []*big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq13", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq13 is a free data retrieval call binding the contract method 0x975d5a12. +// +// Solidity: function assertEq(uint256[] left, uint256[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq13(left []*big.Int, right []*big.Int) error { + return _VmSafe.Contract.AssertEq13(&_VmSafe.CallOpts, left, right) +} + +// AssertEq13 is a free data retrieval call binding the contract method 0x975d5a12. +// +// Solidity: function assertEq(uint256[] left, uint256[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq13(left []*big.Int, right []*big.Int) error { + return _VmSafe.Contract.AssertEq13(&_VmSafe.CallOpts, left, right) +} + +// AssertEq14 is a free data retrieval call binding the contract method 0x97624631. +// +// Solidity: function assertEq(bytes left, bytes right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq14(opts *bind.CallOpts, left []byte, right []byte) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq14", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq14 is a free data retrieval call binding the contract method 0x97624631. +// +// Solidity: function assertEq(bytes left, bytes right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq14(left []byte, right []byte) error { + return _VmSafe.Contract.AssertEq14(&_VmSafe.CallOpts, left, right) +} + +// AssertEq14 is a free data retrieval call binding the contract method 0x97624631. +// +// Solidity: function assertEq(bytes left, bytes right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq14(left []byte, right []byte) error { + return _VmSafe.Contract.AssertEq14(&_VmSafe.CallOpts, left, right) +} + +// AssertEq15 is a free data retrieval call binding the contract method 0x98296c54. +// +// Solidity: function assertEq(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq15(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq15", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq15 is a free data retrieval call binding the contract method 0x98296c54. +// +// Solidity: function assertEq(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq15(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertEq15(&_VmSafe.CallOpts, left, right) +} + +// AssertEq15 is a free data retrieval call binding the contract method 0x98296c54. +// +// Solidity: function assertEq(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq15(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertEq15(&_VmSafe.CallOpts, left, right) +} + +// AssertEq16 is a free data retrieval call binding the contract method 0xc1fa1ed0. +// +// Solidity: function assertEq(bytes32 left, bytes32 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq16(opts *bind.CallOpts, left [32]byte, right [32]byte, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq16", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq16 is a free data retrieval call binding the contract method 0xc1fa1ed0. +// +// Solidity: function assertEq(bytes32 left, bytes32 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq16(left [32]byte, right [32]byte, error string) error { + return _VmSafe.Contract.AssertEq16(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq16 is a free data retrieval call binding the contract method 0xc1fa1ed0. +// +// Solidity: function assertEq(bytes32 left, bytes32 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq16(left [32]byte, right [32]byte, error string) error { + return _VmSafe.Contract.AssertEq16(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq17 is a free data retrieval call binding the contract method 0xcf1c049c. +// +// Solidity: function assertEq(string[] left, string[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq17(opts *bind.CallOpts, left []string, right []string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq17", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq17 is a free data retrieval call binding the contract method 0xcf1c049c. +// +// Solidity: function assertEq(string[] left, string[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq17(left []string, right []string) error { + return _VmSafe.Contract.AssertEq17(&_VmSafe.CallOpts, left, right) +} + +// AssertEq17 is a free data retrieval call binding the contract method 0xcf1c049c. +// +// Solidity: function assertEq(string[] left, string[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq17(left []string, right []string) error { + return _VmSafe.Contract.AssertEq17(&_VmSafe.CallOpts, left, right) +} + +// AssertEq18 is a free data retrieval call binding the contract method 0xe03e9177. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq18(opts *bind.CallOpts, left [][32]byte, right [][32]byte, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq18", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq18 is a free data retrieval call binding the contract method 0xe03e9177. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq18(left [][32]byte, right [][32]byte, error string) error { + return _VmSafe.Contract.AssertEq18(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq18 is a free data retrieval call binding the contract method 0xe03e9177. +// +// Solidity: function assertEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq18(left [][32]byte, right [][32]byte, error string) error { + return _VmSafe.Contract.AssertEq18(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq19 is a free data retrieval call binding the contract method 0xe24fed00. +// +// Solidity: function assertEq(bytes left, bytes right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq19(opts *bind.CallOpts, left []byte, right []byte, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq19", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq19 is a free data retrieval call binding the contract method 0xe24fed00. +// +// Solidity: function assertEq(bytes left, bytes right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq19(left []byte, right []byte, error string) error { + return _VmSafe.Contract.AssertEq19(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq19 is a free data retrieval call binding the contract method 0xe24fed00. +// +// Solidity: function assertEq(bytes left, bytes right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq19(left []byte, right []byte, error string) error { + return _VmSafe.Contract.AssertEq19(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq2 is a free data retrieval call binding the contract method 0x36f656d8. +// +// Solidity: function assertEq(string left, string right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq2(opts *bind.CallOpts, left string, right string, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq2", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq2 is a free data retrieval call binding the contract method 0x36f656d8. +// +// Solidity: function assertEq(string left, string right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq2(left string, right string, error string) error { + return _VmSafe.Contract.AssertEq2(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq2 is a free data retrieval call binding the contract method 0x36f656d8. +// +// Solidity: function assertEq(string left, string right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq2(left string, right string, error string) error { + return _VmSafe.Contract.AssertEq2(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq20 is a free data retrieval call binding the contract method 0xe48a8f8d. +// +// Solidity: function assertEq(bool[] left, bool[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq20(opts *bind.CallOpts, left []bool, right []bool, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq20", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq20 is a free data retrieval call binding the contract method 0xe48a8f8d. +// +// Solidity: function assertEq(bool[] left, bool[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq20(left []bool, right []bool, error string) error { + return _VmSafe.Contract.AssertEq20(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq20 is a free data retrieval call binding the contract method 0xe48a8f8d. +// +// Solidity: function assertEq(bool[] left, bool[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq20(left []bool, right []bool, error string) error { + return _VmSafe.Contract.AssertEq20(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq21 is a free data retrieval call binding the contract method 0xe5fb9b4a. +// +// Solidity: function assertEq(bytes[] left, bytes[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq21(opts *bind.CallOpts, left [][]byte, right [][]byte) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq21", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq21 is a free data retrieval call binding the contract method 0xe5fb9b4a. +// +// Solidity: function assertEq(bytes[] left, bytes[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq21(left [][]byte, right [][]byte) error { + return _VmSafe.Contract.AssertEq21(&_VmSafe.CallOpts, left, right) +} + +// AssertEq21 is a free data retrieval call binding the contract method 0xe5fb9b4a. +// +// Solidity: function assertEq(bytes[] left, bytes[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq21(left [][]byte, right [][]byte) error { + return _VmSafe.Contract.AssertEq21(&_VmSafe.CallOpts, left, right) +} + +// AssertEq22 is a free data retrieval call binding the contract method 0xeff6b27d. +// +// Solidity: function assertEq(string[] left, string[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq22(opts *bind.CallOpts, left []string, right []string, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq22", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq22 is a free data retrieval call binding the contract method 0xeff6b27d. +// +// Solidity: function assertEq(string[] left, string[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq22(left []string, right []string, error string) error { + return _VmSafe.Contract.AssertEq22(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq22 is a free data retrieval call binding the contract method 0xeff6b27d. +// +// Solidity: function assertEq(string[] left, string[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq22(left []string, right []string, error string) error { + return _VmSafe.Contract.AssertEq22(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq23 is a free data retrieval call binding the contract method 0xf320d963. +// +// Solidity: function assertEq(string left, string right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq23(opts *bind.CallOpts, left string, right string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq23", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq23 is a free data retrieval call binding the contract method 0xf320d963. +// +// Solidity: function assertEq(string left, string right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq23(left string, right string) error { + return _VmSafe.Contract.AssertEq23(&_VmSafe.CallOpts, left, right) +} + +// AssertEq23 is a free data retrieval call binding the contract method 0xf320d963. +// +// Solidity: function assertEq(string left, string right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq23(left string, right string) error { + return _VmSafe.Contract.AssertEq23(&_VmSafe.CallOpts, left, right) +} + +// AssertEq24 is a free data retrieval call binding the contract method 0xf413f0b6. +// +// Solidity: function assertEq(bytes[] left, bytes[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq24(opts *bind.CallOpts, left [][]byte, right [][]byte, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq24", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq24 is a free data retrieval call binding the contract method 0xf413f0b6. +// +// Solidity: function assertEq(bytes[] left, bytes[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq24(left [][]byte, right [][]byte, error string) error { + return _VmSafe.Contract.AssertEq24(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq24 is a free data retrieval call binding the contract method 0xf413f0b6. +// +// Solidity: function assertEq(bytes[] left, bytes[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq24(left [][]byte, right [][]byte, error string) error { + return _VmSafe.Contract.AssertEq24(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq25 is a free data retrieval call binding the contract method 0xf7fe3477. +// +// Solidity: function assertEq(bool left, bool right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq25(opts *bind.CallOpts, left bool, right bool) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq25", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq25 is a free data retrieval call binding the contract method 0xf7fe3477. +// +// Solidity: function assertEq(bool left, bool right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq25(left bool, right bool) error { + return _VmSafe.Contract.AssertEq25(&_VmSafe.CallOpts, left, right) +} + +// AssertEq25 is a free data retrieval call binding the contract method 0xf7fe3477. +// +// Solidity: function assertEq(bool left, bool right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq25(left bool, right bool) error { + return _VmSafe.Contract.AssertEq25(&_VmSafe.CallOpts, left, right) +} + +// AssertEq26 is a free data retrieval call binding the contract method 0xfe74f05b. +// +// Solidity: function assertEq(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq26(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq26", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq26 is a free data retrieval call binding the contract method 0xfe74f05b. +// +// Solidity: function assertEq(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq26(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertEq26(&_VmSafe.CallOpts, left, right) +} + +// AssertEq26 is a free data retrieval call binding the contract method 0xfe74f05b. +// +// Solidity: function assertEq(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq26(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertEq26(&_VmSafe.CallOpts, left, right) +} + +// AssertEq3 is a free data retrieval call binding the contract method 0x3868ac34. +// +// Solidity: function assertEq(address[] left, address[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq3(opts *bind.CallOpts, left []common.Address, right []common.Address) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq3", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq3 is a free data retrieval call binding the contract method 0x3868ac34. +// +// Solidity: function assertEq(address[] left, address[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq3(left []common.Address, right []common.Address) error { + return _VmSafe.Contract.AssertEq3(&_VmSafe.CallOpts, left, right) +} + +// AssertEq3 is a free data retrieval call binding the contract method 0x3868ac34. +// +// Solidity: function assertEq(address[] left, address[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq3(left []common.Address, right []common.Address) error { + return _VmSafe.Contract.AssertEq3(&_VmSafe.CallOpts, left, right) +} + +// AssertEq4 is a free data retrieval call binding the contract method 0x3e9173c5. +// +// Solidity: function assertEq(address[] left, address[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq4(opts *bind.CallOpts, left []common.Address, right []common.Address, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq4", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq4 is a free data retrieval call binding the contract method 0x3e9173c5. +// +// Solidity: function assertEq(address[] left, address[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq4(left []common.Address, right []common.Address, error string) error { + return _VmSafe.Contract.AssertEq4(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq4 is a free data retrieval call binding the contract method 0x3e9173c5. +// +// Solidity: function assertEq(address[] left, address[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq4(left []common.Address, right []common.Address, error string) error { + return _VmSafe.Contract.AssertEq4(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq5 is a free data retrieval call binding the contract method 0x4db19e7e. +// +// Solidity: function assertEq(bool left, bool right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq5(opts *bind.CallOpts, left bool, right bool, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq5", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq5 is a free data retrieval call binding the contract method 0x4db19e7e. +// +// Solidity: function assertEq(bool left, bool right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq5(left bool, right bool, error string) error { + return _VmSafe.Contract.AssertEq5(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq5 is a free data retrieval call binding the contract method 0x4db19e7e. +// +// Solidity: function assertEq(bool left, bool right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq5(left bool, right bool, error string) error { + return _VmSafe.Contract.AssertEq5(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq6 is a free data retrieval call binding the contract method 0x515361f6. +// +// Solidity: function assertEq(address left, address right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq6(opts *bind.CallOpts, left common.Address, right common.Address) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq6", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq6 is a free data retrieval call binding the contract method 0x515361f6. +// +// Solidity: function assertEq(address left, address right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq6(left common.Address, right common.Address) error { + return _VmSafe.Contract.AssertEq6(&_VmSafe.CallOpts, left, right) +} + +// AssertEq6 is a free data retrieval call binding the contract method 0x515361f6. +// +// Solidity: function assertEq(address left, address right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq6(left common.Address, right common.Address) error { + return _VmSafe.Contract.AssertEq6(&_VmSafe.CallOpts, left, right) +} + +// AssertEq7 is a free data retrieval call binding the contract method 0x5d18c73a. +// +// Solidity: function assertEq(uint256[] left, uint256[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq7(opts *bind.CallOpts, left []*big.Int, right []*big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq7", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEq7 is a free data retrieval call binding the contract method 0x5d18c73a. +// +// Solidity: function assertEq(uint256[] left, uint256[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEq7(left []*big.Int, right []*big.Int, error string) error { + return _VmSafe.Contract.AssertEq7(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq7 is a free data retrieval call binding the contract method 0x5d18c73a. +// +// Solidity: function assertEq(uint256[] left, uint256[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq7(left []*big.Int, right []*big.Int, error string) error { + return _VmSafe.Contract.AssertEq7(&_VmSafe.CallOpts, left, right, error) +} + +// AssertEq8 is a free data retrieval call binding the contract method 0x707df785. +// +// Solidity: function assertEq(bool[] left, bool[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq8(opts *bind.CallOpts, left []bool, right []bool) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq8", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq8 is a free data retrieval call binding the contract method 0x707df785. +// +// Solidity: function assertEq(bool[] left, bool[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq8(left []bool, right []bool) error { + return _VmSafe.Contract.AssertEq8(&_VmSafe.CallOpts, left, right) +} + +// AssertEq8 is a free data retrieval call binding the contract method 0x707df785. +// +// Solidity: function assertEq(bool[] left, bool[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq8(left []bool, right []bool) error { + return _VmSafe.Contract.AssertEq8(&_VmSafe.CallOpts, left, right) +} + +// AssertEq9 is a free data retrieval call binding the contract method 0x711043ac. +// +// Solidity: function assertEq(int256[] left, int256[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertEq9(opts *bind.CallOpts, left []*big.Int, right []*big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEq9", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertEq9 is a free data retrieval call binding the contract method 0x711043ac. +// +// Solidity: function assertEq(int256[] left, int256[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertEq9(left []*big.Int, right []*big.Int) error { + return _VmSafe.Contract.AssertEq9(&_VmSafe.CallOpts, left, right) +} + +// AssertEq9 is a free data retrieval call binding the contract method 0x711043ac. +// +// Solidity: function assertEq(int256[] left, int256[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEq9(left []*big.Int, right []*big.Int) error { + return _VmSafe.Contract.AssertEq9(&_VmSafe.CallOpts, left, right) +} + +// AssertEqDecimal is a free data retrieval call binding the contract method 0x27af7d9c. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertEqDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEqDecimal", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertEqDecimal is a free data retrieval call binding the contract method 0x27af7d9c. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertEqDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertEqDecimal(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertEqDecimal is a free data retrieval call binding the contract method 0x27af7d9c. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEqDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertEqDecimal(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertEqDecimal0 is a free data retrieval call binding the contract method 0x48016c04. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertEqDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEqDecimal0", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertEqDecimal0 is a free data retrieval call binding the contract method 0x48016c04. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertEqDecimal0(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertEqDecimal0(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertEqDecimal0 is a free data retrieval call binding the contract method 0x48016c04. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEqDecimal0(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertEqDecimal0(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertEqDecimal1 is a free data retrieval call binding the contract method 0x7e77b0c5. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEqDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEqDecimal1", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEqDecimal1 is a free data retrieval call binding the contract method 0x7e77b0c5. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEqDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertEqDecimal1(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertEqDecimal1 is a free data retrieval call binding the contract method 0x7e77b0c5. +// +// Solidity: function assertEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEqDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertEqDecimal1(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertEqDecimal2 is a free data retrieval call binding the contract method 0xd0cbbdef. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertEqDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertEqDecimal2", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertEqDecimal2 is a free data retrieval call binding the contract method 0xd0cbbdef. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertEqDecimal2(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertEqDecimal2(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertEqDecimal2 is a free data retrieval call binding the contract method 0xd0cbbdef. +// +// Solidity: function assertEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertEqDecimal2(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertEqDecimal2(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertFalse is a free data retrieval call binding the contract method 0x7ba04809. +// +// Solidity: function assertFalse(bool condition, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertFalse(opts *bind.CallOpts, condition bool, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertFalse", condition, error) + + if err != nil { + return err + } + + return err + +} + +// AssertFalse is a free data retrieval call binding the contract method 0x7ba04809. +// +// Solidity: function assertFalse(bool condition, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertFalse(condition bool, error string) error { + return _VmSafe.Contract.AssertFalse(&_VmSafe.CallOpts, condition, error) +} + +// AssertFalse is a free data retrieval call binding the contract method 0x7ba04809. +// +// Solidity: function assertFalse(bool condition, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertFalse(condition bool, error string) error { + return _VmSafe.Contract.AssertFalse(&_VmSafe.CallOpts, condition, error) +} + +// AssertFalse0 is a free data retrieval call binding the contract method 0xa5982885. +// +// Solidity: function assertFalse(bool condition) pure returns() +func (_VmSafe *VmSafeCaller) AssertFalse0(opts *bind.CallOpts, condition bool) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertFalse0", condition) + + if err != nil { + return err + } + + return err + +} + +// AssertFalse0 is a free data retrieval call binding the contract method 0xa5982885. +// +// Solidity: function assertFalse(bool condition) pure returns() +func (_VmSafe *VmSafeSession) AssertFalse0(condition bool) error { + return _VmSafe.Contract.AssertFalse0(&_VmSafe.CallOpts, condition) +} + +// AssertFalse0 is a free data retrieval call binding the contract method 0xa5982885. +// +// Solidity: function assertFalse(bool condition) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertFalse0(condition bool) error { + return _VmSafe.Contract.AssertFalse0(&_VmSafe.CallOpts, condition) +} + +// AssertGe is a free data retrieval call binding the contract method 0x0a30b771. +// +// Solidity: function assertGe(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertGe(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGe", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertGe is a free data retrieval call binding the contract method 0x0a30b771. +// +// Solidity: function assertGe(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertGe(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertGe(&_VmSafe.CallOpts, left, right) +} + +// AssertGe is a free data retrieval call binding the contract method 0x0a30b771. +// +// Solidity: function assertGe(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGe(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertGe(&_VmSafe.CallOpts, left, right) +} + +// AssertGe0 is a free data retrieval call binding the contract method 0xa84328dd. +// +// Solidity: function assertGe(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertGe0(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGe0", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGe0 is a free data retrieval call binding the contract method 0xa84328dd. +// +// Solidity: function assertGe(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertGe0(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertGe0(&_VmSafe.CallOpts, left, right, error) +} + +// AssertGe0 is a free data retrieval call binding the contract method 0xa84328dd. +// +// Solidity: function assertGe(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGe0(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertGe0(&_VmSafe.CallOpts, left, right, error) +} + +// AssertGe1 is a free data retrieval call binding the contract method 0xa8d4d1d9. +// +// Solidity: function assertGe(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertGe1(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGe1", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertGe1 is a free data retrieval call binding the contract method 0xa8d4d1d9. +// +// Solidity: function assertGe(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertGe1(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertGe1(&_VmSafe.CallOpts, left, right) +} + +// AssertGe1 is a free data retrieval call binding the contract method 0xa8d4d1d9. +// +// Solidity: function assertGe(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGe1(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertGe1(&_VmSafe.CallOpts, left, right) +} + +// AssertGe2 is a free data retrieval call binding the contract method 0xe25242c0. +// +// Solidity: function assertGe(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertGe2(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGe2", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGe2 is a free data retrieval call binding the contract method 0xe25242c0. +// +// Solidity: function assertGe(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertGe2(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertGe2(&_VmSafe.CallOpts, left, right, error) +} + +// AssertGe2 is a free data retrieval call binding the contract method 0xe25242c0. +// +// Solidity: function assertGe(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGe2(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertGe2(&_VmSafe.CallOpts, left, right, error) +} + +// AssertGeDecimal is a free data retrieval call binding the contract method 0x3d1fe08a. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertGeDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGeDecimal", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertGeDecimal is a free data retrieval call binding the contract method 0x3d1fe08a. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertGeDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertGeDecimal(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertGeDecimal is a free data retrieval call binding the contract method 0x3d1fe08a. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGeDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertGeDecimal(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertGeDecimal0 is a free data retrieval call binding the contract method 0x5df93c9b. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertGeDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGeDecimal0", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGeDecimal0 is a free data retrieval call binding the contract method 0x5df93c9b. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertGeDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertGeDecimal0(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertGeDecimal0 is a free data retrieval call binding the contract method 0x5df93c9b. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGeDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertGeDecimal0(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertGeDecimal1 is a free data retrieval call binding the contract method 0x8bff9133. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertGeDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGeDecimal1", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGeDecimal1 is a free data retrieval call binding the contract method 0x8bff9133. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertGeDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertGeDecimal1(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertGeDecimal1 is a free data retrieval call binding the contract method 0x8bff9133. +// +// Solidity: function assertGeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGeDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertGeDecimal1(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertGeDecimal2 is a free data retrieval call binding the contract method 0xdc28c0f1. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertGeDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGeDecimal2", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertGeDecimal2 is a free data retrieval call binding the contract method 0xdc28c0f1. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertGeDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertGeDecimal2(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertGeDecimal2 is a free data retrieval call binding the contract method 0xdc28c0f1. +// +// Solidity: function assertGeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGeDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertGeDecimal2(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertGt is a free data retrieval call binding the contract method 0x5a362d45. +// +// Solidity: function assertGt(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertGt(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGt", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertGt is a free data retrieval call binding the contract method 0x5a362d45. +// +// Solidity: function assertGt(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertGt(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertGt(&_VmSafe.CallOpts, left, right) +} + +// AssertGt is a free data retrieval call binding the contract method 0x5a362d45. +// +// Solidity: function assertGt(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGt(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertGt(&_VmSafe.CallOpts, left, right) +} + +// AssertGt0 is a free data retrieval call binding the contract method 0xd9a3c4d2. +// +// Solidity: function assertGt(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertGt0(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGt0", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGt0 is a free data retrieval call binding the contract method 0xd9a3c4d2. +// +// Solidity: function assertGt(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertGt0(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertGt0(&_VmSafe.CallOpts, left, right, error) +} + +// AssertGt0 is a free data retrieval call binding the contract method 0xd9a3c4d2. +// +// Solidity: function assertGt(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGt0(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertGt0(&_VmSafe.CallOpts, left, right, error) +} + +// AssertGt1 is a free data retrieval call binding the contract method 0xdb07fcd2. +// +// Solidity: function assertGt(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertGt1(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGt1", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertGt1 is a free data retrieval call binding the contract method 0xdb07fcd2. +// +// Solidity: function assertGt(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertGt1(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertGt1(&_VmSafe.CallOpts, left, right) +} + +// AssertGt1 is a free data retrieval call binding the contract method 0xdb07fcd2. +// +// Solidity: function assertGt(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGt1(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertGt1(&_VmSafe.CallOpts, left, right) +} + +// AssertGt2 is a free data retrieval call binding the contract method 0xf8d33b9b. +// +// Solidity: function assertGt(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertGt2(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGt2", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGt2 is a free data retrieval call binding the contract method 0xf8d33b9b. +// +// Solidity: function assertGt(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertGt2(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertGt2(&_VmSafe.CallOpts, left, right, error) +} + +// AssertGt2 is a free data retrieval call binding the contract method 0xf8d33b9b. +// +// Solidity: function assertGt(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGt2(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertGt2(&_VmSafe.CallOpts, left, right, error) +} + +// AssertGtDecimal is a free data retrieval call binding the contract method 0x04a5c7ab. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertGtDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGtDecimal", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGtDecimal is a free data retrieval call binding the contract method 0x04a5c7ab. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertGtDecimal(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertGtDecimal(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertGtDecimal is a free data retrieval call binding the contract method 0x04a5c7ab. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGtDecimal(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertGtDecimal(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertGtDecimal0 is a free data retrieval call binding the contract method 0x64949a8d. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertGtDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGtDecimal0", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertGtDecimal0 is a free data retrieval call binding the contract method 0x64949a8d. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertGtDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertGtDecimal0(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertGtDecimal0 is a free data retrieval call binding the contract method 0x64949a8d. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGtDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertGtDecimal0(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertGtDecimal1 is a free data retrieval call binding the contract method 0x78611f0e. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertGtDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGtDecimal1", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertGtDecimal1 is a free data retrieval call binding the contract method 0x78611f0e. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertGtDecimal1(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertGtDecimal1(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertGtDecimal1 is a free data retrieval call binding the contract method 0x78611f0e. +// +// Solidity: function assertGtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGtDecimal1(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertGtDecimal1(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertGtDecimal2 is a free data retrieval call binding the contract method 0xeccd2437. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertGtDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertGtDecimal2", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertGtDecimal2 is a free data retrieval call binding the contract method 0xeccd2437. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertGtDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertGtDecimal2(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertGtDecimal2 is a free data retrieval call binding the contract method 0xeccd2437. +// +// Solidity: function assertGtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertGtDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertGtDecimal2(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertLe is a free data retrieval call binding the contract method 0x4dfe692c. +// +// Solidity: function assertLe(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertLe(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLe", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLe is a free data retrieval call binding the contract method 0x4dfe692c. +// +// Solidity: function assertLe(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertLe(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertLe(&_VmSafe.CallOpts, left, right, error) +} + +// AssertLe is a free data retrieval call binding the contract method 0x4dfe692c. +// +// Solidity: function assertLe(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLe(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertLe(&_VmSafe.CallOpts, left, right, error) +} + +// AssertLe0 is a free data retrieval call binding the contract method 0x8466f415. +// +// Solidity: function assertLe(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertLe0(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLe0", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertLe0 is a free data retrieval call binding the contract method 0x8466f415. +// +// Solidity: function assertLe(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertLe0(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertLe0(&_VmSafe.CallOpts, left, right) +} + +// AssertLe0 is a free data retrieval call binding the contract method 0x8466f415. +// +// Solidity: function assertLe(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLe0(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertLe0(&_VmSafe.CallOpts, left, right) +} + +// AssertLe1 is a free data retrieval call binding the contract method 0x95fd154e. +// +// Solidity: function assertLe(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertLe1(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLe1", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertLe1 is a free data retrieval call binding the contract method 0x95fd154e. +// +// Solidity: function assertLe(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertLe1(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertLe1(&_VmSafe.CallOpts, left, right) +} + +// AssertLe1 is a free data retrieval call binding the contract method 0x95fd154e. +// +// Solidity: function assertLe(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLe1(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertLe1(&_VmSafe.CallOpts, left, right) +} + +// AssertLe2 is a free data retrieval call binding the contract method 0xd17d4b0d. +// +// Solidity: function assertLe(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertLe2(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLe2", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLe2 is a free data retrieval call binding the contract method 0xd17d4b0d. +// +// Solidity: function assertLe(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertLe2(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertLe2(&_VmSafe.CallOpts, left, right, error) +} + +// AssertLe2 is a free data retrieval call binding the contract method 0xd17d4b0d. +// +// Solidity: function assertLe(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLe2(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertLe2(&_VmSafe.CallOpts, left, right, error) +} + +// AssertLeDecimal is a free data retrieval call binding the contract method 0x11d1364a. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertLeDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLeDecimal", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertLeDecimal is a free data retrieval call binding the contract method 0x11d1364a. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertLeDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertLeDecimal(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertLeDecimal is a free data retrieval call binding the contract method 0x11d1364a. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLeDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertLeDecimal(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertLeDecimal0 is a free data retrieval call binding the contract method 0x7fefbbe0. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertLeDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLeDecimal0", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLeDecimal0 is a free data retrieval call binding the contract method 0x7fefbbe0. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertLeDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertLeDecimal0(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertLeDecimal0 is a free data retrieval call binding the contract method 0x7fefbbe0. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLeDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertLeDecimal0(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertLeDecimal1 is a free data retrieval call binding the contract method 0xaa5cf788. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertLeDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLeDecimal1", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLeDecimal1 is a free data retrieval call binding the contract method 0xaa5cf788. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertLeDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertLeDecimal1(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertLeDecimal1 is a free data retrieval call binding the contract method 0xaa5cf788. +// +// Solidity: function assertLeDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLeDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertLeDecimal1(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertLeDecimal2 is a free data retrieval call binding the contract method 0xc304aab7. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertLeDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLeDecimal2", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertLeDecimal2 is a free data retrieval call binding the contract method 0xc304aab7. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertLeDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertLeDecimal2(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertLeDecimal2 is a free data retrieval call binding the contract method 0xc304aab7. +// +// Solidity: function assertLeDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLeDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertLeDecimal2(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertLt is a free data retrieval call binding the contract method 0x3e914080. +// +// Solidity: function assertLt(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertLt(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLt", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertLt is a free data retrieval call binding the contract method 0x3e914080. +// +// Solidity: function assertLt(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertLt(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertLt(&_VmSafe.CallOpts, left, right) +} + +// AssertLt is a free data retrieval call binding the contract method 0x3e914080. +// +// Solidity: function assertLt(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLt(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertLt(&_VmSafe.CallOpts, left, right) +} + +// AssertLt0 is a free data retrieval call binding the contract method 0x65d5c135. +// +// Solidity: function assertLt(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertLt0(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLt0", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLt0 is a free data retrieval call binding the contract method 0x65d5c135. +// +// Solidity: function assertLt(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertLt0(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertLt0(&_VmSafe.CallOpts, left, right, error) +} + +// AssertLt0 is a free data retrieval call binding the contract method 0x65d5c135. +// +// Solidity: function assertLt(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLt0(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertLt0(&_VmSafe.CallOpts, left, right, error) +} + +// AssertLt1 is a free data retrieval call binding the contract method 0x9ff531e3. +// +// Solidity: function assertLt(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertLt1(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLt1", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLt1 is a free data retrieval call binding the contract method 0x9ff531e3. +// +// Solidity: function assertLt(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertLt1(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertLt1(&_VmSafe.CallOpts, left, right, error) +} + +// AssertLt1 is a free data retrieval call binding the contract method 0x9ff531e3. +// +// Solidity: function assertLt(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLt1(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertLt1(&_VmSafe.CallOpts, left, right, error) +} + +// AssertLt2 is a free data retrieval call binding the contract method 0xb12fc005. +// +// Solidity: function assertLt(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertLt2(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLt2", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertLt2 is a free data retrieval call binding the contract method 0xb12fc005. +// +// Solidity: function assertLt(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertLt2(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertLt2(&_VmSafe.CallOpts, left, right) +} + +// AssertLt2 is a free data retrieval call binding the contract method 0xb12fc005. +// +// Solidity: function assertLt(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLt2(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertLt2(&_VmSafe.CallOpts, left, right) +} + +// AssertLtDecimal is a free data retrieval call binding the contract method 0x2077337e. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertLtDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLtDecimal", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertLtDecimal is a free data retrieval call binding the contract method 0x2077337e. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertLtDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertLtDecimal(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertLtDecimal is a free data retrieval call binding the contract method 0x2077337e. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLtDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertLtDecimal(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertLtDecimal0 is a free data retrieval call binding the contract method 0x40f0b4e0. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertLtDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLtDecimal0", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLtDecimal0 is a free data retrieval call binding the contract method 0x40f0b4e0. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertLtDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertLtDecimal0(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertLtDecimal0 is a free data retrieval call binding the contract method 0x40f0b4e0. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLtDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertLtDecimal0(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertLtDecimal1 is a free data retrieval call binding the contract method 0xa972d037. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertLtDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLtDecimal1", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertLtDecimal1 is a free data retrieval call binding the contract method 0xa972d037. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertLtDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertLtDecimal1(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertLtDecimal1 is a free data retrieval call binding the contract method 0xa972d037. +// +// Solidity: function assertLtDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLtDecimal1(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertLtDecimal1(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertLtDecimal2 is a free data retrieval call binding the contract method 0xdbe8d88b. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertLtDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertLtDecimal2", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertLtDecimal2 is a free data retrieval call binding the contract method 0xdbe8d88b. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertLtDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertLtDecimal2(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertLtDecimal2 is a free data retrieval call binding the contract method 0xdbe8d88b. +// +// Solidity: function assertLtDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertLtDecimal2(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertLtDecimal2(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertNotEq is a free data retrieval call binding the contract method 0x0603ea68. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq(opts *bind.CallOpts, left [][32]byte, right [][32]byte) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq is a free data retrieval call binding the contract method 0x0603ea68. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq(left [][32]byte, right [][32]byte) error { + return _VmSafe.Contract.AssertNotEq(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq is a free data retrieval call binding the contract method 0x0603ea68. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq(left [][32]byte, right [][32]byte) error { + return _VmSafe.Contract.AssertNotEq(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq0 is a free data retrieval call binding the contract method 0x0b72f4ef. +// +// Solidity: function assertNotEq(int256[] left, int256[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq0(opts *bind.CallOpts, left []*big.Int, right []*big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq0", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq0 is a free data retrieval call binding the contract method 0x0b72f4ef. +// +// Solidity: function assertNotEq(int256[] left, int256[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq0(left []*big.Int, right []*big.Int) error { + return _VmSafe.Contract.AssertNotEq0(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq0 is a free data retrieval call binding the contract method 0x0b72f4ef. +// +// Solidity: function assertNotEq(int256[] left, int256[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq0(left []*big.Int, right []*big.Int) error { + return _VmSafe.Contract.AssertNotEq0(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq1 is a free data retrieval call binding the contract method 0x1091a261. +// +// Solidity: function assertNotEq(bool left, bool right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq1(opts *bind.CallOpts, left bool, right bool, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq1", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq1 is a free data retrieval call binding the contract method 0x1091a261. +// +// Solidity: function assertNotEq(bool left, bool right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq1(left bool, right bool, error string) error { + return _VmSafe.Contract.AssertNotEq1(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq1 is a free data retrieval call binding the contract method 0x1091a261. +// +// Solidity: function assertNotEq(bool left, bool right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq1(left bool, right bool, error string) error { + return _VmSafe.Contract.AssertNotEq1(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq10 is a free data retrieval call binding the contract method 0x6a8237b3. +// +// Solidity: function assertNotEq(string left, string right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq10(opts *bind.CallOpts, left string, right string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq10", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq10 is a free data retrieval call binding the contract method 0x6a8237b3. +// +// Solidity: function assertNotEq(string left, string right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq10(left string, right string) error { + return _VmSafe.Contract.AssertNotEq10(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq10 is a free data retrieval call binding the contract method 0x6a8237b3. +// +// Solidity: function assertNotEq(string left, string right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq10(left string, right string) error { + return _VmSafe.Contract.AssertNotEq10(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq11 is a free data retrieval call binding the contract method 0x72c7e0b5. +// +// Solidity: function assertNotEq(address[] left, address[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq11(opts *bind.CallOpts, left []common.Address, right []common.Address, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq11", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq11 is a free data retrieval call binding the contract method 0x72c7e0b5. +// +// Solidity: function assertNotEq(address[] left, address[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq11(left []common.Address, right []common.Address, error string) error { + return _VmSafe.Contract.AssertNotEq11(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq11 is a free data retrieval call binding the contract method 0x72c7e0b5. +// +// Solidity: function assertNotEq(address[] left, address[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq11(left []common.Address, right []common.Address, error string) error { + return _VmSafe.Contract.AssertNotEq11(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq12 is a free data retrieval call binding the contract method 0x78bdcea7. +// +// Solidity: function assertNotEq(string left, string right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq12(opts *bind.CallOpts, left string, right string, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq12", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq12 is a free data retrieval call binding the contract method 0x78bdcea7. +// +// Solidity: function assertNotEq(string left, string right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq12(left string, right string, error string) error { + return _VmSafe.Contract.AssertNotEq12(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq12 is a free data retrieval call binding the contract method 0x78bdcea7. +// +// Solidity: function assertNotEq(string left, string right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq12(left string, right string, error string) error { + return _VmSafe.Contract.AssertNotEq12(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq13 is a free data retrieval call binding the contract method 0x8775a591. +// +// Solidity: function assertNotEq(address left, address right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq13(opts *bind.CallOpts, left common.Address, right common.Address, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq13", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq13 is a free data retrieval call binding the contract method 0x8775a591. +// +// Solidity: function assertNotEq(address left, address right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq13(left common.Address, right common.Address, error string) error { + return _VmSafe.Contract.AssertNotEq13(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq13 is a free data retrieval call binding the contract method 0x8775a591. +// +// Solidity: function assertNotEq(address left, address right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq13(left common.Address, right common.Address, error string) error { + return _VmSafe.Contract.AssertNotEq13(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq14 is a free data retrieval call binding the contract method 0x898e83fc. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq14(opts *bind.CallOpts, left [32]byte, right [32]byte) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq14", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq14 is a free data retrieval call binding the contract method 0x898e83fc. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq14(left [32]byte, right [32]byte) error { + return _VmSafe.Contract.AssertNotEq14(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq14 is a free data retrieval call binding the contract method 0x898e83fc. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq14(left [32]byte, right [32]byte) error { + return _VmSafe.Contract.AssertNotEq14(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq15 is a free data retrieval call binding the contract method 0x9507540e. +// +// Solidity: function assertNotEq(bytes left, bytes right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq15(opts *bind.CallOpts, left []byte, right []byte, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq15", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq15 is a free data retrieval call binding the contract method 0x9507540e. +// +// Solidity: function assertNotEq(bytes left, bytes right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq15(left []byte, right []byte, error string) error { + return _VmSafe.Contract.AssertNotEq15(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq15 is a free data retrieval call binding the contract method 0x9507540e. +// +// Solidity: function assertNotEq(bytes left, bytes right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq15(left []byte, right []byte, error string) error { + return _VmSafe.Contract.AssertNotEq15(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq16 is a free data retrieval call binding the contract method 0x98f9bdbd. +// +// Solidity: function assertNotEq(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq16(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq16", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq16 is a free data retrieval call binding the contract method 0x98f9bdbd. +// +// Solidity: function assertNotEq(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq16(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertNotEq16(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq16 is a free data retrieval call binding the contract method 0x98f9bdbd. +// +// Solidity: function assertNotEq(uint256 left, uint256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq16(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertNotEq16(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq17 is a free data retrieval call binding the contract method 0x9a7fbd8f. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq17(opts *bind.CallOpts, left []*big.Int, right []*big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq17", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq17 is a free data retrieval call binding the contract method 0x9a7fbd8f. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq17(left []*big.Int, right []*big.Int, error string) error { + return _VmSafe.Contract.AssertNotEq17(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq17 is a free data retrieval call binding the contract method 0x9a7fbd8f. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq17(left []*big.Int, right []*big.Int, error string) error { + return _VmSafe.Contract.AssertNotEq17(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq18 is a free data retrieval call binding the contract method 0xb12e1694. +// +// Solidity: function assertNotEq(address left, address right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq18(opts *bind.CallOpts, left common.Address, right common.Address) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq18", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq18 is a free data retrieval call binding the contract method 0xb12e1694. +// +// Solidity: function assertNotEq(address left, address right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq18(left common.Address, right common.Address) error { + return _VmSafe.Contract.AssertNotEq18(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq18 is a free data retrieval call binding the contract method 0xb12e1694. +// +// Solidity: function assertNotEq(address left, address right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq18(left common.Address, right common.Address) error { + return _VmSafe.Contract.AssertNotEq18(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq19 is a free data retrieval call binding the contract method 0xb2332f51. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq19(opts *bind.CallOpts, left [32]byte, right [32]byte, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq19", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq19 is a free data retrieval call binding the contract method 0xb2332f51. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq19(left [32]byte, right [32]byte, error string) error { + return _VmSafe.Contract.AssertNotEq19(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq19 is a free data retrieval call binding the contract method 0xb2332f51. +// +// Solidity: function assertNotEq(bytes32 left, bytes32 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq19(left [32]byte, right [32]byte, error string) error { + return _VmSafe.Contract.AssertNotEq19(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq2 is a free data retrieval call binding the contract method 0x1dcd1f68. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq2(opts *bind.CallOpts, left [][]byte, right [][]byte, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq2", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq2 is a free data retrieval call binding the contract method 0x1dcd1f68. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq2(left [][]byte, right [][]byte, error string) error { + return _VmSafe.Contract.AssertNotEq2(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq2 is a free data retrieval call binding the contract method 0x1dcd1f68. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq2(left [][]byte, right [][]byte, error string) error { + return _VmSafe.Contract.AssertNotEq2(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq20 is a free data retrieval call binding the contract method 0xb67187f3. +// +// Solidity: function assertNotEq(string[] left, string[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq20(opts *bind.CallOpts, left []string, right []string, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq20", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq20 is a free data retrieval call binding the contract method 0xb67187f3. +// +// Solidity: function assertNotEq(string[] left, string[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq20(left []string, right []string, error string) error { + return _VmSafe.Contract.AssertNotEq20(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq20 is a free data retrieval call binding the contract method 0xb67187f3. +// +// Solidity: function assertNotEq(string[] left, string[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq20(left []string, right []string, error string) error { + return _VmSafe.Contract.AssertNotEq20(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq21 is a free data retrieval call binding the contract method 0xb7909320. +// +// Solidity: function assertNotEq(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq21(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq21", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq21 is a free data retrieval call binding the contract method 0xb7909320. +// +// Solidity: function assertNotEq(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq21(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertNotEq21(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq21 is a free data retrieval call binding the contract method 0xb7909320. +// +// Solidity: function assertNotEq(uint256 left, uint256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq21(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertNotEq21(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq22 is a free data retrieval call binding the contract method 0xb873634c. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq22(opts *bind.CallOpts, left [][32]byte, right [][32]byte, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq22", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq22 is a free data retrieval call binding the contract method 0xb873634c. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq22(left [][32]byte, right [][32]byte, error string) error { + return _VmSafe.Contract.AssertNotEq22(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq22 is a free data retrieval call binding the contract method 0xb873634c. +// +// Solidity: function assertNotEq(bytes32[] left, bytes32[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq22(left [][32]byte, right [][32]byte, error string) error { + return _VmSafe.Contract.AssertNotEq22(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq23 is a free data retrieval call binding the contract method 0xbdfacbe8. +// +// Solidity: function assertNotEq(string[] left, string[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq23(opts *bind.CallOpts, left []string, right []string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq23", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq23 is a free data retrieval call binding the contract method 0xbdfacbe8. +// +// Solidity: function assertNotEq(string[] left, string[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq23(left []string, right []string) error { + return _VmSafe.Contract.AssertNotEq23(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq23 is a free data retrieval call binding the contract method 0xbdfacbe8. +// +// Solidity: function assertNotEq(string[] left, string[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq23(left []string, right []string) error { + return _VmSafe.Contract.AssertNotEq23(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq24 is a free data retrieval call binding the contract method 0xd3977322. +// +// Solidity: function assertNotEq(int256[] left, int256[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq24(opts *bind.CallOpts, left []*big.Int, right []*big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq24", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq24 is a free data retrieval call binding the contract method 0xd3977322. +// +// Solidity: function assertNotEq(int256[] left, int256[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq24(left []*big.Int, right []*big.Int, error string) error { + return _VmSafe.Contract.AssertNotEq24(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq24 is a free data retrieval call binding the contract method 0xd3977322. +// +// Solidity: function assertNotEq(int256[] left, int256[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq24(left []*big.Int, right []*big.Int, error string) error { + return _VmSafe.Contract.AssertNotEq24(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq25 is a free data retrieval call binding the contract method 0xedecd035. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq25(opts *bind.CallOpts, left [][]byte, right [][]byte) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq25", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq25 is a free data retrieval call binding the contract method 0xedecd035. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq25(left [][]byte, right [][]byte) error { + return _VmSafe.Contract.AssertNotEq25(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq25 is a free data retrieval call binding the contract method 0xedecd035. +// +// Solidity: function assertNotEq(bytes[] left, bytes[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq25(left [][]byte, right [][]byte) error { + return _VmSafe.Contract.AssertNotEq25(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq26 is a free data retrieval call binding the contract method 0xf4c004e3. +// +// Solidity: function assertNotEq(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq26(opts *bind.CallOpts, left *big.Int, right *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq26", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq26 is a free data retrieval call binding the contract method 0xf4c004e3. +// +// Solidity: function assertNotEq(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq26(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertNotEq26(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq26 is a free data retrieval call binding the contract method 0xf4c004e3. +// +// Solidity: function assertNotEq(int256 left, int256 right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq26(left *big.Int, right *big.Int) error { + return _VmSafe.Contract.AssertNotEq26(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq3 is a free data retrieval call binding the contract method 0x236e4d66. +// +// Solidity: function assertNotEq(bool left, bool right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq3(opts *bind.CallOpts, left bool, right bool) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq3", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq3 is a free data retrieval call binding the contract method 0x236e4d66. +// +// Solidity: function assertNotEq(bool left, bool right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq3(left bool, right bool) error { + return _VmSafe.Contract.AssertNotEq3(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq3 is a free data retrieval call binding the contract method 0x236e4d66. +// +// Solidity: function assertNotEq(bool left, bool right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq3(left bool, right bool) error { + return _VmSafe.Contract.AssertNotEq3(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq4 is a free data retrieval call binding the contract method 0x286fafea. +// +// Solidity: function assertNotEq(bool[] left, bool[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq4(opts *bind.CallOpts, left []bool, right []bool) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq4", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq4 is a free data retrieval call binding the contract method 0x286fafea. +// +// Solidity: function assertNotEq(bool[] left, bool[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq4(left []bool, right []bool) error { + return _VmSafe.Contract.AssertNotEq4(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq4 is a free data retrieval call binding the contract method 0x286fafea. +// +// Solidity: function assertNotEq(bool[] left, bool[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq4(left []bool, right []bool) error { + return _VmSafe.Contract.AssertNotEq4(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq5 is a free data retrieval call binding the contract method 0x3cf78e28. +// +// Solidity: function assertNotEq(bytes left, bytes right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq5(opts *bind.CallOpts, left []byte, right []byte) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq5", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq5 is a free data retrieval call binding the contract method 0x3cf78e28. +// +// Solidity: function assertNotEq(bytes left, bytes right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq5(left []byte, right []byte) error { + return _VmSafe.Contract.AssertNotEq5(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq5 is a free data retrieval call binding the contract method 0x3cf78e28. +// +// Solidity: function assertNotEq(bytes left, bytes right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq5(left []byte, right []byte) error { + return _VmSafe.Contract.AssertNotEq5(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq6 is a free data retrieval call binding the contract method 0x46d0b252. +// +// Solidity: function assertNotEq(address[] left, address[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq6(opts *bind.CallOpts, left []common.Address, right []common.Address) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq6", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq6 is a free data retrieval call binding the contract method 0x46d0b252. +// +// Solidity: function assertNotEq(address[] left, address[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq6(left []common.Address, right []common.Address) error { + return _VmSafe.Contract.AssertNotEq6(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq6 is a free data retrieval call binding the contract method 0x46d0b252. +// +// Solidity: function assertNotEq(address[] left, address[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq6(left []common.Address, right []common.Address) error { + return _VmSafe.Contract.AssertNotEq6(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq7 is a free data retrieval call binding the contract method 0x4724c5b9. +// +// Solidity: function assertNotEq(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq7(opts *bind.CallOpts, left *big.Int, right *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq7", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq7 is a free data retrieval call binding the contract method 0x4724c5b9. +// +// Solidity: function assertNotEq(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq7(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertNotEq7(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq7 is a free data retrieval call binding the contract method 0x4724c5b9. +// +// Solidity: function assertNotEq(int256 left, int256 right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq7(left *big.Int, right *big.Int, error string) error { + return _VmSafe.Contract.AssertNotEq7(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq8 is a free data retrieval call binding the contract method 0x56f29cba. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq8(opts *bind.CallOpts, left []*big.Int, right []*big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq8", left, right) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq8 is a free data retrieval call binding the contract method 0x56f29cba. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq8(left []*big.Int, right []*big.Int) error { + return _VmSafe.Contract.AssertNotEq8(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq8 is a free data retrieval call binding the contract method 0x56f29cba. +// +// Solidity: function assertNotEq(uint256[] left, uint256[] right) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq8(left []*big.Int, right []*big.Int) error { + return _VmSafe.Contract.AssertNotEq8(&_VmSafe.CallOpts, left, right) +} + +// AssertNotEq9 is a free data retrieval call binding the contract method 0x62c6f9fb. +// +// Solidity: function assertNotEq(bool[] left, bool[] right, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEq9(opts *bind.CallOpts, left []bool, right []bool, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEq9", left, right, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEq9 is a free data retrieval call binding the contract method 0x62c6f9fb. +// +// Solidity: function assertNotEq(bool[] left, bool[] right, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEq9(left []bool, right []bool, error string) error { + return _VmSafe.Contract.AssertNotEq9(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEq9 is a free data retrieval call binding the contract method 0x62c6f9fb. +// +// Solidity: function assertNotEq(bool[] left, bool[] right, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEq9(left []bool, right []bool, error string) error { + return _VmSafe.Contract.AssertNotEq9(&_VmSafe.CallOpts, left, right, error) +} + +// AssertNotEqDecimal is a free data retrieval call binding the contract method 0x14e75680. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEqDecimal(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEqDecimal", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEqDecimal is a free data retrieval call binding the contract method 0x14e75680. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEqDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertNotEqDecimal(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertNotEqDecimal is a free data retrieval call binding the contract method 0x14e75680. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEqDecimal(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertNotEqDecimal(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertNotEqDecimal0 is a free data retrieval call binding the contract method 0x33949f0b. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEqDecimal0(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEqDecimal0", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEqDecimal0 is a free data retrieval call binding the contract method 0x33949f0b. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEqDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertNotEqDecimal0(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertNotEqDecimal0 is a free data retrieval call binding the contract method 0x33949f0b. +// +// Solidity: function assertNotEqDecimal(int256 left, int256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEqDecimal0(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertNotEqDecimal0(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertNotEqDecimal1 is a free data retrieval call binding the contract method 0x669efca7. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEqDecimal1(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEqDecimal1", left, right, decimals) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEqDecimal1 is a free data retrieval call binding the contract method 0x669efca7. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEqDecimal1(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertNotEqDecimal1(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertNotEqDecimal1 is a free data retrieval call binding the contract method 0x669efca7. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEqDecimal1(left *big.Int, right *big.Int, decimals *big.Int) error { + return _VmSafe.Contract.AssertNotEqDecimal1(&_VmSafe.CallOpts, left, right, decimals) +} + +// AssertNotEqDecimal2 is a free data retrieval call binding the contract method 0xf5a55558. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertNotEqDecimal2(opts *bind.CallOpts, left *big.Int, right *big.Int, decimals *big.Int, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertNotEqDecimal2", left, right, decimals, error) + + if err != nil { + return err + } + + return err + +} + +// AssertNotEqDecimal2 is a free data retrieval call binding the contract method 0xf5a55558. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertNotEqDecimal2(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertNotEqDecimal2(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertNotEqDecimal2 is a free data retrieval call binding the contract method 0xf5a55558. +// +// Solidity: function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertNotEqDecimal2(left *big.Int, right *big.Int, decimals *big.Int, error string) error { + return _VmSafe.Contract.AssertNotEqDecimal2(&_VmSafe.CallOpts, left, right, decimals, error) +} + +// AssertTrue is a free data retrieval call binding the contract method 0x0c9fd581. +// +// Solidity: function assertTrue(bool condition) pure returns() +func (_VmSafe *VmSafeCaller) AssertTrue(opts *bind.CallOpts, condition bool) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertTrue", condition) + + if err != nil { + return err + } + + return err + +} + +// AssertTrue is a free data retrieval call binding the contract method 0x0c9fd581. +// +// Solidity: function assertTrue(bool condition) pure returns() +func (_VmSafe *VmSafeSession) AssertTrue(condition bool) error { + return _VmSafe.Contract.AssertTrue(&_VmSafe.CallOpts, condition) +} + +// AssertTrue is a free data retrieval call binding the contract method 0x0c9fd581. +// +// Solidity: function assertTrue(bool condition) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertTrue(condition bool) error { + return _VmSafe.Contract.AssertTrue(&_VmSafe.CallOpts, condition) +} + +// AssertTrue0 is a free data retrieval call binding the contract method 0xa34edc03. +// +// Solidity: function assertTrue(bool condition, string error) pure returns() +func (_VmSafe *VmSafeCaller) AssertTrue0(opts *bind.CallOpts, condition bool, error string) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assertTrue0", condition, error) + + if err != nil { + return err + } + + return err + +} + +// AssertTrue0 is a free data retrieval call binding the contract method 0xa34edc03. +// +// Solidity: function assertTrue(bool condition, string error) pure returns() +func (_VmSafe *VmSafeSession) AssertTrue0(condition bool, error string) error { + return _VmSafe.Contract.AssertTrue0(&_VmSafe.CallOpts, condition, error) +} + +// AssertTrue0 is a free data retrieval call binding the contract method 0xa34edc03. +// +// Solidity: function assertTrue(bool condition, string error) pure returns() +func (_VmSafe *VmSafeCallerSession) AssertTrue0(condition bool, error string) error { + return _VmSafe.Contract.AssertTrue0(&_VmSafe.CallOpts, condition, error) +} + +// Assume is a free data retrieval call binding the contract method 0x4c63e562. +// +// Solidity: function assume(bool condition) pure returns() +func (_VmSafe *VmSafeCaller) Assume(opts *bind.CallOpts, condition bool) error { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "assume", condition) + + if err != nil { + return err + } + + return err + +} + +// Assume is a free data retrieval call binding the contract method 0x4c63e562. +// +// Solidity: function assume(bool condition) pure returns() +func (_VmSafe *VmSafeSession) Assume(condition bool) error { + return _VmSafe.Contract.Assume(&_VmSafe.CallOpts, condition) +} + +// Assume is a free data retrieval call binding the contract method 0x4c63e562. +// +// Solidity: function assume(bool condition) pure returns() +func (_VmSafe *VmSafeCallerSession) Assume(condition bool) error { + return _VmSafe.Contract.Assume(&_VmSafe.CallOpts, condition) +} + +// ComputeCreate2Address is a free data retrieval call binding the contract method 0x890c283b. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash) pure returns(address) +func (_VmSafe *VmSafeCaller) ComputeCreate2Address(opts *bind.CallOpts, salt [32]byte, initCodeHash [32]byte) (common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "computeCreate2Address", salt, initCodeHash) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ComputeCreate2Address is a free data retrieval call binding the contract method 0x890c283b. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash) pure returns(address) +func (_VmSafe *VmSafeSession) ComputeCreate2Address(salt [32]byte, initCodeHash [32]byte) (common.Address, error) { + return _VmSafe.Contract.ComputeCreate2Address(&_VmSafe.CallOpts, salt, initCodeHash) +} + +// ComputeCreate2Address is a free data retrieval call binding the contract method 0x890c283b. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash) pure returns(address) +func (_VmSafe *VmSafeCallerSession) ComputeCreate2Address(salt [32]byte, initCodeHash [32]byte) (common.Address, error) { + return _VmSafe.Contract.ComputeCreate2Address(&_VmSafe.CallOpts, salt, initCodeHash) +} + +// ComputeCreate2Address0 is a free data retrieval call binding the contract method 0xd323826a. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash, address deployer) pure returns(address) +func (_VmSafe *VmSafeCaller) ComputeCreate2Address0(opts *bind.CallOpts, salt [32]byte, initCodeHash [32]byte, deployer common.Address) (common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "computeCreate2Address0", salt, initCodeHash, deployer) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ComputeCreate2Address0 is a free data retrieval call binding the contract method 0xd323826a. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash, address deployer) pure returns(address) +func (_VmSafe *VmSafeSession) ComputeCreate2Address0(salt [32]byte, initCodeHash [32]byte, deployer common.Address) (common.Address, error) { + return _VmSafe.Contract.ComputeCreate2Address0(&_VmSafe.CallOpts, salt, initCodeHash, deployer) +} + +// ComputeCreate2Address0 is a free data retrieval call binding the contract method 0xd323826a. +// +// Solidity: function computeCreate2Address(bytes32 salt, bytes32 initCodeHash, address deployer) pure returns(address) +func (_VmSafe *VmSafeCallerSession) ComputeCreate2Address0(salt [32]byte, initCodeHash [32]byte, deployer common.Address) (common.Address, error) { + return _VmSafe.Contract.ComputeCreate2Address0(&_VmSafe.CallOpts, salt, initCodeHash, deployer) +} + +// ComputeCreateAddress is a free data retrieval call binding the contract method 0x74637a7a. +// +// Solidity: function computeCreateAddress(address deployer, uint256 nonce) pure returns(address) +func (_VmSafe *VmSafeCaller) ComputeCreateAddress(opts *bind.CallOpts, deployer common.Address, nonce *big.Int) (common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "computeCreateAddress", deployer, nonce) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ComputeCreateAddress is a free data retrieval call binding the contract method 0x74637a7a. +// +// Solidity: function computeCreateAddress(address deployer, uint256 nonce) pure returns(address) +func (_VmSafe *VmSafeSession) ComputeCreateAddress(deployer common.Address, nonce *big.Int) (common.Address, error) { + return _VmSafe.Contract.ComputeCreateAddress(&_VmSafe.CallOpts, deployer, nonce) +} + +// ComputeCreateAddress is a free data retrieval call binding the contract method 0x74637a7a. +// +// Solidity: function computeCreateAddress(address deployer, uint256 nonce) pure returns(address) +func (_VmSafe *VmSafeCallerSession) ComputeCreateAddress(deployer common.Address, nonce *big.Int) (common.Address, error) { + return _VmSafe.Contract.ComputeCreateAddress(&_VmSafe.CallOpts, deployer, nonce) +} + +// DeriveKey is a free data retrieval call binding the contract method 0x29233b1f. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index, string language) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeCaller) DeriveKey(opts *bind.CallOpts, mnemonic string, derivationPath string, index uint32, language string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "deriveKey", mnemonic, derivationPath, index, language) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// DeriveKey is a free data retrieval call binding the contract method 0x29233b1f. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index, string language) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeSession) DeriveKey(mnemonic string, derivationPath string, index uint32, language string) (*big.Int, error) { + return _VmSafe.Contract.DeriveKey(&_VmSafe.CallOpts, mnemonic, derivationPath, index, language) +} + +// DeriveKey is a free data retrieval call binding the contract method 0x29233b1f. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index, string language) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeCallerSession) DeriveKey(mnemonic string, derivationPath string, index uint32, language string) (*big.Int, error) { + return _VmSafe.Contract.DeriveKey(&_VmSafe.CallOpts, mnemonic, derivationPath, index, language) +} + +// DeriveKey0 is a free data retrieval call binding the contract method 0x32c8176d. +// +// Solidity: function deriveKey(string mnemonic, uint32 index, string language) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeCaller) DeriveKey0(opts *bind.CallOpts, mnemonic string, index uint32, language string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "deriveKey0", mnemonic, index, language) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// DeriveKey0 is a free data retrieval call binding the contract method 0x32c8176d. +// +// Solidity: function deriveKey(string mnemonic, uint32 index, string language) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeSession) DeriveKey0(mnemonic string, index uint32, language string) (*big.Int, error) { + return _VmSafe.Contract.DeriveKey0(&_VmSafe.CallOpts, mnemonic, index, language) +} + +// DeriveKey0 is a free data retrieval call binding the contract method 0x32c8176d. +// +// Solidity: function deriveKey(string mnemonic, uint32 index, string language) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeCallerSession) DeriveKey0(mnemonic string, index uint32, language string) (*big.Int, error) { + return _VmSafe.Contract.DeriveKey0(&_VmSafe.CallOpts, mnemonic, index, language) +} + +// DeriveKey1 is a free data retrieval call binding the contract method 0x6229498b. +// +// Solidity: function deriveKey(string mnemonic, uint32 index) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeCaller) DeriveKey1(opts *bind.CallOpts, mnemonic string, index uint32) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "deriveKey1", mnemonic, index) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// DeriveKey1 is a free data retrieval call binding the contract method 0x6229498b. +// +// Solidity: function deriveKey(string mnemonic, uint32 index) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeSession) DeriveKey1(mnemonic string, index uint32) (*big.Int, error) { + return _VmSafe.Contract.DeriveKey1(&_VmSafe.CallOpts, mnemonic, index) +} + +// DeriveKey1 is a free data retrieval call binding the contract method 0x6229498b. +// +// Solidity: function deriveKey(string mnemonic, uint32 index) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeCallerSession) DeriveKey1(mnemonic string, index uint32) (*big.Int, error) { + return _VmSafe.Contract.DeriveKey1(&_VmSafe.CallOpts, mnemonic, index) +} + +// DeriveKey2 is a free data retrieval call binding the contract method 0x6bcb2c1b. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeCaller) DeriveKey2(opts *bind.CallOpts, mnemonic string, derivationPath string, index uint32) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "deriveKey2", mnemonic, derivationPath, index) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// DeriveKey2 is a free data retrieval call binding the contract method 0x6bcb2c1b. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeSession) DeriveKey2(mnemonic string, derivationPath string, index uint32) (*big.Int, error) { + return _VmSafe.Contract.DeriveKey2(&_VmSafe.CallOpts, mnemonic, derivationPath, index) +} + +// DeriveKey2 is a free data retrieval call binding the contract method 0x6bcb2c1b. +// +// Solidity: function deriveKey(string mnemonic, string derivationPath, uint32 index) pure returns(uint256 privateKey) +func (_VmSafe *VmSafeCallerSession) DeriveKey2(mnemonic string, derivationPath string, index uint32) (*big.Int, error) { + return _VmSafe.Contract.DeriveKey2(&_VmSafe.CallOpts, mnemonic, derivationPath, index) +} + +// EnsNamehash is a free data retrieval call binding the contract method 0x8c374c65. +// +// Solidity: function ensNamehash(string name) pure returns(bytes32) +func (_VmSafe *VmSafeCaller) EnsNamehash(opts *bind.CallOpts, name string) ([32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "ensNamehash", name) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// EnsNamehash is a free data retrieval call binding the contract method 0x8c374c65. +// +// Solidity: function ensNamehash(string name) pure returns(bytes32) +func (_VmSafe *VmSafeSession) EnsNamehash(name string) ([32]byte, error) { + return _VmSafe.Contract.EnsNamehash(&_VmSafe.CallOpts, name) +} + +// EnsNamehash is a free data retrieval call binding the contract method 0x8c374c65. +// +// Solidity: function ensNamehash(string name) pure returns(bytes32) +func (_VmSafe *VmSafeCallerSession) EnsNamehash(name string) ([32]byte, error) { + return _VmSafe.Contract.EnsNamehash(&_VmSafe.CallOpts, name) +} + +// EnvAddress is a free data retrieval call binding the contract method 0x350d56bf. +// +// Solidity: function envAddress(string name) view returns(address value) +func (_VmSafe *VmSafeCaller) EnvAddress(opts *bind.CallOpts, name string) (common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envAddress", name) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EnvAddress is a free data retrieval call binding the contract method 0x350d56bf. +// +// Solidity: function envAddress(string name) view returns(address value) +func (_VmSafe *VmSafeSession) EnvAddress(name string) (common.Address, error) { + return _VmSafe.Contract.EnvAddress(&_VmSafe.CallOpts, name) +} + +// EnvAddress is a free data retrieval call binding the contract method 0x350d56bf. +// +// Solidity: function envAddress(string name) view returns(address value) +func (_VmSafe *VmSafeCallerSession) EnvAddress(name string) (common.Address, error) { + return _VmSafe.Contract.EnvAddress(&_VmSafe.CallOpts, name) +} + +// EnvAddress0 is a free data retrieval call binding the contract method 0xad31b9fa. +// +// Solidity: function envAddress(string name, string delim) view returns(address[] value) +func (_VmSafe *VmSafeCaller) EnvAddress0(opts *bind.CallOpts, name string, delim string) ([]common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envAddress0", name, delim) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// EnvAddress0 is a free data retrieval call binding the contract method 0xad31b9fa. +// +// Solidity: function envAddress(string name, string delim) view returns(address[] value) +func (_VmSafe *VmSafeSession) EnvAddress0(name string, delim string) ([]common.Address, error) { + return _VmSafe.Contract.EnvAddress0(&_VmSafe.CallOpts, name, delim) +} + +// EnvAddress0 is a free data retrieval call binding the contract method 0xad31b9fa. +// +// Solidity: function envAddress(string name, string delim) view returns(address[] value) +func (_VmSafe *VmSafeCallerSession) EnvAddress0(name string, delim string) ([]common.Address, error) { + return _VmSafe.Contract.EnvAddress0(&_VmSafe.CallOpts, name, delim) +} + +// EnvBool is a free data retrieval call binding the contract method 0x7ed1ec7d. +// +// Solidity: function envBool(string name) view returns(bool value) +func (_VmSafe *VmSafeCaller) EnvBool(opts *bind.CallOpts, name string) (bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envBool", name) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// EnvBool is a free data retrieval call binding the contract method 0x7ed1ec7d. +// +// Solidity: function envBool(string name) view returns(bool value) +func (_VmSafe *VmSafeSession) EnvBool(name string) (bool, error) { + return _VmSafe.Contract.EnvBool(&_VmSafe.CallOpts, name) +} + +// EnvBool is a free data retrieval call binding the contract method 0x7ed1ec7d. +// +// Solidity: function envBool(string name) view returns(bool value) +func (_VmSafe *VmSafeCallerSession) EnvBool(name string) (bool, error) { + return _VmSafe.Contract.EnvBool(&_VmSafe.CallOpts, name) +} + +// EnvBool0 is a free data retrieval call binding the contract method 0xaaaddeaf. +// +// Solidity: function envBool(string name, string delim) view returns(bool[] value) +func (_VmSafe *VmSafeCaller) EnvBool0(opts *bind.CallOpts, name string, delim string) ([]bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envBool0", name, delim) + + if err != nil { + return *new([]bool), err + } + + out0 := *abi.ConvertType(out[0], new([]bool)).(*[]bool) + + return out0, err + +} + +// EnvBool0 is a free data retrieval call binding the contract method 0xaaaddeaf. +// +// Solidity: function envBool(string name, string delim) view returns(bool[] value) +func (_VmSafe *VmSafeSession) EnvBool0(name string, delim string) ([]bool, error) { + return _VmSafe.Contract.EnvBool0(&_VmSafe.CallOpts, name, delim) +} + +// EnvBool0 is a free data retrieval call binding the contract method 0xaaaddeaf. +// +// Solidity: function envBool(string name, string delim) view returns(bool[] value) +func (_VmSafe *VmSafeCallerSession) EnvBool0(name string, delim string) ([]bool, error) { + return _VmSafe.Contract.EnvBool0(&_VmSafe.CallOpts, name, delim) +} + +// EnvBytes is a free data retrieval call binding the contract method 0x4d7baf06. +// +// Solidity: function envBytes(string name) view returns(bytes value) +func (_VmSafe *VmSafeCaller) EnvBytes(opts *bind.CallOpts, name string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envBytes", name) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// EnvBytes is a free data retrieval call binding the contract method 0x4d7baf06. +// +// Solidity: function envBytes(string name) view returns(bytes value) +func (_VmSafe *VmSafeSession) EnvBytes(name string) ([]byte, error) { + return _VmSafe.Contract.EnvBytes(&_VmSafe.CallOpts, name) +} + +// EnvBytes is a free data retrieval call binding the contract method 0x4d7baf06. +// +// Solidity: function envBytes(string name) view returns(bytes value) +func (_VmSafe *VmSafeCallerSession) EnvBytes(name string) ([]byte, error) { + return _VmSafe.Contract.EnvBytes(&_VmSafe.CallOpts, name) +} + +// EnvBytes0 is a free data retrieval call binding the contract method 0xddc2651b. +// +// Solidity: function envBytes(string name, string delim) view returns(bytes[] value) +func (_VmSafe *VmSafeCaller) EnvBytes0(opts *bind.CallOpts, name string, delim string) ([][]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envBytes0", name, delim) + + if err != nil { + return *new([][]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][]byte)).(*[][]byte) + + return out0, err + +} + +// EnvBytes0 is a free data retrieval call binding the contract method 0xddc2651b. +// +// Solidity: function envBytes(string name, string delim) view returns(bytes[] value) +func (_VmSafe *VmSafeSession) EnvBytes0(name string, delim string) ([][]byte, error) { + return _VmSafe.Contract.EnvBytes0(&_VmSafe.CallOpts, name, delim) +} + +// EnvBytes0 is a free data retrieval call binding the contract method 0xddc2651b. +// +// Solidity: function envBytes(string name, string delim) view returns(bytes[] value) +func (_VmSafe *VmSafeCallerSession) EnvBytes0(name string, delim string) ([][]byte, error) { + return _VmSafe.Contract.EnvBytes0(&_VmSafe.CallOpts, name, delim) +} + +// EnvBytes32 is a free data retrieval call binding the contract method 0x5af231c1. +// +// Solidity: function envBytes32(string name, string delim) view returns(bytes32[] value) +func (_VmSafe *VmSafeCaller) EnvBytes32(opts *bind.CallOpts, name string, delim string) ([][32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envBytes32", name, delim) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// EnvBytes32 is a free data retrieval call binding the contract method 0x5af231c1. +// +// Solidity: function envBytes32(string name, string delim) view returns(bytes32[] value) +func (_VmSafe *VmSafeSession) EnvBytes32(name string, delim string) ([][32]byte, error) { + return _VmSafe.Contract.EnvBytes32(&_VmSafe.CallOpts, name, delim) +} + +// EnvBytes32 is a free data retrieval call binding the contract method 0x5af231c1. +// +// Solidity: function envBytes32(string name, string delim) view returns(bytes32[] value) +func (_VmSafe *VmSafeCallerSession) EnvBytes32(name string, delim string) ([][32]byte, error) { + return _VmSafe.Contract.EnvBytes32(&_VmSafe.CallOpts, name, delim) +} + +// EnvBytes320 is a free data retrieval call binding the contract method 0x97949042. +// +// Solidity: function envBytes32(string name) view returns(bytes32 value) +func (_VmSafe *VmSafeCaller) EnvBytes320(opts *bind.CallOpts, name string) ([32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envBytes320", name) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// EnvBytes320 is a free data retrieval call binding the contract method 0x97949042. +// +// Solidity: function envBytes32(string name) view returns(bytes32 value) +func (_VmSafe *VmSafeSession) EnvBytes320(name string) ([32]byte, error) { + return _VmSafe.Contract.EnvBytes320(&_VmSafe.CallOpts, name) +} + +// EnvBytes320 is a free data retrieval call binding the contract method 0x97949042. +// +// Solidity: function envBytes32(string name) view returns(bytes32 value) +func (_VmSafe *VmSafeCallerSession) EnvBytes320(name string) ([32]byte, error) { + return _VmSafe.Contract.EnvBytes320(&_VmSafe.CallOpts, name) +} + +// EnvExists is a free data retrieval call binding the contract method 0xce8365f9. +// +// Solidity: function envExists(string name) view returns(bool result) +func (_VmSafe *VmSafeCaller) EnvExists(opts *bind.CallOpts, name string) (bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envExists", name) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// EnvExists is a free data retrieval call binding the contract method 0xce8365f9. +// +// Solidity: function envExists(string name) view returns(bool result) +func (_VmSafe *VmSafeSession) EnvExists(name string) (bool, error) { + return _VmSafe.Contract.EnvExists(&_VmSafe.CallOpts, name) +} + +// EnvExists is a free data retrieval call binding the contract method 0xce8365f9. +// +// Solidity: function envExists(string name) view returns(bool result) +func (_VmSafe *VmSafeCallerSession) EnvExists(name string) (bool, error) { + return _VmSafe.Contract.EnvExists(&_VmSafe.CallOpts, name) +} + +// EnvInt is a free data retrieval call binding the contract method 0x42181150. +// +// Solidity: function envInt(string name, string delim) view returns(int256[] value) +func (_VmSafe *VmSafeCaller) EnvInt(opts *bind.CallOpts, name string, delim string) ([]*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envInt", name, delim) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// EnvInt is a free data retrieval call binding the contract method 0x42181150. +// +// Solidity: function envInt(string name, string delim) view returns(int256[] value) +func (_VmSafe *VmSafeSession) EnvInt(name string, delim string) ([]*big.Int, error) { + return _VmSafe.Contract.EnvInt(&_VmSafe.CallOpts, name, delim) +} + +// EnvInt is a free data retrieval call binding the contract method 0x42181150. +// +// Solidity: function envInt(string name, string delim) view returns(int256[] value) +func (_VmSafe *VmSafeCallerSession) EnvInt(name string, delim string) ([]*big.Int, error) { + return _VmSafe.Contract.EnvInt(&_VmSafe.CallOpts, name, delim) +} + +// EnvInt0 is a free data retrieval call binding the contract method 0x892a0c61. +// +// Solidity: function envInt(string name) view returns(int256 value) +func (_VmSafe *VmSafeCaller) EnvInt0(opts *bind.CallOpts, name string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envInt0", name) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EnvInt0 is a free data retrieval call binding the contract method 0x892a0c61. +// +// Solidity: function envInt(string name) view returns(int256 value) +func (_VmSafe *VmSafeSession) EnvInt0(name string) (*big.Int, error) { + return _VmSafe.Contract.EnvInt0(&_VmSafe.CallOpts, name) +} + +// EnvInt0 is a free data retrieval call binding the contract method 0x892a0c61. +// +// Solidity: function envInt(string name) view returns(int256 value) +func (_VmSafe *VmSafeCallerSession) EnvInt0(name string) (*big.Int, error) { + return _VmSafe.Contract.EnvInt0(&_VmSafe.CallOpts, name) +} + +// EnvOr is a free data retrieval call binding the contract method 0x2281f367. +// +// Solidity: function envOr(string name, string delim, bytes32[] defaultValue) view returns(bytes32[] value) +func (_VmSafe *VmSafeCaller) EnvOr(opts *bind.CallOpts, name string, delim string, defaultValue [][32]byte) ([][32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr", name, delim, defaultValue) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// EnvOr is a free data retrieval call binding the contract method 0x2281f367. +// +// Solidity: function envOr(string name, string delim, bytes32[] defaultValue) view returns(bytes32[] value) +func (_VmSafe *VmSafeSession) EnvOr(name string, delim string, defaultValue [][32]byte) ([][32]byte, error) { + return _VmSafe.Contract.EnvOr(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr is a free data retrieval call binding the contract method 0x2281f367. +// +// Solidity: function envOr(string name, string delim, bytes32[] defaultValue) view returns(bytes32[] value) +func (_VmSafe *VmSafeCallerSession) EnvOr(name string, delim string, defaultValue [][32]byte) ([][32]byte, error) { + return _VmSafe.Contract.EnvOr(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr0 is a free data retrieval call binding the contract method 0x4700d74b. +// +// Solidity: function envOr(string name, string delim, int256[] defaultValue) view returns(int256[] value) +func (_VmSafe *VmSafeCaller) EnvOr0(opts *bind.CallOpts, name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr0", name, delim, defaultValue) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// EnvOr0 is a free data retrieval call binding the contract method 0x4700d74b. +// +// Solidity: function envOr(string name, string delim, int256[] defaultValue) view returns(int256[] value) +func (_VmSafe *VmSafeSession) EnvOr0(name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + return _VmSafe.Contract.EnvOr0(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr0 is a free data retrieval call binding the contract method 0x4700d74b. +// +// Solidity: function envOr(string name, string delim, int256[] defaultValue) view returns(int256[] value) +func (_VmSafe *VmSafeCallerSession) EnvOr0(name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + return _VmSafe.Contract.EnvOr0(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr1 is a free data retrieval call binding the contract method 0x4777f3cf. +// +// Solidity: function envOr(string name, bool defaultValue) view returns(bool value) +func (_VmSafe *VmSafeCaller) EnvOr1(opts *bind.CallOpts, name string, defaultValue bool) (bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr1", name, defaultValue) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// EnvOr1 is a free data retrieval call binding the contract method 0x4777f3cf. +// +// Solidity: function envOr(string name, bool defaultValue) view returns(bool value) +func (_VmSafe *VmSafeSession) EnvOr1(name string, defaultValue bool) (bool, error) { + return _VmSafe.Contract.EnvOr1(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr1 is a free data retrieval call binding the contract method 0x4777f3cf. +// +// Solidity: function envOr(string name, bool defaultValue) view returns(bool value) +func (_VmSafe *VmSafeCallerSession) EnvOr1(name string, defaultValue bool) (bool, error) { + return _VmSafe.Contract.EnvOr1(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr10 is a free data retrieval call binding the contract method 0xc74e9deb. +// +// Solidity: function envOr(string name, string delim, address[] defaultValue) view returns(address[] value) +func (_VmSafe *VmSafeCaller) EnvOr10(opts *bind.CallOpts, name string, delim string, defaultValue []common.Address) ([]common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr10", name, delim, defaultValue) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// EnvOr10 is a free data retrieval call binding the contract method 0xc74e9deb. +// +// Solidity: function envOr(string name, string delim, address[] defaultValue) view returns(address[] value) +func (_VmSafe *VmSafeSession) EnvOr10(name string, delim string, defaultValue []common.Address) ([]common.Address, error) { + return _VmSafe.Contract.EnvOr10(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr10 is a free data retrieval call binding the contract method 0xc74e9deb. +// +// Solidity: function envOr(string name, string delim, address[] defaultValue) view returns(address[] value) +func (_VmSafe *VmSafeCallerSession) EnvOr10(name string, delim string, defaultValue []common.Address) ([]common.Address, error) { + return _VmSafe.Contract.EnvOr10(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr11 is a free data retrieval call binding the contract method 0xd145736c. +// +// Solidity: function envOr(string name, string defaultValue) view returns(string value) +func (_VmSafe *VmSafeCaller) EnvOr11(opts *bind.CallOpts, name string, defaultValue string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr11", name, defaultValue) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// EnvOr11 is a free data retrieval call binding the contract method 0xd145736c. +// +// Solidity: function envOr(string name, string defaultValue) view returns(string value) +func (_VmSafe *VmSafeSession) EnvOr11(name string, defaultValue string) (string, error) { + return _VmSafe.Contract.EnvOr11(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr11 is a free data retrieval call binding the contract method 0xd145736c. +// +// Solidity: function envOr(string name, string defaultValue) view returns(string value) +func (_VmSafe *VmSafeCallerSession) EnvOr11(name string, defaultValue string) (string, error) { + return _VmSafe.Contract.EnvOr11(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr12 is a free data retrieval call binding the contract method 0xeb85e83b. +// +// Solidity: function envOr(string name, string delim, bool[] defaultValue) view returns(bool[] value) +func (_VmSafe *VmSafeCaller) EnvOr12(opts *bind.CallOpts, name string, delim string, defaultValue []bool) ([]bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr12", name, delim, defaultValue) + + if err != nil { + return *new([]bool), err + } + + out0 := *abi.ConvertType(out[0], new([]bool)).(*[]bool) + + return out0, err + +} + +// EnvOr12 is a free data retrieval call binding the contract method 0xeb85e83b. +// +// Solidity: function envOr(string name, string delim, bool[] defaultValue) view returns(bool[] value) +func (_VmSafe *VmSafeSession) EnvOr12(name string, delim string, defaultValue []bool) ([]bool, error) { + return _VmSafe.Contract.EnvOr12(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr12 is a free data retrieval call binding the contract method 0xeb85e83b. +// +// Solidity: function envOr(string name, string delim, bool[] defaultValue) view returns(bool[] value) +func (_VmSafe *VmSafeCallerSession) EnvOr12(name string, delim string, defaultValue []bool) ([]bool, error) { + return _VmSafe.Contract.EnvOr12(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr2 is a free data retrieval call binding the contract method 0x561fe540. +// +// Solidity: function envOr(string name, address defaultValue) view returns(address value) +func (_VmSafe *VmSafeCaller) EnvOr2(opts *bind.CallOpts, name string, defaultValue common.Address) (common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr2", name, defaultValue) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EnvOr2 is a free data retrieval call binding the contract method 0x561fe540. +// +// Solidity: function envOr(string name, address defaultValue) view returns(address value) +func (_VmSafe *VmSafeSession) EnvOr2(name string, defaultValue common.Address) (common.Address, error) { + return _VmSafe.Contract.EnvOr2(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr2 is a free data retrieval call binding the contract method 0x561fe540. +// +// Solidity: function envOr(string name, address defaultValue) view returns(address value) +func (_VmSafe *VmSafeCallerSession) EnvOr2(name string, defaultValue common.Address) (common.Address, error) { + return _VmSafe.Contract.EnvOr2(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr3 is a free data retrieval call binding the contract method 0x5e97348f. +// +// Solidity: function envOr(string name, uint256 defaultValue) view returns(uint256 value) +func (_VmSafe *VmSafeCaller) EnvOr3(opts *bind.CallOpts, name string, defaultValue *big.Int) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr3", name, defaultValue) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EnvOr3 is a free data retrieval call binding the contract method 0x5e97348f. +// +// Solidity: function envOr(string name, uint256 defaultValue) view returns(uint256 value) +func (_VmSafe *VmSafeSession) EnvOr3(name string, defaultValue *big.Int) (*big.Int, error) { + return _VmSafe.Contract.EnvOr3(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr3 is a free data retrieval call binding the contract method 0x5e97348f. +// +// Solidity: function envOr(string name, uint256 defaultValue) view returns(uint256 value) +func (_VmSafe *VmSafeCallerSession) EnvOr3(name string, defaultValue *big.Int) (*big.Int, error) { + return _VmSafe.Contract.EnvOr3(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr4 is a free data retrieval call binding the contract method 0x64bc3e64. +// +// Solidity: function envOr(string name, string delim, bytes[] defaultValue) view returns(bytes[] value) +func (_VmSafe *VmSafeCaller) EnvOr4(opts *bind.CallOpts, name string, delim string, defaultValue [][]byte) ([][]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr4", name, delim, defaultValue) + + if err != nil { + return *new([][]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][]byte)).(*[][]byte) + + return out0, err + +} + +// EnvOr4 is a free data retrieval call binding the contract method 0x64bc3e64. +// +// Solidity: function envOr(string name, string delim, bytes[] defaultValue) view returns(bytes[] value) +func (_VmSafe *VmSafeSession) EnvOr4(name string, delim string, defaultValue [][]byte) ([][]byte, error) { + return _VmSafe.Contract.EnvOr4(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr4 is a free data retrieval call binding the contract method 0x64bc3e64. +// +// Solidity: function envOr(string name, string delim, bytes[] defaultValue) view returns(bytes[] value) +func (_VmSafe *VmSafeCallerSession) EnvOr4(name string, delim string, defaultValue [][]byte) ([][]byte, error) { + return _VmSafe.Contract.EnvOr4(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr5 is a free data retrieval call binding the contract method 0x74318528. +// +// Solidity: function envOr(string name, string delim, uint256[] defaultValue) view returns(uint256[] value) +func (_VmSafe *VmSafeCaller) EnvOr5(opts *bind.CallOpts, name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr5", name, delim, defaultValue) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// EnvOr5 is a free data retrieval call binding the contract method 0x74318528. +// +// Solidity: function envOr(string name, string delim, uint256[] defaultValue) view returns(uint256[] value) +func (_VmSafe *VmSafeSession) EnvOr5(name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + return _VmSafe.Contract.EnvOr5(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr5 is a free data retrieval call binding the contract method 0x74318528. +// +// Solidity: function envOr(string name, string delim, uint256[] defaultValue) view returns(uint256[] value) +func (_VmSafe *VmSafeCallerSession) EnvOr5(name string, delim string, defaultValue []*big.Int) ([]*big.Int, error) { + return _VmSafe.Contract.EnvOr5(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr6 is a free data retrieval call binding the contract method 0x859216bc. +// +// Solidity: function envOr(string name, string delim, string[] defaultValue) view returns(string[] value) +func (_VmSafe *VmSafeCaller) EnvOr6(opts *bind.CallOpts, name string, delim string, defaultValue []string) ([]string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr6", name, delim, defaultValue) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// EnvOr6 is a free data retrieval call binding the contract method 0x859216bc. +// +// Solidity: function envOr(string name, string delim, string[] defaultValue) view returns(string[] value) +func (_VmSafe *VmSafeSession) EnvOr6(name string, delim string, defaultValue []string) ([]string, error) { + return _VmSafe.Contract.EnvOr6(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr6 is a free data retrieval call binding the contract method 0x859216bc. +// +// Solidity: function envOr(string name, string delim, string[] defaultValue) view returns(string[] value) +func (_VmSafe *VmSafeCallerSession) EnvOr6(name string, delim string, defaultValue []string) ([]string, error) { + return _VmSafe.Contract.EnvOr6(&_VmSafe.CallOpts, name, delim, defaultValue) +} + +// EnvOr7 is a free data retrieval call binding the contract method 0xb3e47705. +// +// Solidity: function envOr(string name, bytes defaultValue) view returns(bytes value) +func (_VmSafe *VmSafeCaller) EnvOr7(opts *bind.CallOpts, name string, defaultValue []byte) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr7", name, defaultValue) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// EnvOr7 is a free data retrieval call binding the contract method 0xb3e47705. +// +// Solidity: function envOr(string name, bytes defaultValue) view returns(bytes value) +func (_VmSafe *VmSafeSession) EnvOr7(name string, defaultValue []byte) ([]byte, error) { + return _VmSafe.Contract.EnvOr7(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr7 is a free data retrieval call binding the contract method 0xb3e47705. +// +// Solidity: function envOr(string name, bytes defaultValue) view returns(bytes value) +func (_VmSafe *VmSafeCallerSession) EnvOr7(name string, defaultValue []byte) ([]byte, error) { + return _VmSafe.Contract.EnvOr7(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr8 is a free data retrieval call binding the contract method 0xb4a85892. +// +// Solidity: function envOr(string name, bytes32 defaultValue) view returns(bytes32 value) +func (_VmSafe *VmSafeCaller) EnvOr8(opts *bind.CallOpts, name string, defaultValue [32]byte) ([32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr8", name, defaultValue) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// EnvOr8 is a free data retrieval call binding the contract method 0xb4a85892. +// +// Solidity: function envOr(string name, bytes32 defaultValue) view returns(bytes32 value) +func (_VmSafe *VmSafeSession) EnvOr8(name string, defaultValue [32]byte) ([32]byte, error) { + return _VmSafe.Contract.EnvOr8(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr8 is a free data retrieval call binding the contract method 0xb4a85892. +// +// Solidity: function envOr(string name, bytes32 defaultValue) view returns(bytes32 value) +func (_VmSafe *VmSafeCallerSession) EnvOr8(name string, defaultValue [32]byte) ([32]byte, error) { + return _VmSafe.Contract.EnvOr8(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr9 is a free data retrieval call binding the contract method 0xbbcb713e. +// +// Solidity: function envOr(string name, int256 defaultValue) view returns(int256 value) +func (_VmSafe *VmSafeCaller) EnvOr9(opts *bind.CallOpts, name string, defaultValue *big.Int) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envOr9", name, defaultValue) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EnvOr9 is a free data retrieval call binding the contract method 0xbbcb713e. +// +// Solidity: function envOr(string name, int256 defaultValue) view returns(int256 value) +func (_VmSafe *VmSafeSession) EnvOr9(name string, defaultValue *big.Int) (*big.Int, error) { + return _VmSafe.Contract.EnvOr9(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvOr9 is a free data retrieval call binding the contract method 0xbbcb713e. +// +// Solidity: function envOr(string name, int256 defaultValue) view returns(int256 value) +func (_VmSafe *VmSafeCallerSession) EnvOr9(name string, defaultValue *big.Int) (*big.Int, error) { + return _VmSafe.Contract.EnvOr9(&_VmSafe.CallOpts, name, defaultValue) +} + +// EnvString is a free data retrieval call binding the contract method 0x14b02bc9. +// +// Solidity: function envString(string name, string delim) view returns(string[] value) +func (_VmSafe *VmSafeCaller) EnvString(opts *bind.CallOpts, name string, delim string) ([]string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envString", name, delim) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// EnvString is a free data retrieval call binding the contract method 0x14b02bc9. +// +// Solidity: function envString(string name, string delim) view returns(string[] value) +func (_VmSafe *VmSafeSession) EnvString(name string, delim string) ([]string, error) { + return _VmSafe.Contract.EnvString(&_VmSafe.CallOpts, name, delim) +} + +// EnvString is a free data retrieval call binding the contract method 0x14b02bc9. +// +// Solidity: function envString(string name, string delim) view returns(string[] value) +func (_VmSafe *VmSafeCallerSession) EnvString(name string, delim string) ([]string, error) { + return _VmSafe.Contract.EnvString(&_VmSafe.CallOpts, name, delim) +} + +// EnvString0 is a free data retrieval call binding the contract method 0xf877cb19. +// +// Solidity: function envString(string name) view returns(string value) +func (_VmSafe *VmSafeCaller) EnvString0(opts *bind.CallOpts, name string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envString0", name) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// EnvString0 is a free data retrieval call binding the contract method 0xf877cb19. +// +// Solidity: function envString(string name) view returns(string value) +func (_VmSafe *VmSafeSession) EnvString0(name string) (string, error) { + return _VmSafe.Contract.EnvString0(&_VmSafe.CallOpts, name) +} + +// EnvString0 is a free data retrieval call binding the contract method 0xf877cb19. +// +// Solidity: function envString(string name) view returns(string value) +func (_VmSafe *VmSafeCallerSession) EnvString0(name string) (string, error) { + return _VmSafe.Contract.EnvString0(&_VmSafe.CallOpts, name) +} + +// EnvUint is a free data retrieval call binding the contract method 0xc1978d1f. +// +// Solidity: function envUint(string name) view returns(uint256 value) +func (_VmSafe *VmSafeCaller) EnvUint(opts *bind.CallOpts, name string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envUint", name) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EnvUint is a free data retrieval call binding the contract method 0xc1978d1f. +// +// Solidity: function envUint(string name) view returns(uint256 value) +func (_VmSafe *VmSafeSession) EnvUint(name string) (*big.Int, error) { + return _VmSafe.Contract.EnvUint(&_VmSafe.CallOpts, name) +} + +// EnvUint is a free data retrieval call binding the contract method 0xc1978d1f. +// +// Solidity: function envUint(string name) view returns(uint256 value) +func (_VmSafe *VmSafeCallerSession) EnvUint(name string) (*big.Int, error) { + return _VmSafe.Contract.EnvUint(&_VmSafe.CallOpts, name) +} + +// EnvUint0 is a free data retrieval call binding the contract method 0xf3dec099. +// +// Solidity: function envUint(string name, string delim) view returns(uint256[] value) +func (_VmSafe *VmSafeCaller) EnvUint0(opts *bind.CallOpts, name string, delim string) ([]*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "envUint0", name, delim) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// EnvUint0 is a free data retrieval call binding the contract method 0xf3dec099. +// +// Solidity: function envUint(string name, string delim) view returns(uint256[] value) +func (_VmSafe *VmSafeSession) EnvUint0(name string, delim string) ([]*big.Int, error) { + return _VmSafe.Contract.EnvUint0(&_VmSafe.CallOpts, name, delim) +} + +// EnvUint0 is a free data retrieval call binding the contract method 0xf3dec099. +// +// Solidity: function envUint(string name, string delim) view returns(uint256[] value) +func (_VmSafe *VmSafeCallerSession) EnvUint0(name string, delim string) ([]*big.Int, error) { + return _VmSafe.Contract.EnvUint0(&_VmSafe.CallOpts, name, delim) +} + +// FsMetadata is a free data retrieval call binding the contract method 0xaf368a08. +// +// Solidity: function fsMetadata(string path) view returns((bool,bool,uint256,bool,uint256,uint256,uint256) metadata) +func (_VmSafe *VmSafeCaller) FsMetadata(opts *bind.CallOpts, path string) (VmSafeFsMetadata, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "fsMetadata", path) + + if err != nil { + return *new(VmSafeFsMetadata), err + } + + out0 := *abi.ConvertType(out[0], new(VmSafeFsMetadata)).(*VmSafeFsMetadata) + + return out0, err + +} + +// FsMetadata is a free data retrieval call binding the contract method 0xaf368a08. +// +// Solidity: function fsMetadata(string path) view returns((bool,bool,uint256,bool,uint256,uint256,uint256) metadata) +func (_VmSafe *VmSafeSession) FsMetadata(path string) (VmSafeFsMetadata, error) { + return _VmSafe.Contract.FsMetadata(&_VmSafe.CallOpts, path) +} + +// FsMetadata is a free data retrieval call binding the contract method 0xaf368a08. +// +// Solidity: function fsMetadata(string path) view returns((bool,bool,uint256,bool,uint256,uint256,uint256) metadata) +func (_VmSafe *VmSafeCallerSession) FsMetadata(path string) (VmSafeFsMetadata, error) { + return _VmSafe.Contract.FsMetadata(&_VmSafe.CallOpts, path) +} + +// GetBlobBaseFee is a free data retrieval call binding the contract method 0x1f6d6ef7. +// +// Solidity: function getBlobBaseFee() view returns(uint256 blobBaseFee) +func (_VmSafe *VmSafeCaller) GetBlobBaseFee(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "getBlobBaseFee") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetBlobBaseFee is a free data retrieval call binding the contract method 0x1f6d6ef7. +// +// Solidity: function getBlobBaseFee() view returns(uint256 blobBaseFee) +func (_VmSafe *VmSafeSession) GetBlobBaseFee() (*big.Int, error) { + return _VmSafe.Contract.GetBlobBaseFee(&_VmSafe.CallOpts) +} + +// GetBlobBaseFee is a free data retrieval call binding the contract method 0x1f6d6ef7. +// +// Solidity: function getBlobBaseFee() view returns(uint256 blobBaseFee) +func (_VmSafe *VmSafeCallerSession) GetBlobBaseFee() (*big.Int, error) { + return _VmSafe.Contract.GetBlobBaseFee(&_VmSafe.CallOpts) +} + +// GetBlockNumber is a free data retrieval call binding the contract method 0x42cbb15c. +// +// Solidity: function getBlockNumber() view returns(uint256 height) +func (_VmSafe *VmSafeCaller) GetBlockNumber(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "getBlockNumber") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetBlockNumber is a free data retrieval call binding the contract method 0x42cbb15c. +// +// Solidity: function getBlockNumber() view returns(uint256 height) +func (_VmSafe *VmSafeSession) GetBlockNumber() (*big.Int, error) { + return _VmSafe.Contract.GetBlockNumber(&_VmSafe.CallOpts) +} + +// GetBlockNumber is a free data retrieval call binding the contract method 0x42cbb15c. +// +// Solidity: function getBlockNumber() view returns(uint256 height) +func (_VmSafe *VmSafeCallerSession) GetBlockNumber() (*big.Int, error) { + return _VmSafe.Contract.GetBlockNumber(&_VmSafe.CallOpts) +} + +// GetBlockTimestamp is a free data retrieval call binding the contract method 0x796b89b9. +// +// Solidity: function getBlockTimestamp() view returns(uint256 timestamp) +func (_VmSafe *VmSafeCaller) GetBlockTimestamp(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "getBlockTimestamp") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetBlockTimestamp is a free data retrieval call binding the contract method 0x796b89b9. +// +// Solidity: function getBlockTimestamp() view returns(uint256 timestamp) +func (_VmSafe *VmSafeSession) GetBlockTimestamp() (*big.Int, error) { + return _VmSafe.Contract.GetBlockTimestamp(&_VmSafe.CallOpts) +} + +// GetBlockTimestamp is a free data retrieval call binding the contract method 0x796b89b9. +// +// Solidity: function getBlockTimestamp() view returns(uint256 timestamp) +func (_VmSafe *VmSafeCallerSession) GetBlockTimestamp() (*big.Int, error) { + return _VmSafe.Contract.GetBlockTimestamp(&_VmSafe.CallOpts) +} + +// GetCode is a free data retrieval call binding the contract method 0x8d1cc925. +// +// Solidity: function getCode(string artifactPath) view returns(bytes creationBytecode) +func (_VmSafe *VmSafeCaller) GetCode(opts *bind.CallOpts, artifactPath string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "getCode", artifactPath) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// GetCode is a free data retrieval call binding the contract method 0x8d1cc925. +// +// Solidity: function getCode(string artifactPath) view returns(bytes creationBytecode) +func (_VmSafe *VmSafeSession) GetCode(artifactPath string) ([]byte, error) { + return _VmSafe.Contract.GetCode(&_VmSafe.CallOpts, artifactPath) +} + +// GetCode is a free data retrieval call binding the contract method 0x8d1cc925. +// +// Solidity: function getCode(string artifactPath) view returns(bytes creationBytecode) +func (_VmSafe *VmSafeCallerSession) GetCode(artifactPath string) ([]byte, error) { + return _VmSafe.Contract.GetCode(&_VmSafe.CallOpts, artifactPath) +} + +// GetDeployedCode is a free data retrieval call binding the contract method 0x3ebf73b4. +// +// Solidity: function getDeployedCode(string artifactPath) view returns(bytes runtimeBytecode) +func (_VmSafe *VmSafeCaller) GetDeployedCode(opts *bind.CallOpts, artifactPath string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "getDeployedCode", artifactPath) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// GetDeployedCode is a free data retrieval call binding the contract method 0x3ebf73b4. +// +// Solidity: function getDeployedCode(string artifactPath) view returns(bytes runtimeBytecode) +func (_VmSafe *VmSafeSession) GetDeployedCode(artifactPath string) ([]byte, error) { + return _VmSafe.Contract.GetDeployedCode(&_VmSafe.CallOpts, artifactPath) +} + +// GetDeployedCode is a free data retrieval call binding the contract method 0x3ebf73b4. +// +// Solidity: function getDeployedCode(string artifactPath) view returns(bytes runtimeBytecode) +func (_VmSafe *VmSafeCallerSession) GetDeployedCode(artifactPath string) ([]byte, error) { + return _VmSafe.Contract.GetDeployedCode(&_VmSafe.CallOpts, artifactPath) +} + +// GetLabel is a free data retrieval call binding the contract method 0x28a249b0. +// +// Solidity: function getLabel(address account) view returns(string currentLabel) +func (_VmSafe *VmSafeCaller) GetLabel(opts *bind.CallOpts, account common.Address) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "getLabel", account) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// GetLabel is a free data retrieval call binding the contract method 0x28a249b0. +// +// Solidity: function getLabel(address account) view returns(string currentLabel) +func (_VmSafe *VmSafeSession) GetLabel(account common.Address) (string, error) { + return _VmSafe.Contract.GetLabel(&_VmSafe.CallOpts, account) +} + +// GetLabel is a free data retrieval call binding the contract method 0x28a249b0. +// +// Solidity: function getLabel(address account) view returns(string currentLabel) +func (_VmSafe *VmSafeCallerSession) GetLabel(account common.Address) (string, error) { + return _VmSafe.Contract.GetLabel(&_VmSafe.CallOpts, account) +} + +// GetNonce is a free data retrieval call binding the contract method 0x2d0335ab. +// +// Solidity: function getNonce(address account) view returns(uint64 nonce) +func (_VmSafe *VmSafeCaller) GetNonce(opts *bind.CallOpts, account common.Address) (uint64, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "getNonce", account) + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// GetNonce is a free data retrieval call binding the contract method 0x2d0335ab. +// +// Solidity: function getNonce(address account) view returns(uint64 nonce) +func (_VmSafe *VmSafeSession) GetNonce(account common.Address) (uint64, error) { + return _VmSafe.Contract.GetNonce(&_VmSafe.CallOpts, account) +} + +// GetNonce is a free data retrieval call binding the contract method 0x2d0335ab. +// +// Solidity: function getNonce(address account) view returns(uint64 nonce) +func (_VmSafe *VmSafeCallerSession) GetNonce(account common.Address) (uint64, error) { + return _VmSafe.Contract.GetNonce(&_VmSafe.CallOpts, account) +} + +// IndexOf is a free data retrieval call binding the contract method 0x8a0807b7. +// +// Solidity: function indexOf(string input, string key) pure returns(uint256) +func (_VmSafe *VmSafeCaller) IndexOf(opts *bind.CallOpts, input string, key string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "indexOf", input, key) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// IndexOf is a free data retrieval call binding the contract method 0x8a0807b7. +// +// Solidity: function indexOf(string input, string key) pure returns(uint256) +func (_VmSafe *VmSafeSession) IndexOf(input string, key string) (*big.Int, error) { + return _VmSafe.Contract.IndexOf(&_VmSafe.CallOpts, input, key) +} + +// IndexOf is a free data retrieval call binding the contract method 0x8a0807b7. +// +// Solidity: function indexOf(string input, string key) pure returns(uint256) +func (_VmSafe *VmSafeCallerSession) IndexOf(input string, key string) (*big.Int, error) { + return _VmSafe.Contract.IndexOf(&_VmSafe.CallOpts, input, key) +} + +// IsContext is a free data retrieval call binding the contract method 0x64af255d. +// +// Solidity: function isContext(uint8 context) view returns(bool result) +func (_VmSafe *VmSafeCaller) IsContext(opts *bind.CallOpts, context uint8) (bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "isContext", context) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsContext is a free data retrieval call binding the contract method 0x64af255d. +// +// Solidity: function isContext(uint8 context) view returns(bool result) +func (_VmSafe *VmSafeSession) IsContext(context uint8) (bool, error) { + return _VmSafe.Contract.IsContext(&_VmSafe.CallOpts, context) +} + +// IsContext is a free data retrieval call binding the contract method 0x64af255d. +// +// Solidity: function isContext(uint8 context) view returns(bool result) +func (_VmSafe *VmSafeCallerSession) IsContext(context uint8) (bool, error) { + return _VmSafe.Contract.IsContext(&_VmSafe.CallOpts, context) +} + +// KeyExists is a free data retrieval call binding the contract method 0x528a683c. +// +// Solidity: function keyExists(string json, string key) view returns(bool) +func (_VmSafe *VmSafeCaller) KeyExists(opts *bind.CallOpts, json string, key string) (bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "keyExists", json, key) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// KeyExists is a free data retrieval call binding the contract method 0x528a683c. +// +// Solidity: function keyExists(string json, string key) view returns(bool) +func (_VmSafe *VmSafeSession) KeyExists(json string, key string) (bool, error) { + return _VmSafe.Contract.KeyExists(&_VmSafe.CallOpts, json, key) +} + +// KeyExists is a free data retrieval call binding the contract method 0x528a683c. +// +// Solidity: function keyExists(string json, string key) view returns(bool) +func (_VmSafe *VmSafeCallerSession) KeyExists(json string, key string) (bool, error) { + return _VmSafe.Contract.KeyExists(&_VmSafe.CallOpts, json, key) +} + +// KeyExistsJson is a free data retrieval call binding the contract method 0xdb4235f6. +// +// Solidity: function keyExistsJson(string json, string key) view returns(bool) +func (_VmSafe *VmSafeCaller) KeyExistsJson(opts *bind.CallOpts, json string, key string) (bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "keyExistsJson", json, key) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// KeyExistsJson is a free data retrieval call binding the contract method 0xdb4235f6. +// +// Solidity: function keyExistsJson(string json, string key) view returns(bool) +func (_VmSafe *VmSafeSession) KeyExistsJson(json string, key string) (bool, error) { + return _VmSafe.Contract.KeyExistsJson(&_VmSafe.CallOpts, json, key) +} + +// KeyExistsJson is a free data retrieval call binding the contract method 0xdb4235f6. +// +// Solidity: function keyExistsJson(string json, string key) view returns(bool) +func (_VmSafe *VmSafeCallerSession) KeyExistsJson(json string, key string) (bool, error) { + return _VmSafe.Contract.KeyExistsJson(&_VmSafe.CallOpts, json, key) +} + +// KeyExistsToml is a free data retrieval call binding the contract method 0x600903ad. +// +// Solidity: function keyExistsToml(string toml, string key) view returns(bool) +func (_VmSafe *VmSafeCaller) KeyExistsToml(opts *bind.CallOpts, toml string, key string) (bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "keyExistsToml", toml, key) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// KeyExistsToml is a free data retrieval call binding the contract method 0x600903ad. +// +// Solidity: function keyExistsToml(string toml, string key) view returns(bool) +func (_VmSafe *VmSafeSession) KeyExistsToml(toml string, key string) (bool, error) { + return _VmSafe.Contract.KeyExistsToml(&_VmSafe.CallOpts, toml, key) +} + +// KeyExistsToml is a free data retrieval call binding the contract method 0x600903ad. +// +// Solidity: function keyExistsToml(string toml, string key) view returns(bool) +func (_VmSafe *VmSafeCallerSession) KeyExistsToml(toml string, key string) (bool, error) { + return _VmSafe.Contract.KeyExistsToml(&_VmSafe.CallOpts, toml, key) +} + +// LastCallGas is a free data retrieval call binding the contract method 0x2b589b28. +// +// Solidity: function lastCallGas() view returns((uint64,uint64,uint64,int64,uint64) gas) +func (_VmSafe *VmSafeCaller) LastCallGas(opts *bind.CallOpts) (VmSafeGas, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "lastCallGas") + + if err != nil { + return *new(VmSafeGas), err + } + + out0 := *abi.ConvertType(out[0], new(VmSafeGas)).(*VmSafeGas) + + return out0, err + +} + +// LastCallGas is a free data retrieval call binding the contract method 0x2b589b28. +// +// Solidity: function lastCallGas() view returns((uint64,uint64,uint64,int64,uint64) gas) +func (_VmSafe *VmSafeSession) LastCallGas() (VmSafeGas, error) { + return _VmSafe.Contract.LastCallGas(&_VmSafe.CallOpts) +} + +// LastCallGas is a free data retrieval call binding the contract method 0x2b589b28. +// +// Solidity: function lastCallGas() view returns((uint64,uint64,uint64,int64,uint64) gas) +func (_VmSafe *VmSafeCallerSession) LastCallGas() (VmSafeGas, error) { + return _VmSafe.Contract.LastCallGas(&_VmSafe.CallOpts) +} + +// Load is a free data retrieval call binding the contract method 0x667f9d70. +// +// Solidity: function load(address target, bytes32 slot) view returns(bytes32 data) +func (_VmSafe *VmSafeCaller) Load(opts *bind.CallOpts, target common.Address, slot [32]byte) ([32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "load", target, slot) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// Load is a free data retrieval call binding the contract method 0x667f9d70. +// +// Solidity: function load(address target, bytes32 slot) view returns(bytes32 data) +func (_VmSafe *VmSafeSession) Load(target common.Address, slot [32]byte) ([32]byte, error) { + return _VmSafe.Contract.Load(&_VmSafe.CallOpts, target, slot) +} + +// Load is a free data retrieval call binding the contract method 0x667f9d70. +// +// Solidity: function load(address target, bytes32 slot) view returns(bytes32 data) +func (_VmSafe *VmSafeCallerSession) Load(target common.Address, slot [32]byte) ([32]byte, error) { + return _VmSafe.Contract.Load(&_VmSafe.CallOpts, target, slot) +} + +// ParseAddress is a free data retrieval call binding the contract method 0xc6ce059d. +// +// Solidity: function parseAddress(string stringifiedValue) pure returns(address parsedValue) +func (_VmSafe *VmSafeCaller) ParseAddress(opts *bind.CallOpts, stringifiedValue string) (common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseAddress", stringifiedValue) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ParseAddress is a free data retrieval call binding the contract method 0xc6ce059d. +// +// Solidity: function parseAddress(string stringifiedValue) pure returns(address parsedValue) +func (_VmSafe *VmSafeSession) ParseAddress(stringifiedValue string) (common.Address, error) { + return _VmSafe.Contract.ParseAddress(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseAddress is a free data retrieval call binding the contract method 0xc6ce059d. +// +// Solidity: function parseAddress(string stringifiedValue) pure returns(address parsedValue) +func (_VmSafe *VmSafeCallerSession) ParseAddress(stringifiedValue string) (common.Address, error) { + return _VmSafe.Contract.ParseAddress(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseBool is a free data retrieval call binding the contract method 0x974ef924. +// +// Solidity: function parseBool(string stringifiedValue) pure returns(bool parsedValue) +func (_VmSafe *VmSafeCaller) ParseBool(opts *bind.CallOpts, stringifiedValue string) (bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseBool", stringifiedValue) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ParseBool is a free data retrieval call binding the contract method 0x974ef924. +// +// Solidity: function parseBool(string stringifiedValue) pure returns(bool parsedValue) +func (_VmSafe *VmSafeSession) ParseBool(stringifiedValue string) (bool, error) { + return _VmSafe.Contract.ParseBool(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseBool is a free data retrieval call binding the contract method 0x974ef924. +// +// Solidity: function parseBool(string stringifiedValue) pure returns(bool parsedValue) +func (_VmSafe *VmSafeCallerSession) ParseBool(stringifiedValue string) (bool, error) { + return _VmSafe.Contract.ParseBool(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseBytes is a free data retrieval call binding the contract method 0x8f5d232d. +// +// Solidity: function parseBytes(string stringifiedValue) pure returns(bytes parsedValue) +func (_VmSafe *VmSafeCaller) ParseBytes(opts *bind.CallOpts, stringifiedValue string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseBytes", stringifiedValue) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseBytes is a free data retrieval call binding the contract method 0x8f5d232d. +// +// Solidity: function parseBytes(string stringifiedValue) pure returns(bytes parsedValue) +func (_VmSafe *VmSafeSession) ParseBytes(stringifiedValue string) ([]byte, error) { + return _VmSafe.Contract.ParseBytes(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseBytes is a free data retrieval call binding the contract method 0x8f5d232d. +// +// Solidity: function parseBytes(string stringifiedValue) pure returns(bytes parsedValue) +func (_VmSafe *VmSafeCallerSession) ParseBytes(stringifiedValue string) ([]byte, error) { + return _VmSafe.Contract.ParseBytes(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseBytes32 is a free data retrieval call binding the contract method 0x087e6e81. +// +// Solidity: function parseBytes32(string stringifiedValue) pure returns(bytes32 parsedValue) +func (_VmSafe *VmSafeCaller) ParseBytes32(opts *bind.CallOpts, stringifiedValue string) ([32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseBytes32", stringifiedValue) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ParseBytes32 is a free data retrieval call binding the contract method 0x087e6e81. +// +// Solidity: function parseBytes32(string stringifiedValue) pure returns(bytes32 parsedValue) +func (_VmSafe *VmSafeSession) ParseBytes32(stringifiedValue string) ([32]byte, error) { + return _VmSafe.Contract.ParseBytes32(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseBytes32 is a free data retrieval call binding the contract method 0x087e6e81. +// +// Solidity: function parseBytes32(string stringifiedValue) pure returns(bytes32 parsedValue) +func (_VmSafe *VmSafeCallerSession) ParseBytes32(stringifiedValue string) ([32]byte, error) { + return _VmSafe.Contract.ParseBytes32(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseInt is a free data retrieval call binding the contract method 0x42346c5e. +// +// Solidity: function parseInt(string stringifiedValue) pure returns(int256 parsedValue) +func (_VmSafe *VmSafeCaller) ParseInt(opts *bind.CallOpts, stringifiedValue string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseInt", stringifiedValue) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseInt is a free data retrieval call binding the contract method 0x42346c5e. +// +// Solidity: function parseInt(string stringifiedValue) pure returns(int256 parsedValue) +func (_VmSafe *VmSafeSession) ParseInt(stringifiedValue string) (*big.Int, error) { + return _VmSafe.Contract.ParseInt(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseInt is a free data retrieval call binding the contract method 0x42346c5e. +// +// Solidity: function parseInt(string stringifiedValue) pure returns(int256 parsedValue) +func (_VmSafe *VmSafeCallerSession) ParseInt(stringifiedValue string) (*big.Int, error) { + return _VmSafe.Contract.ParseInt(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseJson is a free data retrieval call binding the contract method 0x6a82600a. +// +// Solidity: function parseJson(string json) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeCaller) ParseJson(opts *bind.CallOpts, json string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJson", json) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJson is a free data retrieval call binding the contract method 0x6a82600a. +// +// Solidity: function parseJson(string json) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeSession) ParseJson(json string) ([]byte, error) { + return _VmSafe.Contract.ParseJson(&_VmSafe.CallOpts, json) +} + +// ParseJson is a free data retrieval call binding the contract method 0x6a82600a. +// +// Solidity: function parseJson(string json) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeCallerSession) ParseJson(json string) ([]byte, error) { + return _VmSafe.Contract.ParseJson(&_VmSafe.CallOpts, json) +} + +// ParseJson0 is a free data retrieval call binding the contract method 0x85940ef1. +// +// Solidity: function parseJson(string json, string key) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeCaller) ParseJson0(opts *bind.CallOpts, json string, key string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJson0", json, key) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJson0 is a free data retrieval call binding the contract method 0x85940ef1. +// +// Solidity: function parseJson(string json, string key) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeSession) ParseJson0(json string, key string) ([]byte, error) { + return _VmSafe.Contract.ParseJson0(&_VmSafe.CallOpts, json, key) +} + +// ParseJson0 is a free data retrieval call binding the contract method 0x85940ef1. +// +// Solidity: function parseJson(string json, string key) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeCallerSession) ParseJson0(json string, key string) ([]byte, error) { + return _VmSafe.Contract.ParseJson0(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonAddress is a free data retrieval call binding the contract method 0x1e19e657. +// +// Solidity: function parseJsonAddress(string json, string key) pure returns(address) +func (_VmSafe *VmSafeCaller) ParseJsonAddress(opts *bind.CallOpts, json string, key string) (common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonAddress", json, key) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ParseJsonAddress is a free data retrieval call binding the contract method 0x1e19e657. +// +// Solidity: function parseJsonAddress(string json, string key) pure returns(address) +func (_VmSafe *VmSafeSession) ParseJsonAddress(json string, key string) (common.Address, error) { + return _VmSafe.Contract.ParseJsonAddress(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonAddress is a free data retrieval call binding the contract method 0x1e19e657. +// +// Solidity: function parseJsonAddress(string json, string key) pure returns(address) +func (_VmSafe *VmSafeCallerSession) ParseJsonAddress(json string, key string) (common.Address, error) { + return _VmSafe.Contract.ParseJsonAddress(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonAddressArray is a free data retrieval call binding the contract method 0x2fce7883. +// +// Solidity: function parseJsonAddressArray(string json, string key) pure returns(address[]) +func (_VmSafe *VmSafeCaller) ParseJsonAddressArray(opts *bind.CallOpts, json string, key string) ([]common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonAddressArray", json, key) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ParseJsonAddressArray is a free data retrieval call binding the contract method 0x2fce7883. +// +// Solidity: function parseJsonAddressArray(string json, string key) pure returns(address[]) +func (_VmSafe *VmSafeSession) ParseJsonAddressArray(json string, key string) ([]common.Address, error) { + return _VmSafe.Contract.ParseJsonAddressArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonAddressArray is a free data retrieval call binding the contract method 0x2fce7883. +// +// Solidity: function parseJsonAddressArray(string json, string key) pure returns(address[]) +func (_VmSafe *VmSafeCallerSession) ParseJsonAddressArray(json string, key string) ([]common.Address, error) { + return _VmSafe.Contract.ParseJsonAddressArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBool is a free data retrieval call binding the contract method 0x9f86dc91. +// +// Solidity: function parseJsonBool(string json, string key) pure returns(bool) +func (_VmSafe *VmSafeCaller) ParseJsonBool(opts *bind.CallOpts, json string, key string) (bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonBool", json, key) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ParseJsonBool is a free data retrieval call binding the contract method 0x9f86dc91. +// +// Solidity: function parseJsonBool(string json, string key) pure returns(bool) +func (_VmSafe *VmSafeSession) ParseJsonBool(json string, key string) (bool, error) { + return _VmSafe.Contract.ParseJsonBool(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBool is a free data retrieval call binding the contract method 0x9f86dc91. +// +// Solidity: function parseJsonBool(string json, string key) pure returns(bool) +func (_VmSafe *VmSafeCallerSession) ParseJsonBool(json string, key string) (bool, error) { + return _VmSafe.Contract.ParseJsonBool(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBoolArray is a free data retrieval call binding the contract method 0x91f3b94f. +// +// Solidity: function parseJsonBoolArray(string json, string key) pure returns(bool[]) +func (_VmSafe *VmSafeCaller) ParseJsonBoolArray(opts *bind.CallOpts, json string, key string) ([]bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonBoolArray", json, key) + + if err != nil { + return *new([]bool), err + } + + out0 := *abi.ConvertType(out[0], new([]bool)).(*[]bool) + + return out0, err + +} + +// ParseJsonBoolArray is a free data retrieval call binding the contract method 0x91f3b94f. +// +// Solidity: function parseJsonBoolArray(string json, string key) pure returns(bool[]) +func (_VmSafe *VmSafeSession) ParseJsonBoolArray(json string, key string) ([]bool, error) { + return _VmSafe.Contract.ParseJsonBoolArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBoolArray is a free data retrieval call binding the contract method 0x91f3b94f. +// +// Solidity: function parseJsonBoolArray(string json, string key) pure returns(bool[]) +func (_VmSafe *VmSafeCallerSession) ParseJsonBoolArray(json string, key string) ([]bool, error) { + return _VmSafe.Contract.ParseJsonBoolArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBytes is a free data retrieval call binding the contract method 0xfd921be8. +// +// Solidity: function parseJsonBytes(string json, string key) pure returns(bytes) +func (_VmSafe *VmSafeCaller) ParseJsonBytes(opts *bind.CallOpts, json string, key string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonBytes", json, key) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJsonBytes is a free data retrieval call binding the contract method 0xfd921be8. +// +// Solidity: function parseJsonBytes(string json, string key) pure returns(bytes) +func (_VmSafe *VmSafeSession) ParseJsonBytes(json string, key string) ([]byte, error) { + return _VmSafe.Contract.ParseJsonBytes(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBytes is a free data retrieval call binding the contract method 0xfd921be8. +// +// Solidity: function parseJsonBytes(string json, string key) pure returns(bytes) +func (_VmSafe *VmSafeCallerSession) ParseJsonBytes(json string, key string) ([]byte, error) { + return _VmSafe.Contract.ParseJsonBytes(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBytes32 is a free data retrieval call binding the contract method 0x1777e59d. +// +// Solidity: function parseJsonBytes32(string json, string key) pure returns(bytes32) +func (_VmSafe *VmSafeCaller) ParseJsonBytes32(opts *bind.CallOpts, json string, key string) ([32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonBytes32", json, key) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ParseJsonBytes32 is a free data retrieval call binding the contract method 0x1777e59d. +// +// Solidity: function parseJsonBytes32(string json, string key) pure returns(bytes32) +func (_VmSafe *VmSafeSession) ParseJsonBytes32(json string, key string) ([32]byte, error) { + return _VmSafe.Contract.ParseJsonBytes32(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBytes32 is a free data retrieval call binding the contract method 0x1777e59d. +// +// Solidity: function parseJsonBytes32(string json, string key) pure returns(bytes32) +func (_VmSafe *VmSafeCallerSession) ParseJsonBytes32(json string, key string) ([32]byte, error) { + return _VmSafe.Contract.ParseJsonBytes32(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBytes32Array is a free data retrieval call binding the contract method 0x91c75bc3. +// +// Solidity: function parseJsonBytes32Array(string json, string key) pure returns(bytes32[]) +func (_VmSafe *VmSafeCaller) ParseJsonBytes32Array(opts *bind.CallOpts, json string, key string) ([][32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonBytes32Array", json, key) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ParseJsonBytes32Array is a free data retrieval call binding the contract method 0x91c75bc3. +// +// Solidity: function parseJsonBytes32Array(string json, string key) pure returns(bytes32[]) +func (_VmSafe *VmSafeSession) ParseJsonBytes32Array(json string, key string) ([][32]byte, error) { + return _VmSafe.Contract.ParseJsonBytes32Array(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBytes32Array is a free data retrieval call binding the contract method 0x91c75bc3. +// +// Solidity: function parseJsonBytes32Array(string json, string key) pure returns(bytes32[]) +func (_VmSafe *VmSafeCallerSession) ParseJsonBytes32Array(json string, key string) ([][32]byte, error) { + return _VmSafe.Contract.ParseJsonBytes32Array(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBytesArray is a free data retrieval call binding the contract method 0x6631aa99. +// +// Solidity: function parseJsonBytesArray(string json, string key) pure returns(bytes[]) +func (_VmSafe *VmSafeCaller) ParseJsonBytesArray(opts *bind.CallOpts, json string, key string) ([][]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonBytesArray", json, key) + + if err != nil { + return *new([][]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][]byte)).(*[][]byte) + + return out0, err + +} + +// ParseJsonBytesArray is a free data retrieval call binding the contract method 0x6631aa99. +// +// Solidity: function parseJsonBytesArray(string json, string key) pure returns(bytes[]) +func (_VmSafe *VmSafeSession) ParseJsonBytesArray(json string, key string) ([][]byte, error) { + return _VmSafe.Contract.ParseJsonBytesArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonBytesArray is a free data retrieval call binding the contract method 0x6631aa99. +// +// Solidity: function parseJsonBytesArray(string json, string key) pure returns(bytes[]) +func (_VmSafe *VmSafeCallerSession) ParseJsonBytesArray(json string, key string) ([][]byte, error) { + return _VmSafe.Contract.ParseJsonBytesArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonInt is a free data retrieval call binding the contract method 0x7b048ccd. +// +// Solidity: function parseJsonInt(string json, string key) pure returns(int256) +func (_VmSafe *VmSafeCaller) ParseJsonInt(opts *bind.CallOpts, json string, key string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonInt", json, key) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseJsonInt is a free data retrieval call binding the contract method 0x7b048ccd. +// +// Solidity: function parseJsonInt(string json, string key) pure returns(int256) +func (_VmSafe *VmSafeSession) ParseJsonInt(json string, key string) (*big.Int, error) { + return _VmSafe.Contract.ParseJsonInt(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonInt is a free data retrieval call binding the contract method 0x7b048ccd. +// +// Solidity: function parseJsonInt(string json, string key) pure returns(int256) +func (_VmSafe *VmSafeCallerSession) ParseJsonInt(json string, key string) (*big.Int, error) { + return _VmSafe.Contract.ParseJsonInt(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonIntArray is a free data retrieval call binding the contract method 0x9983c28a. +// +// Solidity: function parseJsonIntArray(string json, string key) pure returns(int256[]) +func (_VmSafe *VmSafeCaller) ParseJsonIntArray(opts *bind.CallOpts, json string, key string) ([]*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonIntArray", json, key) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ParseJsonIntArray is a free data retrieval call binding the contract method 0x9983c28a. +// +// Solidity: function parseJsonIntArray(string json, string key) pure returns(int256[]) +func (_VmSafe *VmSafeSession) ParseJsonIntArray(json string, key string) ([]*big.Int, error) { + return _VmSafe.Contract.ParseJsonIntArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonIntArray is a free data retrieval call binding the contract method 0x9983c28a. +// +// Solidity: function parseJsonIntArray(string json, string key) pure returns(int256[]) +func (_VmSafe *VmSafeCallerSession) ParseJsonIntArray(json string, key string) ([]*big.Int, error) { + return _VmSafe.Contract.ParseJsonIntArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonKeys is a free data retrieval call binding the contract method 0x213e4198. +// +// Solidity: function parseJsonKeys(string json, string key) pure returns(string[] keys) +func (_VmSafe *VmSafeCaller) ParseJsonKeys(opts *bind.CallOpts, json string, key string) ([]string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonKeys", json, key) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ParseJsonKeys is a free data retrieval call binding the contract method 0x213e4198. +// +// Solidity: function parseJsonKeys(string json, string key) pure returns(string[] keys) +func (_VmSafe *VmSafeSession) ParseJsonKeys(json string, key string) ([]string, error) { + return _VmSafe.Contract.ParseJsonKeys(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonKeys is a free data retrieval call binding the contract method 0x213e4198. +// +// Solidity: function parseJsonKeys(string json, string key) pure returns(string[] keys) +func (_VmSafe *VmSafeCallerSession) ParseJsonKeys(json string, key string) ([]string, error) { + return _VmSafe.Contract.ParseJsonKeys(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonString is a free data retrieval call binding the contract method 0x49c4fac8. +// +// Solidity: function parseJsonString(string json, string key) pure returns(string) +func (_VmSafe *VmSafeCaller) ParseJsonString(opts *bind.CallOpts, json string, key string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonString", json, key) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ParseJsonString is a free data retrieval call binding the contract method 0x49c4fac8. +// +// Solidity: function parseJsonString(string json, string key) pure returns(string) +func (_VmSafe *VmSafeSession) ParseJsonString(json string, key string) (string, error) { + return _VmSafe.Contract.ParseJsonString(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonString is a free data retrieval call binding the contract method 0x49c4fac8. +// +// Solidity: function parseJsonString(string json, string key) pure returns(string) +func (_VmSafe *VmSafeCallerSession) ParseJsonString(json string, key string) (string, error) { + return _VmSafe.Contract.ParseJsonString(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonStringArray is a free data retrieval call binding the contract method 0x498fdcf4. +// +// Solidity: function parseJsonStringArray(string json, string key) pure returns(string[]) +func (_VmSafe *VmSafeCaller) ParseJsonStringArray(opts *bind.CallOpts, json string, key string) ([]string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonStringArray", json, key) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ParseJsonStringArray is a free data retrieval call binding the contract method 0x498fdcf4. +// +// Solidity: function parseJsonStringArray(string json, string key) pure returns(string[]) +func (_VmSafe *VmSafeSession) ParseJsonStringArray(json string, key string) ([]string, error) { + return _VmSafe.Contract.ParseJsonStringArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonStringArray is a free data retrieval call binding the contract method 0x498fdcf4. +// +// Solidity: function parseJsonStringArray(string json, string key) pure returns(string[]) +func (_VmSafe *VmSafeCallerSession) ParseJsonStringArray(json string, key string) ([]string, error) { + return _VmSafe.Contract.ParseJsonStringArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonType is a free data retrieval call binding the contract method 0xa9da313b. +// +// Solidity: function parseJsonType(string json, string typeDescription) pure returns(bytes) +func (_VmSafe *VmSafeCaller) ParseJsonType(opts *bind.CallOpts, json string, typeDescription string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonType", json, typeDescription) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJsonType is a free data retrieval call binding the contract method 0xa9da313b. +// +// Solidity: function parseJsonType(string json, string typeDescription) pure returns(bytes) +func (_VmSafe *VmSafeSession) ParseJsonType(json string, typeDescription string) ([]byte, error) { + return _VmSafe.Contract.ParseJsonType(&_VmSafe.CallOpts, json, typeDescription) +} + +// ParseJsonType is a free data retrieval call binding the contract method 0xa9da313b. +// +// Solidity: function parseJsonType(string json, string typeDescription) pure returns(bytes) +func (_VmSafe *VmSafeCallerSession) ParseJsonType(json string, typeDescription string) ([]byte, error) { + return _VmSafe.Contract.ParseJsonType(&_VmSafe.CallOpts, json, typeDescription) +} + +// ParseJsonType0 is a free data retrieval call binding the contract method 0xe3f5ae33. +// +// Solidity: function parseJsonType(string json, string key, string typeDescription) pure returns(bytes) +func (_VmSafe *VmSafeCaller) ParseJsonType0(opts *bind.CallOpts, json string, key string, typeDescription string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonType0", json, key, typeDescription) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJsonType0 is a free data retrieval call binding the contract method 0xe3f5ae33. +// +// Solidity: function parseJsonType(string json, string key, string typeDescription) pure returns(bytes) +func (_VmSafe *VmSafeSession) ParseJsonType0(json string, key string, typeDescription string) ([]byte, error) { + return _VmSafe.Contract.ParseJsonType0(&_VmSafe.CallOpts, json, key, typeDescription) +} + +// ParseJsonType0 is a free data retrieval call binding the contract method 0xe3f5ae33. +// +// Solidity: function parseJsonType(string json, string key, string typeDescription) pure returns(bytes) +func (_VmSafe *VmSafeCallerSession) ParseJsonType0(json string, key string, typeDescription string) ([]byte, error) { + return _VmSafe.Contract.ParseJsonType0(&_VmSafe.CallOpts, json, key, typeDescription) +} + +// ParseJsonTypeArray is a free data retrieval call binding the contract method 0x0175d535. +// +// Solidity: function parseJsonTypeArray(string json, string key, string typeDescription) pure returns(bytes) +func (_VmSafe *VmSafeCaller) ParseJsonTypeArray(opts *bind.CallOpts, json string, key string, typeDescription string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonTypeArray", json, key, typeDescription) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseJsonTypeArray is a free data retrieval call binding the contract method 0x0175d535. +// +// Solidity: function parseJsonTypeArray(string json, string key, string typeDescription) pure returns(bytes) +func (_VmSafe *VmSafeSession) ParseJsonTypeArray(json string, key string, typeDescription string) ([]byte, error) { + return _VmSafe.Contract.ParseJsonTypeArray(&_VmSafe.CallOpts, json, key, typeDescription) +} + +// ParseJsonTypeArray is a free data retrieval call binding the contract method 0x0175d535. +// +// Solidity: function parseJsonTypeArray(string json, string key, string typeDescription) pure returns(bytes) +func (_VmSafe *VmSafeCallerSession) ParseJsonTypeArray(json string, key string, typeDescription string) ([]byte, error) { + return _VmSafe.Contract.ParseJsonTypeArray(&_VmSafe.CallOpts, json, key, typeDescription) +} + +// ParseJsonUint is a free data retrieval call binding the contract method 0xaddde2b6. +// +// Solidity: function parseJsonUint(string json, string key) pure returns(uint256) +func (_VmSafe *VmSafeCaller) ParseJsonUint(opts *bind.CallOpts, json string, key string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonUint", json, key) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseJsonUint is a free data retrieval call binding the contract method 0xaddde2b6. +// +// Solidity: function parseJsonUint(string json, string key) pure returns(uint256) +func (_VmSafe *VmSafeSession) ParseJsonUint(json string, key string) (*big.Int, error) { + return _VmSafe.Contract.ParseJsonUint(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonUint is a free data retrieval call binding the contract method 0xaddde2b6. +// +// Solidity: function parseJsonUint(string json, string key) pure returns(uint256) +func (_VmSafe *VmSafeCallerSession) ParseJsonUint(json string, key string) (*big.Int, error) { + return _VmSafe.Contract.ParseJsonUint(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonUintArray is a free data retrieval call binding the contract method 0x522074ab. +// +// Solidity: function parseJsonUintArray(string json, string key) pure returns(uint256[]) +func (_VmSafe *VmSafeCaller) ParseJsonUintArray(opts *bind.CallOpts, json string, key string) ([]*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseJsonUintArray", json, key) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ParseJsonUintArray is a free data retrieval call binding the contract method 0x522074ab. +// +// Solidity: function parseJsonUintArray(string json, string key) pure returns(uint256[]) +func (_VmSafe *VmSafeSession) ParseJsonUintArray(json string, key string) ([]*big.Int, error) { + return _VmSafe.Contract.ParseJsonUintArray(&_VmSafe.CallOpts, json, key) +} + +// ParseJsonUintArray is a free data retrieval call binding the contract method 0x522074ab. +// +// Solidity: function parseJsonUintArray(string json, string key) pure returns(uint256[]) +func (_VmSafe *VmSafeCallerSession) ParseJsonUintArray(json string, key string) ([]*big.Int, error) { + return _VmSafe.Contract.ParseJsonUintArray(&_VmSafe.CallOpts, json, key) +} + +// ParseToml is a free data retrieval call binding the contract method 0x37736e08. +// +// Solidity: function parseToml(string toml, string key) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeCaller) ParseToml(opts *bind.CallOpts, toml string, key string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseToml", toml, key) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseToml is a free data retrieval call binding the contract method 0x37736e08. +// +// Solidity: function parseToml(string toml, string key) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeSession) ParseToml(toml string, key string) ([]byte, error) { + return _VmSafe.Contract.ParseToml(&_VmSafe.CallOpts, toml, key) +} + +// ParseToml is a free data retrieval call binding the contract method 0x37736e08. +// +// Solidity: function parseToml(string toml, string key) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeCallerSession) ParseToml(toml string, key string) ([]byte, error) { + return _VmSafe.Contract.ParseToml(&_VmSafe.CallOpts, toml, key) +} + +// ParseToml0 is a free data retrieval call binding the contract method 0x592151f0. +// +// Solidity: function parseToml(string toml) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeCaller) ParseToml0(opts *bind.CallOpts, toml string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseToml0", toml) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseToml0 is a free data retrieval call binding the contract method 0x592151f0. +// +// Solidity: function parseToml(string toml) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeSession) ParseToml0(toml string) ([]byte, error) { + return _VmSafe.Contract.ParseToml0(&_VmSafe.CallOpts, toml) +} + +// ParseToml0 is a free data retrieval call binding the contract method 0x592151f0. +// +// Solidity: function parseToml(string toml) pure returns(bytes abiEncodedData) +func (_VmSafe *VmSafeCallerSession) ParseToml0(toml string) ([]byte, error) { + return _VmSafe.Contract.ParseToml0(&_VmSafe.CallOpts, toml) +} + +// ParseTomlAddress is a free data retrieval call binding the contract method 0x65e7c844. +// +// Solidity: function parseTomlAddress(string toml, string key) pure returns(address) +func (_VmSafe *VmSafeCaller) ParseTomlAddress(opts *bind.CallOpts, toml string, key string) (common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlAddress", toml, key) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ParseTomlAddress is a free data retrieval call binding the contract method 0x65e7c844. +// +// Solidity: function parseTomlAddress(string toml, string key) pure returns(address) +func (_VmSafe *VmSafeSession) ParseTomlAddress(toml string, key string) (common.Address, error) { + return _VmSafe.Contract.ParseTomlAddress(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlAddress is a free data retrieval call binding the contract method 0x65e7c844. +// +// Solidity: function parseTomlAddress(string toml, string key) pure returns(address) +func (_VmSafe *VmSafeCallerSession) ParseTomlAddress(toml string, key string) (common.Address, error) { + return _VmSafe.Contract.ParseTomlAddress(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlAddressArray is a free data retrieval call binding the contract method 0x65c428e7. +// +// Solidity: function parseTomlAddressArray(string toml, string key) pure returns(address[]) +func (_VmSafe *VmSafeCaller) ParseTomlAddressArray(opts *bind.CallOpts, toml string, key string) ([]common.Address, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlAddressArray", toml, key) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ParseTomlAddressArray is a free data retrieval call binding the contract method 0x65c428e7. +// +// Solidity: function parseTomlAddressArray(string toml, string key) pure returns(address[]) +func (_VmSafe *VmSafeSession) ParseTomlAddressArray(toml string, key string) ([]common.Address, error) { + return _VmSafe.Contract.ParseTomlAddressArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlAddressArray is a free data retrieval call binding the contract method 0x65c428e7. +// +// Solidity: function parseTomlAddressArray(string toml, string key) pure returns(address[]) +func (_VmSafe *VmSafeCallerSession) ParseTomlAddressArray(toml string, key string) ([]common.Address, error) { + return _VmSafe.Contract.ParseTomlAddressArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBool is a free data retrieval call binding the contract method 0xd30dced6. +// +// Solidity: function parseTomlBool(string toml, string key) pure returns(bool) +func (_VmSafe *VmSafeCaller) ParseTomlBool(opts *bind.CallOpts, toml string, key string) (bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlBool", toml, key) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ParseTomlBool is a free data retrieval call binding the contract method 0xd30dced6. +// +// Solidity: function parseTomlBool(string toml, string key) pure returns(bool) +func (_VmSafe *VmSafeSession) ParseTomlBool(toml string, key string) (bool, error) { + return _VmSafe.Contract.ParseTomlBool(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBool is a free data retrieval call binding the contract method 0xd30dced6. +// +// Solidity: function parseTomlBool(string toml, string key) pure returns(bool) +func (_VmSafe *VmSafeCallerSession) ParseTomlBool(toml string, key string) (bool, error) { + return _VmSafe.Contract.ParseTomlBool(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBoolArray is a free data retrieval call binding the contract method 0x127cfe9a. +// +// Solidity: function parseTomlBoolArray(string toml, string key) pure returns(bool[]) +func (_VmSafe *VmSafeCaller) ParseTomlBoolArray(opts *bind.CallOpts, toml string, key string) ([]bool, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlBoolArray", toml, key) + + if err != nil { + return *new([]bool), err + } + + out0 := *abi.ConvertType(out[0], new([]bool)).(*[]bool) + + return out0, err + +} + +// ParseTomlBoolArray is a free data retrieval call binding the contract method 0x127cfe9a. +// +// Solidity: function parseTomlBoolArray(string toml, string key) pure returns(bool[]) +func (_VmSafe *VmSafeSession) ParseTomlBoolArray(toml string, key string) ([]bool, error) { + return _VmSafe.Contract.ParseTomlBoolArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBoolArray is a free data retrieval call binding the contract method 0x127cfe9a. +// +// Solidity: function parseTomlBoolArray(string toml, string key) pure returns(bool[]) +func (_VmSafe *VmSafeCallerSession) ParseTomlBoolArray(toml string, key string) ([]bool, error) { + return _VmSafe.Contract.ParseTomlBoolArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBytes is a free data retrieval call binding the contract method 0xd77bfdb9. +// +// Solidity: function parseTomlBytes(string toml, string key) pure returns(bytes) +func (_VmSafe *VmSafeCaller) ParseTomlBytes(opts *bind.CallOpts, toml string, key string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlBytes", toml, key) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ParseTomlBytes is a free data retrieval call binding the contract method 0xd77bfdb9. +// +// Solidity: function parseTomlBytes(string toml, string key) pure returns(bytes) +func (_VmSafe *VmSafeSession) ParseTomlBytes(toml string, key string) ([]byte, error) { + return _VmSafe.Contract.ParseTomlBytes(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBytes is a free data retrieval call binding the contract method 0xd77bfdb9. +// +// Solidity: function parseTomlBytes(string toml, string key) pure returns(bytes) +func (_VmSafe *VmSafeCallerSession) ParseTomlBytes(toml string, key string) ([]byte, error) { + return _VmSafe.Contract.ParseTomlBytes(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBytes32 is a free data retrieval call binding the contract method 0x8e214810. +// +// Solidity: function parseTomlBytes32(string toml, string key) pure returns(bytes32) +func (_VmSafe *VmSafeCaller) ParseTomlBytes32(opts *bind.CallOpts, toml string, key string) ([32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlBytes32", toml, key) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ParseTomlBytes32 is a free data retrieval call binding the contract method 0x8e214810. +// +// Solidity: function parseTomlBytes32(string toml, string key) pure returns(bytes32) +func (_VmSafe *VmSafeSession) ParseTomlBytes32(toml string, key string) ([32]byte, error) { + return _VmSafe.Contract.ParseTomlBytes32(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBytes32 is a free data retrieval call binding the contract method 0x8e214810. +// +// Solidity: function parseTomlBytes32(string toml, string key) pure returns(bytes32) +func (_VmSafe *VmSafeCallerSession) ParseTomlBytes32(toml string, key string) ([32]byte, error) { + return _VmSafe.Contract.ParseTomlBytes32(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBytes32Array is a free data retrieval call binding the contract method 0x3e716f81. +// +// Solidity: function parseTomlBytes32Array(string toml, string key) pure returns(bytes32[]) +func (_VmSafe *VmSafeCaller) ParseTomlBytes32Array(opts *bind.CallOpts, toml string, key string) ([][32]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlBytes32Array", toml, key) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ParseTomlBytes32Array is a free data retrieval call binding the contract method 0x3e716f81. +// +// Solidity: function parseTomlBytes32Array(string toml, string key) pure returns(bytes32[]) +func (_VmSafe *VmSafeSession) ParseTomlBytes32Array(toml string, key string) ([][32]byte, error) { + return _VmSafe.Contract.ParseTomlBytes32Array(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBytes32Array is a free data retrieval call binding the contract method 0x3e716f81. +// +// Solidity: function parseTomlBytes32Array(string toml, string key) pure returns(bytes32[]) +func (_VmSafe *VmSafeCallerSession) ParseTomlBytes32Array(toml string, key string) ([][32]byte, error) { + return _VmSafe.Contract.ParseTomlBytes32Array(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBytesArray is a free data retrieval call binding the contract method 0xb197c247. +// +// Solidity: function parseTomlBytesArray(string toml, string key) pure returns(bytes[]) +func (_VmSafe *VmSafeCaller) ParseTomlBytesArray(opts *bind.CallOpts, toml string, key string) ([][]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlBytesArray", toml, key) + + if err != nil { + return *new([][]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][]byte)).(*[][]byte) + + return out0, err + +} + +// ParseTomlBytesArray is a free data retrieval call binding the contract method 0xb197c247. +// +// Solidity: function parseTomlBytesArray(string toml, string key) pure returns(bytes[]) +func (_VmSafe *VmSafeSession) ParseTomlBytesArray(toml string, key string) ([][]byte, error) { + return _VmSafe.Contract.ParseTomlBytesArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlBytesArray is a free data retrieval call binding the contract method 0xb197c247. +// +// Solidity: function parseTomlBytesArray(string toml, string key) pure returns(bytes[]) +func (_VmSafe *VmSafeCallerSession) ParseTomlBytesArray(toml string, key string) ([][]byte, error) { + return _VmSafe.Contract.ParseTomlBytesArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlInt is a free data retrieval call binding the contract method 0xc1350739. +// +// Solidity: function parseTomlInt(string toml, string key) pure returns(int256) +func (_VmSafe *VmSafeCaller) ParseTomlInt(opts *bind.CallOpts, toml string, key string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlInt", toml, key) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseTomlInt is a free data retrieval call binding the contract method 0xc1350739. +// +// Solidity: function parseTomlInt(string toml, string key) pure returns(int256) +func (_VmSafe *VmSafeSession) ParseTomlInt(toml string, key string) (*big.Int, error) { + return _VmSafe.Contract.ParseTomlInt(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlInt is a free data retrieval call binding the contract method 0xc1350739. +// +// Solidity: function parseTomlInt(string toml, string key) pure returns(int256) +func (_VmSafe *VmSafeCallerSession) ParseTomlInt(toml string, key string) (*big.Int, error) { + return _VmSafe.Contract.ParseTomlInt(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlIntArray is a free data retrieval call binding the contract method 0xd3522ae6. +// +// Solidity: function parseTomlIntArray(string toml, string key) pure returns(int256[]) +func (_VmSafe *VmSafeCaller) ParseTomlIntArray(opts *bind.CallOpts, toml string, key string) ([]*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlIntArray", toml, key) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ParseTomlIntArray is a free data retrieval call binding the contract method 0xd3522ae6. +// +// Solidity: function parseTomlIntArray(string toml, string key) pure returns(int256[]) +func (_VmSafe *VmSafeSession) ParseTomlIntArray(toml string, key string) ([]*big.Int, error) { + return _VmSafe.Contract.ParseTomlIntArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlIntArray is a free data retrieval call binding the contract method 0xd3522ae6. +// +// Solidity: function parseTomlIntArray(string toml, string key) pure returns(int256[]) +func (_VmSafe *VmSafeCallerSession) ParseTomlIntArray(toml string, key string) ([]*big.Int, error) { + return _VmSafe.Contract.ParseTomlIntArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlKeys is a free data retrieval call binding the contract method 0x812a44b2. +// +// Solidity: function parseTomlKeys(string toml, string key) pure returns(string[] keys) +func (_VmSafe *VmSafeCaller) ParseTomlKeys(opts *bind.CallOpts, toml string, key string) ([]string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlKeys", toml, key) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ParseTomlKeys is a free data retrieval call binding the contract method 0x812a44b2. +// +// Solidity: function parseTomlKeys(string toml, string key) pure returns(string[] keys) +func (_VmSafe *VmSafeSession) ParseTomlKeys(toml string, key string) ([]string, error) { + return _VmSafe.Contract.ParseTomlKeys(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlKeys is a free data retrieval call binding the contract method 0x812a44b2. +// +// Solidity: function parseTomlKeys(string toml, string key) pure returns(string[] keys) +func (_VmSafe *VmSafeCallerSession) ParseTomlKeys(toml string, key string) ([]string, error) { + return _VmSafe.Contract.ParseTomlKeys(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlString is a free data retrieval call binding the contract method 0x8bb8dd43. +// +// Solidity: function parseTomlString(string toml, string key) pure returns(string) +func (_VmSafe *VmSafeCaller) ParseTomlString(opts *bind.CallOpts, toml string, key string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlString", toml, key) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ParseTomlString is a free data retrieval call binding the contract method 0x8bb8dd43. +// +// Solidity: function parseTomlString(string toml, string key) pure returns(string) +func (_VmSafe *VmSafeSession) ParseTomlString(toml string, key string) (string, error) { + return _VmSafe.Contract.ParseTomlString(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlString is a free data retrieval call binding the contract method 0x8bb8dd43. +// +// Solidity: function parseTomlString(string toml, string key) pure returns(string) +func (_VmSafe *VmSafeCallerSession) ParseTomlString(toml string, key string) (string, error) { + return _VmSafe.Contract.ParseTomlString(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlStringArray is a free data retrieval call binding the contract method 0x9f629281. +// +// Solidity: function parseTomlStringArray(string toml, string key) pure returns(string[]) +func (_VmSafe *VmSafeCaller) ParseTomlStringArray(opts *bind.CallOpts, toml string, key string) ([]string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlStringArray", toml, key) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ParseTomlStringArray is a free data retrieval call binding the contract method 0x9f629281. +// +// Solidity: function parseTomlStringArray(string toml, string key) pure returns(string[]) +func (_VmSafe *VmSafeSession) ParseTomlStringArray(toml string, key string) ([]string, error) { + return _VmSafe.Contract.ParseTomlStringArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlStringArray is a free data retrieval call binding the contract method 0x9f629281. +// +// Solidity: function parseTomlStringArray(string toml, string key) pure returns(string[]) +func (_VmSafe *VmSafeCallerSession) ParseTomlStringArray(toml string, key string) ([]string, error) { + return _VmSafe.Contract.ParseTomlStringArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlUint is a free data retrieval call binding the contract method 0xcc7b0487. +// +// Solidity: function parseTomlUint(string toml, string key) pure returns(uint256) +func (_VmSafe *VmSafeCaller) ParseTomlUint(opts *bind.CallOpts, toml string, key string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlUint", toml, key) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseTomlUint is a free data retrieval call binding the contract method 0xcc7b0487. +// +// Solidity: function parseTomlUint(string toml, string key) pure returns(uint256) +func (_VmSafe *VmSafeSession) ParseTomlUint(toml string, key string) (*big.Int, error) { + return _VmSafe.Contract.ParseTomlUint(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlUint is a free data retrieval call binding the contract method 0xcc7b0487. +// +// Solidity: function parseTomlUint(string toml, string key) pure returns(uint256) +func (_VmSafe *VmSafeCallerSession) ParseTomlUint(toml string, key string) (*big.Int, error) { + return _VmSafe.Contract.ParseTomlUint(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlUintArray is a free data retrieval call binding the contract method 0xb5df27c8. +// +// Solidity: function parseTomlUintArray(string toml, string key) pure returns(uint256[]) +func (_VmSafe *VmSafeCaller) ParseTomlUintArray(opts *bind.CallOpts, toml string, key string) ([]*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseTomlUintArray", toml, key) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ParseTomlUintArray is a free data retrieval call binding the contract method 0xb5df27c8. +// +// Solidity: function parseTomlUintArray(string toml, string key) pure returns(uint256[]) +func (_VmSafe *VmSafeSession) ParseTomlUintArray(toml string, key string) ([]*big.Int, error) { + return _VmSafe.Contract.ParseTomlUintArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseTomlUintArray is a free data retrieval call binding the contract method 0xb5df27c8. +// +// Solidity: function parseTomlUintArray(string toml, string key) pure returns(uint256[]) +func (_VmSafe *VmSafeCallerSession) ParseTomlUintArray(toml string, key string) ([]*big.Int, error) { + return _VmSafe.Contract.ParseTomlUintArray(&_VmSafe.CallOpts, toml, key) +} + +// ParseUint is a free data retrieval call binding the contract method 0xfa91454d. +// +// Solidity: function parseUint(string stringifiedValue) pure returns(uint256 parsedValue) +func (_VmSafe *VmSafeCaller) ParseUint(opts *bind.CallOpts, stringifiedValue string) (*big.Int, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "parseUint", stringifiedValue) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ParseUint is a free data retrieval call binding the contract method 0xfa91454d. +// +// Solidity: function parseUint(string stringifiedValue) pure returns(uint256 parsedValue) +func (_VmSafe *VmSafeSession) ParseUint(stringifiedValue string) (*big.Int, error) { + return _VmSafe.Contract.ParseUint(&_VmSafe.CallOpts, stringifiedValue) +} + +// ParseUint is a free data retrieval call binding the contract method 0xfa91454d. +// +// Solidity: function parseUint(string stringifiedValue) pure returns(uint256 parsedValue) +func (_VmSafe *VmSafeCallerSession) ParseUint(stringifiedValue string) (*big.Int, error) { + return _VmSafe.Contract.ParseUint(&_VmSafe.CallOpts, stringifiedValue) +} + +// ProjectRoot is a free data retrieval call binding the contract method 0xd930a0e6. +// +// Solidity: function projectRoot() view returns(string path) +func (_VmSafe *VmSafeCaller) ProjectRoot(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "projectRoot") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ProjectRoot is a free data retrieval call binding the contract method 0xd930a0e6. +// +// Solidity: function projectRoot() view returns(string path) +func (_VmSafe *VmSafeSession) ProjectRoot() (string, error) { + return _VmSafe.Contract.ProjectRoot(&_VmSafe.CallOpts) +} + +// ProjectRoot is a free data retrieval call binding the contract method 0xd930a0e6. +// +// Solidity: function projectRoot() view returns(string path) +func (_VmSafe *VmSafeCallerSession) ProjectRoot() (string, error) { + return _VmSafe.Contract.ProjectRoot(&_VmSafe.CallOpts) +} + +// ReadDir is a free data retrieval call binding the contract method 0x1497876c. +// +// Solidity: function readDir(string path, uint64 maxDepth) view returns((string,string,uint64,bool,bool)[] entries) +func (_VmSafe *VmSafeCaller) ReadDir(opts *bind.CallOpts, path string, maxDepth uint64) ([]VmSafeDirEntry, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "readDir", path, maxDepth) + + if err != nil { + return *new([]VmSafeDirEntry), err + } + + out0 := *abi.ConvertType(out[0], new([]VmSafeDirEntry)).(*[]VmSafeDirEntry) + + return out0, err + +} + +// ReadDir is a free data retrieval call binding the contract method 0x1497876c. +// +// Solidity: function readDir(string path, uint64 maxDepth) view returns((string,string,uint64,bool,bool)[] entries) +func (_VmSafe *VmSafeSession) ReadDir(path string, maxDepth uint64) ([]VmSafeDirEntry, error) { + return _VmSafe.Contract.ReadDir(&_VmSafe.CallOpts, path, maxDepth) +} + +// ReadDir is a free data retrieval call binding the contract method 0x1497876c. +// +// Solidity: function readDir(string path, uint64 maxDepth) view returns((string,string,uint64,bool,bool)[] entries) +func (_VmSafe *VmSafeCallerSession) ReadDir(path string, maxDepth uint64) ([]VmSafeDirEntry, error) { + return _VmSafe.Contract.ReadDir(&_VmSafe.CallOpts, path, maxDepth) +} + +// ReadDir0 is a free data retrieval call binding the contract method 0x8102d70d. +// +// Solidity: function readDir(string path, uint64 maxDepth, bool followLinks) view returns((string,string,uint64,bool,bool)[] entries) +func (_VmSafe *VmSafeCaller) ReadDir0(opts *bind.CallOpts, path string, maxDepth uint64, followLinks bool) ([]VmSafeDirEntry, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "readDir0", path, maxDepth, followLinks) + + if err != nil { + return *new([]VmSafeDirEntry), err + } + + out0 := *abi.ConvertType(out[0], new([]VmSafeDirEntry)).(*[]VmSafeDirEntry) + + return out0, err + +} + +// ReadDir0 is a free data retrieval call binding the contract method 0x8102d70d. +// +// Solidity: function readDir(string path, uint64 maxDepth, bool followLinks) view returns((string,string,uint64,bool,bool)[] entries) +func (_VmSafe *VmSafeSession) ReadDir0(path string, maxDepth uint64, followLinks bool) ([]VmSafeDirEntry, error) { + return _VmSafe.Contract.ReadDir0(&_VmSafe.CallOpts, path, maxDepth, followLinks) +} + +// ReadDir0 is a free data retrieval call binding the contract method 0x8102d70d. +// +// Solidity: function readDir(string path, uint64 maxDepth, bool followLinks) view returns((string,string,uint64,bool,bool)[] entries) +func (_VmSafe *VmSafeCallerSession) ReadDir0(path string, maxDepth uint64, followLinks bool) ([]VmSafeDirEntry, error) { + return _VmSafe.Contract.ReadDir0(&_VmSafe.CallOpts, path, maxDepth, followLinks) +} + +// ReadDir1 is a free data retrieval call binding the contract method 0xc4bc59e0. +// +// Solidity: function readDir(string path) view returns((string,string,uint64,bool,bool)[] entries) +func (_VmSafe *VmSafeCaller) ReadDir1(opts *bind.CallOpts, path string) ([]VmSafeDirEntry, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "readDir1", path) + + if err != nil { + return *new([]VmSafeDirEntry), err + } + + out0 := *abi.ConvertType(out[0], new([]VmSafeDirEntry)).(*[]VmSafeDirEntry) + + return out0, err + +} + +// ReadDir1 is a free data retrieval call binding the contract method 0xc4bc59e0. +// +// Solidity: function readDir(string path) view returns((string,string,uint64,bool,bool)[] entries) +func (_VmSafe *VmSafeSession) ReadDir1(path string) ([]VmSafeDirEntry, error) { + return _VmSafe.Contract.ReadDir1(&_VmSafe.CallOpts, path) +} + +// ReadDir1 is a free data retrieval call binding the contract method 0xc4bc59e0. +// +// Solidity: function readDir(string path) view returns((string,string,uint64,bool,bool)[] entries) +func (_VmSafe *VmSafeCallerSession) ReadDir1(path string) ([]VmSafeDirEntry, error) { + return _VmSafe.Contract.ReadDir1(&_VmSafe.CallOpts, path) +} + +// ReadFile is a free data retrieval call binding the contract method 0x60f9bb11. +// +// Solidity: function readFile(string path) view returns(string data) +func (_VmSafe *VmSafeCaller) ReadFile(opts *bind.CallOpts, path string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "readFile", path) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ReadFile is a free data retrieval call binding the contract method 0x60f9bb11. +// +// Solidity: function readFile(string path) view returns(string data) +func (_VmSafe *VmSafeSession) ReadFile(path string) (string, error) { + return _VmSafe.Contract.ReadFile(&_VmSafe.CallOpts, path) +} + +// ReadFile is a free data retrieval call binding the contract method 0x60f9bb11. +// +// Solidity: function readFile(string path) view returns(string data) +func (_VmSafe *VmSafeCallerSession) ReadFile(path string) (string, error) { + return _VmSafe.Contract.ReadFile(&_VmSafe.CallOpts, path) +} + +// ReadFileBinary is a free data retrieval call binding the contract method 0x16ed7bc4. +// +// Solidity: function readFileBinary(string path) view returns(bytes data) +func (_VmSafe *VmSafeCaller) ReadFileBinary(opts *bind.CallOpts, path string) ([]byte, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "readFileBinary", path) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// ReadFileBinary is a free data retrieval call binding the contract method 0x16ed7bc4. +// +// Solidity: function readFileBinary(string path) view returns(bytes data) +func (_VmSafe *VmSafeSession) ReadFileBinary(path string) ([]byte, error) { + return _VmSafe.Contract.ReadFileBinary(&_VmSafe.CallOpts, path) +} + +// ReadFileBinary is a free data retrieval call binding the contract method 0x16ed7bc4. +// +// Solidity: function readFileBinary(string path) view returns(bytes data) +func (_VmSafe *VmSafeCallerSession) ReadFileBinary(path string) ([]byte, error) { + return _VmSafe.Contract.ReadFileBinary(&_VmSafe.CallOpts, path) +} + +// ReadLine is a free data retrieval call binding the contract method 0x70f55728. +// +// Solidity: function readLine(string path) view returns(string line) +func (_VmSafe *VmSafeCaller) ReadLine(opts *bind.CallOpts, path string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "readLine", path) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ReadLine is a free data retrieval call binding the contract method 0x70f55728. +// +// Solidity: function readLine(string path) view returns(string line) +func (_VmSafe *VmSafeSession) ReadLine(path string) (string, error) { + return _VmSafe.Contract.ReadLine(&_VmSafe.CallOpts, path) +} + +// ReadLine is a free data retrieval call binding the contract method 0x70f55728. +// +// Solidity: function readLine(string path) view returns(string line) +func (_VmSafe *VmSafeCallerSession) ReadLine(path string) (string, error) { + return _VmSafe.Contract.ReadLine(&_VmSafe.CallOpts, path) +} + +// ReadLink is a free data retrieval call binding the contract method 0x9f5684a2. +// +// Solidity: function readLink(string linkPath) view returns(string targetPath) +func (_VmSafe *VmSafeCaller) ReadLink(opts *bind.CallOpts, linkPath string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "readLink", linkPath) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ReadLink is a free data retrieval call binding the contract method 0x9f5684a2. +// +// Solidity: function readLink(string linkPath) view returns(string targetPath) +func (_VmSafe *VmSafeSession) ReadLink(linkPath string) (string, error) { + return _VmSafe.Contract.ReadLink(&_VmSafe.CallOpts, linkPath) +} + +// ReadLink is a free data retrieval call binding the contract method 0x9f5684a2. +// +// Solidity: function readLink(string linkPath) view returns(string targetPath) +func (_VmSafe *VmSafeCallerSession) ReadLink(linkPath string) (string, error) { + return _VmSafe.Contract.ReadLink(&_VmSafe.CallOpts, linkPath) +} + +// Replace is a free data retrieval call binding the contract method 0xe00ad03e. +// +// Solidity: function replace(string input, string from, string to) pure returns(string output) +func (_VmSafe *VmSafeCaller) Replace(opts *bind.CallOpts, input string, from string, to string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "replace", input, from, to) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Replace is a free data retrieval call binding the contract method 0xe00ad03e. +// +// Solidity: function replace(string input, string from, string to) pure returns(string output) +func (_VmSafe *VmSafeSession) Replace(input string, from string, to string) (string, error) { + return _VmSafe.Contract.Replace(&_VmSafe.CallOpts, input, from, to) +} + +// Replace is a free data retrieval call binding the contract method 0xe00ad03e. +// +// Solidity: function replace(string input, string from, string to) pure returns(string output) +func (_VmSafe *VmSafeCallerSession) Replace(input string, from string, to string) (string, error) { + return _VmSafe.Contract.Replace(&_VmSafe.CallOpts, input, from, to) +} + +// RpcUrl is a free data retrieval call binding the contract method 0x975a6ce9. +// +// Solidity: function rpcUrl(string rpcAlias) view returns(string json) +func (_VmSafe *VmSafeCaller) RpcUrl(opts *bind.CallOpts, rpcAlias string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "rpcUrl", rpcAlias) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// RpcUrl is a free data retrieval call binding the contract method 0x975a6ce9. +// +// Solidity: function rpcUrl(string rpcAlias) view returns(string json) +func (_VmSafe *VmSafeSession) RpcUrl(rpcAlias string) (string, error) { + return _VmSafe.Contract.RpcUrl(&_VmSafe.CallOpts, rpcAlias) +} + +// RpcUrl is a free data retrieval call binding the contract method 0x975a6ce9. +// +// Solidity: function rpcUrl(string rpcAlias) view returns(string json) +func (_VmSafe *VmSafeCallerSession) RpcUrl(rpcAlias string) (string, error) { + return _VmSafe.Contract.RpcUrl(&_VmSafe.CallOpts, rpcAlias) +} + +// RpcUrlStructs is a free data retrieval call binding the contract method 0x9d2ad72a. +// +// Solidity: function rpcUrlStructs() view returns((string,string)[] urls) +func (_VmSafe *VmSafeCaller) RpcUrlStructs(opts *bind.CallOpts) ([]VmSafeRpc, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "rpcUrlStructs") + + if err != nil { + return *new([]VmSafeRpc), err + } + + out0 := *abi.ConvertType(out[0], new([]VmSafeRpc)).(*[]VmSafeRpc) + + return out0, err + +} + +// RpcUrlStructs is a free data retrieval call binding the contract method 0x9d2ad72a. +// +// Solidity: function rpcUrlStructs() view returns((string,string)[] urls) +func (_VmSafe *VmSafeSession) RpcUrlStructs() ([]VmSafeRpc, error) { + return _VmSafe.Contract.RpcUrlStructs(&_VmSafe.CallOpts) +} + +// RpcUrlStructs is a free data retrieval call binding the contract method 0x9d2ad72a. +// +// Solidity: function rpcUrlStructs() view returns((string,string)[] urls) +func (_VmSafe *VmSafeCallerSession) RpcUrlStructs() ([]VmSafeRpc, error) { + return _VmSafe.Contract.RpcUrlStructs(&_VmSafe.CallOpts) +} + +// RpcUrls is a free data retrieval call binding the contract method 0xa85a8418. +// +// Solidity: function rpcUrls() view returns(string[2][] urls) +func (_VmSafe *VmSafeCaller) RpcUrls(opts *bind.CallOpts) ([][2]string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "rpcUrls") + + if err != nil { + return *new([][2]string), err + } + + out0 := *abi.ConvertType(out[0], new([][2]string)).(*[][2]string) + + return out0, err + +} + +// RpcUrls is a free data retrieval call binding the contract method 0xa85a8418. +// +// Solidity: function rpcUrls() view returns(string[2][] urls) +func (_VmSafe *VmSafeSession) RpcUrls() ([][2]string, error) { + return _VmSafe.Contract.RpcUrls(&_VmSafe.CallOpts) +} + +// RpcUrls is a free data retrieval call binding the contract method 0xa85a8418. +// +// Solidity: function rpcUrls() view returns(string[2][] urls) +func (_VmSafe *VmSafeCallerSession) RpcUrls() ([][2]string, error) { + return _VmSafe.Contract.RpcUrls(&_VmSafe.CallOpts) +} + +// SerializeJsonType is a free data retrieval call binding the contract method 0x6d4f96a6. +// +// Solidity: function serializeJsonType(string typeDescription, bytes value) pure returns(string json) +func (_VmSafe *VmSafeCaller) SerializeJsonType(opts *bind.CallOpts, typeDescription string, value []byte) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "serializeJsonType", typeDescription, value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// SerializeJsonType is a free data retrieval call binding the contract method 0x6d4f96a6. +// +// Solidity: function serializeJsonType(string typeDescription, bytes value) pure returns(string json) +func (_VmSafe *VmSafeSession) SerializeJsonType(typeDescription string, value []byte) (string, error) { + return _VmSafe.Contract.SerializeJsonType(&_VmSafe.CallOpts, typeDescription, value) +} + +// SerializeJsonType is a free data retrieval call binding the contract method 0x6d4f96a6. +// +// Solidity: function serializeJsonType(string typeDescription, bytes value) pure returns(string json) +func (_VmSafe *VmSafeCallerSession) SerializeJsonType(typeDescription string, value []byte) (string, error) { + return _VmSafe.Contract.SerializeJsonType(&_VmSafe.CallOpts, typeDescription, value) +} + +// Sign is a free data retrieval call binding the contract method 0x799cd333. +// +// Solidity: function sign(bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeCaller) Sign(opts *bind.CallOpts, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "sign", digest) + + outstruct := new(struct { + V uint8 + R [32]byte + S [32]byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.V = *abi.ConvertType(out[0], new(uint8)).(*uint8) + outstruct.R = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte) + outstruct.S = *abi.ConvertType(out[2], new([32]byte)).(*[32]byte) + + return *outstruct, err + +} + +// Sign is a free data retrieval call binding the contract method 0x799cd333. +// +// Solidity: function sign(bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeSession) Sign(digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _VmSafe.Contract.Sign(&_VmSafe.CallOpts, digest) +} + +// Sign is a free data retrieval call binding the contract method 0x799cd333. +// +// Solidity: function sign(bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeCallerSession) Sign(digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _VmSafe.Contract.Sign(&_VmSafe.CallOpts, digest) +} + +// Sign0 is a free data retrieval call binding the contract method 0x8c1aa205. +// +// Solidity: function sign(address signer, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeCaller) Sign0(opts *bind.CallOpts, signer common.Address, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "sign0", signer, digest) + + outstruct := new(struct { + V uint8 + R [32]byte + S [32]byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.V = *abi.ConvertType(out[0], new(uint8)).(*uint8) + outstruct.R = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte) + outstruct.S = *abi.ConvertType(out[2], new([32]byte)).(*[32]byte) + + return *outstruct, err + +} + +// Sign0 is a free data retrieval call binding the contract method 0x8c1aa205. +// +// Solidity: function sign(address signer, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeSession) Sign0(signer common.Address, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _VmSafe.Contract.Sign0(&_VmSafe.CallOpts, signer, digest) +} + +// Sign0 is a free data retrieval call binding the contract method 0x8c1aa205. +// +// Solidity: function sign(address signer, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeCallerSession) Sign0(signer common.Address, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _VmSafe.Contract.Sign0(&_VmSafe.CallOpts, signer, digest) +} + +// Sign2 is a free data retrieval call binding the contract method 0xe341eaa4. +// +// Solidity: function sign(uint256 privateKey, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeCaller) Sign2(opts *bind.CallOpts, privateKey *big.Int, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "sign2", privateKey, digest) + + outstruct := new(struct { + V uint8 + R [32]byte + S [32]byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.V = *abi.ConvertType(out[0], new(uint8)).(*uint8) + outstruct.R = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte) + outstruct.S = *abi.ConvertType(out[2], new([32]byte)).(*[32]byte) + + return *outstruct, err + +} + +// Sign2 is a free data retrieval call binding the contract method 0xe341eaa4. +// +// Solidity: function sign(uint256 privateKey, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeSession) Sign2(privateKey *big.Int, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _VmSafe.Contract.Sign2(&_VmSafe.CallOpts, privateKey, digest) +} + +// Sign2 is a free data retrieval call binding the contract method 0xe341eaa4. +// +// Solidity: function sign(uint256 privateKey, bytes32 digest) pure returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeCallerSession) Sign2(privateKey *big.Int, digest [32]byte) (struct { + V uint8 + R [32]byte + S [32]byte +}, error) { + return _VmSafe.Contract.Sign2(&_VmSafe.CallOpts, privateKey, digest) +} + +// SignP256 is a free data retrieval call binding the contract method 0x83211b40. +// +// Solidity: function signP256(uint256 privateKey, bytes32 digest) pure returns(bytes32 r, bytes32 s) +func (_VmSafe *VmSafeCaller) SignP256(opts *bind.CallOpts, privateKey *big.Int, digest [32]byte) (struct { + R [32]byte + S [32]byte +}, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "signP256", privateKey, digest) + + outstruct := new(struct { + R [32]byte + S [32]byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.R = *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + outstruct.S = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte) + + return *outstruct, err + +} + +// SignP256 is a free data retrieval call binding the contract method 0x83211b40. +// +// Solidity: function signP256(uint256 privateKey, bytes32 digest) pure returns(bytes32 r, bytes32 s) +func (_VmSafe *VmSafeSession) SignP256(privateKey *big.Int, digest [32]byte) (struct { + R [32]byte + S [32]byte +}, error) { + return _VmSafe.Contract.SignP256(&_VmSafe.CallOpts, privateKey, digest) +} + +// SignP256 is a free data retrieval call binding the contract method 0x83211b40. +// +// Solidity: function signP256(uint256 privateKey, bytes32 digest) pure returns(bytes32 r, bytes32 s) +func (_VmSafe *VmSafeCallerSession) SignP256(privateKey *big.Int, digest [32]byte) (struct { + R [32]byte + S [32]byte +}, error) { + return _VmSafe.Contract.SignP256(&_VmSafe.CallOpts, privateKey, digest) +} + +// Split is a free data retrieval call binding the contract method 0x8bb75533. +// +// Solidity: function split(string input, string delimiter) pure returns(string[] outputs) +func (_VmSafe *VmSafeCaller) Split(opts *bind.CallOpts, input string, delimiter string) ([]string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "split", input, delimiter) + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// Split is a free data retrieval call binding the contract method 0x8bb75533. +// +// Solidity: function split(string input, string delimiter) pure returns(string[] outputs) +func (_VmSafe *VmSafeSession) Split(input string, delimiter string) ([]string, error) { + return _VmSafe.Contract.Split(&_VmSafe.CallOpts, input, delimiter) +} + +// Split is a free data retrieval call binding the contract method 0x8bb75533. +// +// Solidity: function split(string input, string delimiter) pure returns(string[] outputs) +func (_VmSafe *VmSafeCallerSession) Split(input string, delimiter string) ([]string, error) { + return _VmSafe.Contract.Split(&_VmSafe.CallOpts, input, delimiter) +} + +// ToBase64 is a free data retrieval call binding the contract method 0x3f8be2c8. +// +// Solidity: function toBase64(string data) pure returns(string) +func (_VmSafe *VmSafeCaller) ToBase64(opts *bind.CallOpts, data string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toBase64", data) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToBase64 is a free data retrieval call binding the contract method 0x3f8be2c8. +// +// Solidity: function toBase64(string data) pure returns(string) +func (_VmSafe *VmSafeSession) ToBase64(data string) (string, error) { + return _VmSafe.Contract.ToBase64(&_VmSafe.CallOpts, data) +} + +// ToBase64 is a free data retrieval call binding the contract method 0x3f8be2c8. +// +// Solidity: function toBase64(string data) pure returns(string) +func (_VmSafe *VmSafeCallerSession) ToBase64(data string) (string, error) { + return _VmSafe.Contract.ToBase64(&_VmSafe.CallOpts, data) +} + +// ToBase640 is a free data retrieval call binding the contract method 0xa5cbfe65. +// +// Solidity: function toBase64(bytes data) pure returns(string) +func (_VmSafe *VmSafeCaller) ToBase640(opts *bind.CallOpts, data []byte) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toBase640", data) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToBase640 is a free data retrieval call binding the contract method 0xa5cbfe65. +// +// Solidity: function toBase64(bytes data) pure returns(string) +func (_VmSafe *VmSafeSession) ToBase640(data []byte) (string, error) { + return _VmSafe.Contract.ToBase640(&_VmSafe.CallOpts, data) +} + +// ToBase640 is a free data retrieval call binding the contract method 0xa5cbfe65. +// +// Solidity: function toBase64(bytes data) pure returns(string) +func (_VmSafe *VmSafeCallerSession) ToBase640(data []byte) (string, error) { + return _VmSafe.Contract.ToBase640(&_VmSafe.CallOpts, data) +} + +// ToBase64URL is a free data retrieval call binding the contract method 0xae3165b3. +// +// Solidity: function toBase64URL(string data) pure returns(string) +func (_VmSafe *VmSafeCaller) ToBase64URL(opts *bind.CallOpts, data string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toBase64URL", data) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToBase64URL is a free data retrieval call binding the contract method 0xae3165b3. +// +// Solidity: function toBase64URL(string data) pure returns(string) +func (_VmSafe *VmSafeSession) ToBase64URL(data string) (string, error) { + return _VmSafe.Contract.ToBase64URL(&_VmSafe.CallOpts, data) +} + +// ToBase64URL is a free data retrieval call binding the contract method 0xae3165b3. +// +// Solidity: function toBase64URL(string data) pure returns(string) +func (_VmSafe *VmSafeCallerSession) ToBase64URL(data string) (string, error) { + return _VmSafe.Contract.ToBase64URL(&_VmSafe.CallOpts, data) +} + +// ToBase64URL0 is a free data retrieval call binding the contract method 0xc8bd0e4a. +// +// Solidity: function toBase64URL(bytes data) pure returns(string) +func (_VmSafe *VmSafeCaller) ToBase64URL0(opts *bind.CallOpts, data []byte) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toBase64URL0", data) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToBase64URL0 is a free data retrieval call binding the contract method 0xc8bd0e4a. +// +// Solidity: function toBase64URL(bytes data) pure returns(string) +func (_VmSafe *VmSafeSession) ToBase64URL0(data []byte) (string, error) { + return _VmSafe.Contract.ToBase64URL0(&_VmSafe.CallOpts, data) +} + +// ToBase64URL0 is a free data retrieval call binding the contract method 0xc8bd0e4a. +// +// Solidity: function toBase64URL(bytes data) pure returns(string) +func (_VmSafe *VmSafeCallerSession) ToBase64URL0(data []byte) (string, error) { + return _VmSafe.Contract.ToBase64URL0(&_VmSafe.CallOpts, data) +} + +// ToLowercase is a free data retrieval call binding the contract method 0x50bb0884. +// +// Solidity: function toLowercase(string input) pure returns(string output) +func (_VmSafe *VmSafeCaller) ToLowercase(opts *bind.CallOpts, input string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toLowercase", input) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToLowercase is a free data retrieval call binding the contract method 0x50bb0884. +// +// Solidity: function toLowercase(string input) pure returns(string output) +func (_VmSafe *VmSafeSession) ToLowercase(input string) (string, error) { + return _VmSafe.Contract.ToLowercase(&_VmSafe.CallOpts, input) +} + +// ToLowercase is a free data retrieval call binding the contract method 0x50bb0884. +// +// Solidity: function toLowercase(string input) pure returns(string output) +func (_VmSafe *VmSafeCallerSession) ToLowercase(input string) (string, error) { + return _VmSafe.Contract.ToLowercase(&_VmSafe.CallOpts, input) +} + +// ToString is a free data retrieval call binding the contract method 0x56ca623e. +// +// Solidity: function toString(address value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCaller) ToString(opts *bind.CallOpts, value common.Address) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toString", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString is a free data retrieval call binding the contract method 0x56ca623e. +// +// Solidity: function toString(address value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeSession) ToString(value common.Address) (string, error) { + return _VmSafe.Contract.ToString(&_VmSafe.CallOpts, value) +} + +// ToString is a free data retrieval call binding the contract method 0x56ca623e. +// +// Solidity: function toString(address value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCallerSession) ToString(value common.Address) (string, error) { + return _VmSafe.Contract.ToString(&_VmSafe.CallOpts, value) +} + +// ToString0 is a free data retrieval call binding the contract method 0x6900a3ae. +// +// Solidity: function toString(uint256 value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCaller) ToString0(opts *bind.CallOpts, value *big.Int) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toString0", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString0 is a free data retrieval call binding the contract method 0x6900a3ae. +// +// Solidity: function toString(uint256 value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeSession) ToString0(value *big.Int) (string, error) { + return _VmSafe.Contract.ToString0(&_VmSafe.CallOpts, value) +} + +// ToString0 is a free data retrieval call binding the contract method 0x6900a3ae. +// +// Solidity: function toString(uint256 value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCallerSession) ToString0(value *big.Int) (string, error) { + return _VmSafe.Contract.ToString0(&_VmSafe.CallOpts, value) +} + +// ToString1 is a free data retrieval call binding the contract method 0x71aad10d. +// +// Solidity: function toString(bytes value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCaller) ToString1(opts *bind.CallOpts, value []byte) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toString1", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString1 is a free data retrieval call binding the contract method 0x71aad10d. +// +// Solidity: function toString(bytes value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeSession) ToString1(value []byte) (string, error) { + return _VmSafe.Contract.ToString1(&_VmSafe.CallOpts, value) +} + +// ToString1 is a free data retrieval call binding the contract method 0x71aad10d. +// +// Solidity: function toString(bytes value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCallerSession) ToString1(value []byte) (string, error) { + return _VmSafe.Contract.ToString1(&_VmSafe.CallOpts, value) +} + +// ToString2 is a free data retrieval call binding the contract method 0x71dce7da. +// +// Solidity: function toString(bool value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCaller) ToString2(opts *bind.CallOpts, value bool) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toString2", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString2 is a free data retrieval call binding the contract method 0x71dce7da. +// +// Solidity: function toString(bool value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeSession) ToString2(value bool) (string, error) { + return _VmSafe.Contract.ToString2(&_VmSafe.CallOpts, value) +} + +// ToString2 is a free data retrieval call binding the contract method 0x71dce7da. +// +// Solidity: function toString(bool value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCallerSession) ToString2(value bool) (string, error) { + return _VmSafe.Contract.ToString2(&_VmSafe.CallOpts, value) +} + +// ToString3 is a free data retrieval call binding the contract method 0xa322c40e. +// +// Solidity: function toString(int256 value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCaller) ToString3(opts *bind.CallOpts, value *big.Int) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toString3", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString3 is a free data retrieval call binding the contract method 0xa322c40e. +// +// Solidity: function toString(int256 value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeSession) ToString3(value *big.Int) (string, error) { + return _VmSafe.Contract.ToString3(&_VmSafe.CallOpts, value) +} + +// ToString3 is a free data retrieval call binding the contract method 0xa322c40e. +// +// Solidity: function toString(int256 value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCallerSession) ToString3(value *big.Int) (string, error) { + return _VmSafe.Contract.ToString3(&_VmSafe.CallOpts, value) +} + +// ToString4 is a free data retrieval call binding the contract method 0xb11a19e8. +// +// Solidity: function toString(bytes32 value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCaller) ToString4(opts *bind.CallOpts, value [32]byte) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toString4", value) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToString4 is a free data retrieval call binding the contract method 0xb11a19e8. +// +// Solidity: function toString(bytes32 value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeSession) ToString4(value [32]byte) (string, error) { + return _VmSafe.Contract.ToString4(&_VmSafe.CallOpts, value) +} + +// ToString4 is a free data retrieval call binding the contract method 0xb11a19e8. +// +// Solidity: function toString(bytes32 value) pure returns(string stringifiedValue) +func (_VmSafe *VmSafeCallerSession) ToString4(value [32]byte) (string, error) { + return _VmSafe.Contract.ToString4(&_VmSafe.CallOpts, value) +} + +// ToUppercase is a free data retrieval call binding the contract method 0x074ae3d7. +// +// Solidity: function toUppercase(string input) pure returns(string output) +func (_VmSafe *VmSafeCaller) ToUppercase(opts *bind.CallOpts, input string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "toUppercase", input) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// ToUppercase is a free data retrieval call binding the contract method 0x074ae3d7. +// +// Solidity: function toUppercase(string input) pure returns(string output) +func (_VmSafe *VmSafeSession) ToUppercase(input string) (string, error) { + return _VmSafe.Contract.ToUppercase(&_VmSafe.CallOpts, input) +} + +// ToUppercase is a free data retrieval call binding the contract method 0x074ae3d7. +// +// Solidity: function toUppercase(string input) pure returns(string output) +func (_VmSafe *VmSafeCallerSession) ToUppercase(input string) (string, error) { + return _VmSafe.Contract.ToUppercase(&_VmSafe.CallOpts, input) +} + +// Trim is a free data retrieval call binding the contract method 0xb2dad155. +// +// Solidity: function trim(string input) pure returns(string output) +func (_VmSafe *VmSafeCaller) Trim(opts *bind.CallOpts, input string) (string, error) { + var out []interface{} + err := _VmSafe.contract.Call(opts, &out, "trim", input) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Trim is a free data retrieval call binding the contract method 0xb2dad155. +// +// Solidity: function trim(string input) pure returns(string output) +func (_VmSafe *VmSafeSession) Trim(input string) (string, error) { + return _VmSafe.Contract.Trim(&_VmSafe.CallOpts, input) +} + +// Trim is a free data retrieval call binding the contract method 0xb2dad155. +// +// Solidity: function trim(string input) pure returns(string output) +func (_VmSafe *VmSafeCallerSession) Trim(input string) (string, error) { + return _VmSafe.Contract.Trim(&_VmSafe.CallOpts, input) +} + +// Accesses is a paid mutator transaction binding the contract method 0x65bc9481. +// +// Solidity: function accesses(address target) returns(bytes32[] readSlots, bytes32[] writeSlots) +func (_VmSafe *VmSafeTransactor) Accesses(opts *bind.TransactOpts, target common.Address) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "accesses", target) +} + +// Accesses is a paid mutator transaction binding the contract method 0x65bc9481. +// +// Solidity: function accesses(address target) returns(bytes32[] readSlots, bytes32[] writeSlots) +func (_VmSafe *VmSafeSession) Accesses(target common.Address) (*types.Transaction, error) { + return _VmSafe.Contract.Accesses(&_VmSafe.TransactOpts, target) +} + +// Accesses is a paid mutator transaction binding the contract method 0x65bc9481. +// +// Solidity: function accesses(address target) returns(bytes32[] readSlots, bytes32[] writeSlots) +func (_VmSafe *VmSafeTransactorSession) Accesses(target common.Address) (*types.Transaction, error) { + return _VmSafe.Contract.Accesses(&_VmSafe.TransactOpts, target) +} + +// Breakpoint is a paid mutator transaction binding the contract method 0xf0259e92. +// +// Solidity: function breakpoint(string char) returns() +func (_VmSafe *VmSafeTransactor) Breakpoint(opts *bind.TransactOpts, char string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "breakpoint", char) +} + +// Breakpoint is a paid mutator transaction binding the contract method 0xf0259e92. +// +// Solidity: function breakpoint(string char) returns() +func (_VmSafe *VmSafeSession) Breakpoint(char string) (*types.Transaction, error) { + return _VmSafe.Contract.Breakpoint(&_VmSafe.TransactOpts, char) +} + +// Breakpoint is a paid mutator transaction binding the contract method 0xf0259e92. +// +// Solidity: function breakpoint(string char) returns() +func (_VmSafe *VmSafeTransactorSession) Breakpoint(char string) (*types.Transaction, error) { + return _VmSafe.Contract.Breakpoint(&_VmSafe.TransactOpts, char) +} + +// Breakpoint0 is a paid mutator transaction binding the contract method 0xf7d39a8d. +// +// Solidity: function breakpoint(string char, bool value) returns() +func (_VmSafe *VmSafeTransactor) Breakpoint0(opts *bind.TransactOpts, char string, value bool) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "breakpoint0", char, value) +} + +// Breakpoint0 is a paid mutator transaction binding the contract method 0xf7d39a8d. +// +// Solidity: function breakpoint(string char, bool value) returns() +func (_VmSafe *VmSafeSession) Breakpoint0(char string, value bool) (*types.Transaction, error) { + return _VmSafe.Contract.Breakpoint0(&_VmSafe.TransactOpts, char, value) +} + +// Breakpoint0 is a paid mutator transaction binding the contract method 0xf7d39a8d. +// +// Solidity: function breakpoint(string char, bool value) returns() +func (_VmSafe *VmSafeTransactorSession) Breakpoint0(char string, value bool) (*types.Transaction, error) { + return _VmSafe.Contract.Breakpoint0(&_VmSafe.TransactOpts, char, value) +} + +// Broadcast is a paid mutator transaction binding the contract method 0xafc98040. +// +// Solidity: function broadcast() returns() +func (_VmSafe *VmSafeTransactor) Broadcast(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "broadcast") +} + +// Broadcast is a paid mutator transaction binding the contract method 0xafc98040. +// +// Solidity: function broadcast() returns() +func (_VmSafe *VmSafeSession) Broadcast() (*types.Transaction, error) { + return _VmSafe.Contract.Broadcast(&_VmSafe.TransactOpts) +} + +// Broadcast is a paid mutator transaction binding the contract method 0xafc98040. +// +// Solidity: function broadcast() returns() +func (_VmSafe *VmSafeTransactorSession) Broadcast() (*types.Transaction, error) { + return _VmSafe.Contract.Broadcast(&_VmSafe.TransactOpts) +} + +// Broadcast0 is a paid mutator transaction binding the contract method 0xe6962cdb. +// +// Solidity: function broadcast(address signer) returns() +func (_VmSafe *VmSafeTransactor) Broadcast0(opts *bind.TransactOpts, signer common.Address) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "broadcast0", signer) +} + +// Broadcast0 is a paid mutator transaction binding the contract method 0xe6962cdb. +// +// Solidity: function broadcast(address signer) returns() +func (_VmSafe *VmSafeSession) Broadcast0(signer common.Address) (*types.Transaction, error) { + return _VmSafe.Contract.Broadcast0(&_VmSafe.TransactOpts, signer) +} + +// Broadcast0 is a paid mutator transaction binding the contract method 0xe6962cdb. +// +// Solidity: function broadcast(address signer) returns() +func (_VmSafe *VmSafeTransactorSession) Broadcast0(signer common.Address) (*types.Transaction, error) { + return _VmSafe.Contract.Broadcast0(&_VmSafe.TransactOpts, signer) +} + +// Broadcast1 is a paid mutator transaction binding the contract method 0xf67a965b. +// +// Solidity: function broadcast(uint256 privateKey) returns() +func (_VmSafe *VmSafeTransactor) Broadcast1(opts *bind.TransactOpts, privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "broadcast1", privateKey) +} + +// Broadcast1 is a paid mutator transaction binding the contract method 0xf67a965b. +// +// Solidity: function broadcast(uint256 privateKey) returns() +func (_VmSafe *VmSafeSession) Broadcast1(privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.Broadcast1(&_VmSafe.TransactOpts, privateKey) +} + +// Broadcast1 is a paid mutator transaction binding the contract method 0xf67a965b. +// +// Solidity: function broadcast(uint256 privateKey) returns() +func (_VmSafe *VmSafeTransactorSession) Broadcast1(privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.Broadcast1(&_VmSafe.TransactOpts, privateKey) +} + +// CloseFile is a paid mutator transaction binding the contract method 0x48c3241f. +// +// Solidity: function closeFile(string path) returns() +func (_VmSafe *VmSafeTransactor) CloseFile(opts *bind.TransactOpts, path string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "closeFile", path) +} + +// CloseFile is a paid mutator transaction binding the contract method 0x48c3241f. +// +// Solidity: function closeFile(string path) returns() +func (_VmSafe *VmSafeSession) CloseFile(path string) (*types.Transaction, error) { + return _VmSafe.Contract.CloseFile(&_VmSafe.TransactOpts, path) +} + +// CloseFile is a paid mutator transaction binding the contract method 0x48c3241f. +// +// Solidity: function closeFile(string path) returns() +func (_VmSafe *VmSafeTransactorSession) CloseFile(path string) (*types.Transaction, error) { + return _VmSafe.Contract.CloseFile(&_VmSafe.TransactOpts, path) +} + +// CopyFile is a paid mutator transaction binding the contract method 0xa54a87d8. +// +// Solidity: function copyFile(string from, string to) returns(uint64 copied) +func (_VmSafe *VmSafeTransactor) CopyFile(opts *bind.TransactOpts, from string, to string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "copyFile", from, to) +} + +// CopyFile is a paid mutator transaction binding the contract method 0xa54a87d8. +// +// Solidity: function copyFile(string from, string to) returns(uint64 copied) +func (_VmSafe *VmSafeSession) CopyFile(from string, to string) (*types.Transaction, error) { + return _VmSafe.Contract.CopyFile(&_VmSafe.TransactOpts, from, to) +} + +// CopyFile is a paid mutator transaction binding the contract method 0xa54a87d8. +// +// Solidity: function copyFile(string from, string to) returns(uint64 copied) +func (_VmSafe *VmSafeTransactorSession) CopyFile(from string, to string) (*types.Transaction, error) { + return _VmSafe.Contract.CopyFile(&_VmSafe.TransactOpts, from, to) +} + +// CreateDir is a paid mutator transaction binding the contract method 0x168b64d3. +// +// Solidity: function createDir(string path, bool recursive) returns() +func (_VmSafe *VmSafeTransactor) CreateDir(opts *bind.TransactOpts, path string, recursive bool) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "createDir", path, recursive) +} + +// CreateDir is a paid mutator transaction binding the contract method 0x168b64d3. +// +// Solidity: function createDir(string path, bool recursive) returns() +func (_VmSafe *VmSafeSession) CreateDir(path string, recursive bool) (*types.Transaction, error) { + return _VmSafe.Contract.CreateDir(&_VmSafe.TransactOpts, path, recursive) +} + +// CreateDir is a paid mutator transaction binding the contract method 0x168b64d3. +// +// Solidity: function createDir(string path, bool recursive) returns() +func (_VmSafe *VmSafeTransactorSession) CreateDir(path string, recursive bool) (*types.Transaction, error) { + return _VmSafe.Contract.CreateDir(&_VmSafe.TransactOpts, path, recursive) +} + +// CreateWallet is a paid mutator transaction binding the contract method 0x7404f1d2. +// +// Solidity: function createWallet(string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_VmSafe *VmSafeTransactor) CreateWallet(opts *bind.TransactOpts, walletLabel string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "createWallet", walletLabel) +} + +// CreateWallet is a paid mutator transaction binding the contract method 0x7404f1d2. +// +// Solidity: function createWallet(string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_VmSafe *VmSafeSession) CreateWallet(walletLabel string) (*types.Transaction, error) { + return _VmSafe.Contract.CreateWallet(&_VmSafe.TransactOpts, walletLabel) +} + +// CreateWallet is a paid mutator transaction binding the contract method 0x7404f1d2. +// +// Solidity: function createWallet(string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_VmSafe *VmSafeTransactorSession) CreateWallet(walletLabel string) (*types.Transaction, error) { + return _VmSafe.Contract.CreateWallet(&_VmSafe.TransactOpts, walletLabel) +} + +// CreateWallet0 is a paid mutator transaction binding the contract method 0x7a675bb6. +// +// Solidity: function createWallet(uint256 privateKey) returns((address,uint256,uint256,uint256) wallet) +func (_VmSafe *VmSafeTransactor) CreateWallet0(opts *bind.TransactOpts, privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "createWallet0", privateKey) +} + +// CreateWallet0 is a paid mutator transaction binding the contract method 0x7a675bb6. +// +// Solidity: function createWallet(uint256 privateKey) returns((address,uint256,uint256,uint256) wallet) +func (_VmSafe *VmSafeSession) CreateWallet0(privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.CreateWallet0(&_VmSafe.TransactOpts, privateKey) +} + +// CreateWallet0 is a paid mutator transaction binding the contract method 0x7a675bb6. +// +// Solidity: function createWallet(uint256 privateKey) returns((address,uint256,uint256,uint256) wallet) +func (_VmSafe *VmSafeTransactorSession) CreateWallet0(privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.CreateWallet0(&_VmSafe.TransactOpts, privateKey) +} + +// CreateWallet1 is a paid mutator transaction binding the contract method 0xed7c5462. +// +// Solidity: function createWallet(uint256 privateKey, string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_VmSafe *VmSafeTransactor) CreateWallet1(opts *bind.TransactOpts, privateKey *big.Int, walletLabel string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "createWallet1", privateKey, walletLabel) +} + +// CreateWallet1 is a paid mutator transaction binding the contract method 0xed7c5462. +// +// Solidity: function createWallet(uint256 privateKey, string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_VmSafe *VmSafeSession) CreateWallet1(privateKey *big.Int, walletLabel string) (*types.Transaction, error) { + return _VmSafe.Contract.CreateWallet1(&_VmSafe.TransactOpts, privateKey, walletLabel) +} + +// CreateWallet1 is a paid mutator transaction binding the contract method 0xed7c5462. +// +// Solidity: function createWallet(uint256 privateKey, string walletLabel) returns((address,uint256,uint256,uint256) wallet) +func (_VmSafe *VmSafeTransactorSession) CreateWallet1(privateKey *big.Int, walletLabel string) (*types.Transaction, error) { + return _VmSafe.Contract.CreateWallet1(&_VmSafe.TransactOpts, privateKey, walletLabel) +} + +// DeployCode is a paid mutator transaction binding the contract method 0x29ce9dde. +// +// Solidity: function deployCode(string artifactPath, bytes constructorArgs) returns(address deployedAddress) +func (_VmSafe *VmSafeTransactor) DeployCode(opts *bind.TransactOpts, artifactPath string, constructorArgs []byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "deployCode", artifactPath, constructorArgs) +} + +// DeployCode is a paid mutator transaction binding the contract method 0x29ce9dde. +// +// Solidity: function deployCode(string artifactPath, bytes constructorArgs) returns(address deployedAddress) +func (_VmSafe *VmSafeSession) DeployCode(artifactPath string, constructorArgs []byte) (*types.Transaction, error) { + return _VmSafe.Contract.DeployCode(&_VmSafe.TransactOpts, artifactPath, constructorArgs) +} + +// DeployCode is a paid mutator transaction binding the contract method 0x29ce9dde. +// +// Solidity: function deployCode(string artifactPath, bytes constructorArgs) returns(address deployedAddress) +func (_VmSafe *VmSafeTransactorSession) DeployCode(artifactPath string, constructorArgs []byte) (*types.Transaction, error) { + return _VmSafe.Contract.DeployCode(&_VmSafe.TransactOpts, artifactPath, constructorArgs) +} + +// DeployCode0 is a paid mutator transaction binding the contract method 0x9a8325a0. +// +// Solidity: function deployCode(string artifactPath) returns(address deployedAddress) +func (_VmSafe *VmSafeTransactor) DeployCode0(opts *bind.TransactOpts, artifactPath string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "deployCode0", artifactPath) +} + +// DeployCode0 is a paid mutator transaction binding the contract method 0x9a8325a0. +// +// Solidity: function deployCode(string artifactPath) returns(address deployedAddress) +func (_VmSafe *VmSafeSession) DeployCode0(artifactPath string) (*types.Transaction, error) { + return _VmSafe.Contract.DeployCode0(&_VmSafe.TransactOpts, artifactPath) +} + +// DeployCode0 is a paid mutator transaction binding the contract method 0x9a8325a0. +// +// Solidity: function deployCode(string artifactPath) returns(address deployedAddress) +func (_VmSafe *VmSafeTransactorSession) DeployCode0(artifactPath string) (*types.Transaction, error) { + return _VmSafe.Contract.DeployCode0(&_VmSafe.TransactOpts, artifactPath) +} + +// EthGetLogs is a paid mutator transaction binding the contract method 0x35e1349b. +// +// Solidity: function eth_getLogs(uint256 fromBlock, uint256 toBlock, address target, bytes32[] topics) returns((address,bytes32[],bytes,bytes32,uint64,bytes32,uint64,uint256,bool)[] logs) +func (_VmSafe *VmSafeTransactor) EthGetLogs(opts *bind.TransactOpts, fromBlock *big.Int, toBlock *big.Int, target common.Address, topics [][32]byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "eth_getLogs", fromBlock, toBlock, target, topics) +} + +// EthGetLogs is a paid mutator transaction binding the contract method 0x35e1349b. +// +// Solidity: function eth_getLogs(uint256 fromBlock, uint256 toBlock, address target, bytes32[] topics) returns((address,bytes32[],bytes,bytes32,uint64,bytes32,uint64,uint256,bool)[] logs) +func (_VmSafe *VmSafeSession) EthGetLogs(fromBlock *big.Int, toBlock *big.Int, target common.Address, topics [][32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.EthGetLogs(&_VmSafe.TransactOpts, fromBlock, toBlock, target, topics) +} + +// EthGetLogs is a paid mutator transaction binding the contract method 0x35e1349b. +// +// Solidity: function eth_getLogs(uint256 fromBlock, uint256 toBlock, address target, bytes32[] topics) returns((address,bytes32[],bytes,bytes32,uint64,bytes32,uint64,uint256,bool)[] logs) +func (_VmSafe *VmSafeTransactorSession) EthGetLogs(fromBlock *big.Int, toBlock *big.Int, target common.Address, topics [][32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.EthGetLogs(&_VmSafe.TransactOpts, fromBlock, toBlock, target, topics) +} + +// Exists is a paid mutator transaction binding the contract method 0x261a323e. +// +// Solidity: function exists(string path) returns(bool result) +func (_VmSafe *VmSafeTransactor) Exists(opts *bind.TransactOpts, path string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "exists", path) +} + +// Exists is a paid mutator transaction binding the contract method 0x261a323e. +// +// Solidity: function exists(string path) returns(bool result) +func (_VmSafe *VmSafeSession) Exists(path string) (*types.Transaction, error) { + return _VmSafe.Contract.Exists(&_VmSafe.TransactOpts, path) +} + +// Exists is a paid mutator transaction binding the contract method 0x261a323e. +// +// Solidity: function exists(string path) returns(bool result) +func (_VmSafe *VmSafeTransactorSession) Exists(path string) (*types.Transaction, error) { + return _VmSafe.Contract.Exists(&_VmSafe.TransactOpts, path) +} + +// Ffi is a paid mutator transaction binding the contract method 0x89160467. +// +// Solidity: function ffi(string[] commandInput) returns(bytes result) +func (_VmSafe *VmSafeTransactor) Ffi(opts *bind.TransactOpts, commandInput []string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "ffi", commandInput) +} + +// Ffi is a paid mutator transaction binding the contract method 0x89160467. +// +// Solidity: function ffi(string[] commandInput) returns(bytes result) +func (_VmSafe *VmSafeSession) Ffi(commandInput []string) (*types.Transaction, error) { + return _VmSafe.Contract.Ffi(&_VmSafe.TransactOpts, commandInput) +} + +// Ffi is a paid mutator transaction binding the contract method 0x89160467. +// +// Solidity: function ffi(string[] commandInput) returns(bytes result) +func (_VmSafe *VmSafeTransactorSession) Ffi(commandInput []string) (*types.Transaction, error) { + return _VmSafe.Contract.Ffi(&_VmSafe.TransactOpts, commandInput) +} + +// GetMappingKeyAndParentOf is a paid mutator transaction binding the contract method 0x876e24e6. +// +// Solidity: function getMappingKeyAndParentOf(address target, bytes32 elementSlot) returns(bool found, bytes32 key, bytes32 parent) +func (_VmSafe *VmSafeTransactor) GetMappingKeyAndParentOf(opts *bind.TransactOpts, target common.Address, elementSlot [32]byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "getMappingKeyAndParentOf", target, elementSlot) +} + +// GetMappingKeyAndParentOf is a paid mutator transaction binding the contract method 0x876e24e6. +// +// Solidity: function getMappingKeyAndParentOf(address target, bytes32 elementSlot) returns(bool found, bytes32 key, bytes32 parent) +func (_VmSafe *VmSafeSession) GetMappingKeyAndParentOf(target common.Address, elementSlot [32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.GetMappingKeyAndParentOf(&_VmSafe.TransactOpts, target, elementSlot) +} + +// GetMappingKeyAndParentOf is a paid mutator transaction binding the contract method 0x876e24e6. +// +// Solidity: function getMappingKeyAndParentOf(address target, bytes32 elementSlot) returns(bool found, bytes32 key, bytes32 parent) +func (_VmSafe *VmSafeTransactorSession) GetMappingKeyAndParentOf(target common.Address, elementSlot [32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.GetMappingKeyAndParentOf(&_VmSafe.TransactOpts, target, elementSlot) +} + +// GetMappingLength is a paid mutator transaction binding the contract method 0x2f2fd63f. +// +// Solidity: function getMappingLength(address target, bytes32 mappingSlot) returns(uint256 length) +func (_VmSafe *VmSafeTransactor) GetMappingLength(opts *bind.TransactOpts, target common.Address, mappingSlot [32]byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "getMappingLength", target, mappingSlot) +} + +// GetMappingLength is a paid mutator transaction binding the contract method 0x2f2fd63f. +// +// Solidity: function getMappingLength(address target, bytes32 mappingSlot) returns(uint256 length) +func (_VmSafe *VmSafeSession) GetMappingLength(target common.Address, mappingSlot [32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.GetMappingLength(&_VmSafe.TransactOpts, target, mappingSlot) +} + +// GetMappingLength is a paid mutator transaction binding the contract method 0x2f2fd63f. +// +// Solidity: function getMappingLength(address target, bytes32 mappingSlot) returns(uint256 length) +func (_VmSafe *VmSafeTransactorSession) GetMappingLength(target common.Address, mappingSlot [32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.GetMappingLength(&_VmSafe.TransactOpts, target, mappingSlot) +} + +// GetMappingSlotAt is a paid mutator transaction binding the contract method 0xebc73ab4. +// +// Solidity: function getMappingSlotAt(address target, bytes32 mappingSlot, uint256 idx) returns(bytes32 value) +func (_VmSafe *VmSafeTransactor) GetMappingSlotAt(opts *bind.TransactOpts, target common.Address, mappingSlot [32]byte, idx *big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "getMappingSlotAt", target, mappingSlot, idx) +} + +// GetMappingSlotAt is a paid mutator transaction binding the contract method 0xebc73ab4. +// +// Solidity: function getMappingSlotAt(address target, bytes32 mappingSlot, uint256 idx) returns(bytes32 value) +func (_VmSafe *VmSafeSession) GetMappingSlotAt(target common.Address, mappingSlot [32]byte, idx *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.GetMappingSlotAt(&_VmSafe.TransactOpts, target, mappingSlot, idx) +} + +// GetMappingSlotAt is a paid mutator transaction binding the contract method 0xebc73ab4. +// +// Solidity: function getMappingSlotAt(address target, bytes32 mappingSlot, uint256 idx) returns(bytes32 value) +func (_VmSafe *VmSafeTransactorSession) GetMappingSlotAt(target common.Address, mappingSlot [32]byte, idx *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.GetMappingSlotAt(&_VmSafe.TransactOpts, target, mappingSlot, idx) +} + +// GetNonce0 is a paid mutator transaction binding the contract method 0xa5748aad. +// +// Solidity: function getNonce((address,uint256,uint256,uint256) wallet) returns(uint64 nonce) +func (_VmSafe *VmSafeTransactor) GetNonce0(opts *bind.TransactOpts, wallet VmSafeWallet) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "getNonce0", wallet) +} + +// GetNonce0 is a paid mutator transaction binding the contract method 0xa5748aad. +// +// Solidity: function getNonce((address,uint256,uint256,uint256) wallet) returns(uint64 nonce) +func (_VmSafe *VmSafeSession) GetNonce0(wallet VmSafeWallet) (*types.Transaction, error) { + return _VmSafe.Contract.GetNonce0(&_VmSafe.TransactOpts, wallet) +} + +// GetNonce0 is a paid mutator transaction binding the contract method 0xa5748aad. +// +// Solidity: function getNonce((address,uint256,uint256,uint256) wallet) returns(uint64 nonce) +func (_VmSafe *VmSafeTransactorSession) GetNonce0(wallet VmSafeWallet) (*types.Transaction, error) { + return _VmSafe.Contract.GetNonce0(&_VmSafe.TransactOpts, wallet) +} + +// GetRecordedLogs is a paid mutator transaction binding the contract method 0x191553a4. +// +// Solidity: function getRecordedLogs() returns((bytes32[],bytes,address)[] logs) +func (_VmSafe *VmSafeTransactor) GetRecordedLogs(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "getRecordedLogs") +} + +// GetRecordedLogs is a paid mutator transaction binding the contract method 0x191553a4. +// +// Solidity: function getRecordedLogs() returns((bytes32[],bytes,address)[] logs) +func (_VmSafe *VmSafeSession) GetRecordedLogs() (*types.Transaction, error) { + return _VmSafe.Contract.GetRecordedLogs(&_VmSafe.TransactOpts) +} + +// GetRecordedLogs is a paid mutator transaction binding the contract method 0x191553a4. +// +// Solidity: function getRecordedLogs() returns((bytes32[],bytes,address)[] logs) +func (_VmSafe *VmSafeTransactorSession) GetRecordedLogs() (*types.Transaction, error) { + return _VmSafe.Contract.GetRecordedLogs(&_VmSafe.TransactOpts) +} + +// IsDir is a paid mutator transaction binding the contract method 0x7d15d019. +// +// Solidity: function isDir(string path) returns(bool result) +func (_VmSafe *VmSafeTransactor) IsDir(opts *bind.TransactOpts, path string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "isDir", path) +} + +// IsDir is a paid mutator transaction binding the contract method 0x7d15d019. +// +// Solidity: function isDir(string path) returns(bool result) +func (_VmSafe *VmSafeSession) IsDir(path string) (*types.Transaction, error) { + return _VmSafe.Contract.IsDir(&_VmSafe.TransactOpts, path) +} + +// IsDir is a paid mutator transaction binding the contract method 0x7d15d019. +// +// Solidity: function isDir(string path) returns(bool result) +func (_VmSafe *VmSafeTransactorSession) IsDir(path string) (*types.Transaction, error) { + return _VmSafe.Contract.IsDir(&_VmSafe.TransactOpts, path) +} + +// IsFile is a paid mutator transaction binding the contract method 0xe0eb04d4. +// +// Solidity: function isFile(string path) returns(bool result) +func (_VmSafe *VmSafeTransactor) IsFile(opts *bind.TransactOpts, path string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "isFile", path) +} + +// IsFile is a paid mutator transaction binding the contract method 0xe0eb04d4. +// +// Solidity: function isFile(string path) returns(bool result) +func (_VmSafe *VmSafeSession) IsFile(path string) (*types.Transaction, error) { + return _VmSafe.Contract.IsFile(&_VmSafe.TransactOpts, path) +} + +// IsFile is a paid mutator transaction binding the contract method 0xe0eb04d4. +// +// Solidity: function isFile(string path) returns(bool result) +func (_VmSafe *VmSafeTransactorSession) IsFile(path string) (*types.Transaction, error) { + return _VmSafe.Contract.IsFile(&_VmSafe.TransactOpts, path) +} + +// Label is a paid mutator transaction binding the contract method 0xc657c718. +// +// Solidity: function label(address account, string newLabel) returns() +func (_VmSafe *VmSafeTransactor) Label(opts *bind.TransactOpts, account common.Address, newLabel string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "label", account, newLabel) +} + +// Label is a paid mutator transaction binding the contract method 0xc657c718. +// +// Solidity: function label(address account, string newLabel) returns() +func (_VmSafe *VmSafeSession) Label(account common.Address, newLabel string) (*types.Transaction, error) { + return _VmSafe.Contract.Label(&_VmSafe.TransactOpts, account, newLabel) +} + +// Label is a paid mutator transaction binding the contract method 0xc657c718. +// +// Solidity: function label(address account, string newLabel) returns() +func (_VmSafe *VmSafeTransactorSession) Label(account common.Address, newLabel string) (*types.Transaction, error) { + return _VmSafe.Contract.Label(&_VmSafe.TransactOpts, account, newLabel) +} + +// PauseGasMetering is a paid mutator transaction binding the contract method 0xd1a5b36f. +// +// Solidity: function pauseGasMetering() returns() +func (_VmSafe *VmSafeTransactor) PauseGasMetering(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "pauseGasMetering") +} + +// PauseGasMetering is a paid mutator transaction binding the contract method 0xd1a5b36f. +// +// Solidity: function pauseGasMetering() returns() +func (_VmSafe *VmSafeSession) PauseGasMetering() (*types.Transaction, error) { + return _VmSafe.Contract.PauseGasMetering(&_VmSafe.TransactOpts) +} + +// PauseGasMetering is a paid mutator transaction binding the contract method 0xd1a5b36f. +// +// Solidity: function pauseGasMetering() returns() +func (_VmSafe *VmSafeTransactorSession) PauseGasMetering() (*types.Transaction, error) { + return _VmSafe.Contract.PauseGasMetering(&_VmSafe.TransactOpts) +} + +// Prompt is a paid mutator transaction binding the contract method 0x47eaf474. +// +// Solidity: function prompt(string promptText) returns(string input) +func (_VmSafe *VmSafeTransactor) Prompt(opts *bind.TransactOpts, promptText string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "prompt", promptText) +} + +// Prompt is a paid mutator transaction binding the contract method 0x47eaf474. +// +// Solidity: function prompt(string promptText) returns(string input) +func (_VmSafe *VmSafeSession) Prompt(promptText string) (*types.Transaction, error) { + return _VmSafe.Contract.Prompt(&_VmSafe.TransactOpts, promptText) +} + +// Prompt is a paid mutator transaction binding the contract method 0x47eaf474. +// +// Solidity: function prompt(string promptText) returns(string input) +func (_VmSafe *VmSafeTransactorSession) Prompt(promptText string) (*types.Transaction, error) { + return _VmSafe.Contract.Prompt(&_VmSafe.TransactOpts, promptText) +} + +// PromptAddress is a paid mutator transaction binding the contract method 0x62ee05f4. +// +// Solidity: function promptAddress(string promptText) returns(address) +func (_VmSafe *VmSafeTransactor) PromptAddress(opts *bind.TransactOpts, promptText string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "promptAddress", promptText) +} + +// PromptAddress is a paid mutator transaction binding the contract method 0x62ee05f4. +// +// Solidity: function promptAddress(string promptText) returns(address) +func (_VmSafe *VmSafeSession) PromptAddress(promptText string) (*types.Transaction, error) { + return _VmSafe.Contract.PromptAddress(&_VmSafe.TransactOpts, promptText) +} + +// PromptAddress is a paid mutator transaction binding the contract method 0x62ee05f4. +// +// Solidity: function promptAddress(string promptText) returns(address) +func (_VmSafe *VmSafeTransactorSession) PromptAddress(promptText string) (*types.Transaction, error) { + return _VmSafe.Contract.PromptAddress(&_VmSafe.TransactOpts, promptText) +} + +// PromptSecret is a paid mutator transaction binding the contract method 0x1e279d41. +// +// Solidity: function promptSecret(string promptText) returns(string input) +func (_VmSafe *VmSafeTransactor) PromptSecret(opts *bind.TransactOpts, promptText string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "promptSecret", promptText) +} + +// PromptSecret is a paid mutator transaction binding the contract method 0x1e279d41. +// +// Solidity: function promptSecret(string promptText) returns(string input) +func (_VmSafe *VmSafeSession) PromptSecret(promptText string) (*types.Transaction, error) { + return _VmSafe.Contract.PromptSecret(&_VmSafe.TransactOpts, promptText) +} + +// PromptSecret is a paid mutator transaction binding the contract method 0x1e279d41. +// +// Solidity: function promptSecret(string promptText) returns(string input) +func (_VmSafe *VmSafeTransactorSession) PromptSecret(promptText string) (*types.Transaction, error) { + return _VmSafe.Contract.PromptSecret(&_VmSafe.TransactOpts, promptText) +} + +// PromptSecretUint is a paid mutator transaction binding the contract method 0x69ca02b7. +// +// Solidity: function promptSecretUint(string promptText) returns(uint256) +func (_VmSafe *VmSafeTransactor) PromptSecretUint(opts *bind.TransactOpts, promptText string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "promptSecretUint", promptText) +} + +// PromptSecretUint is a paid mutator transaction binding the contract method 0x69ca02b7. +// +// Solidity: function promptSecretUint(string promptText) returns(uint256) +func (_VmSafe *VmSafeSession) PromptSecretUint(promptText string) (*types.Transaction, error) { + return _VmSafe.Contract.PromptSecretUint(&_VmSafe.TransactOpts, promptText) +} + +// PromptSecretUint is a paid mutator transaction binding the contract method 0x69ca02b7. +// +// Solidity: function promptSecretUint(string promptText) returns(uint256) +func (_VmSafe *VmSafeTransactorSession) PromptSecretUint(promptText string) (*types.Transaction, error) { + return _VmSafe.Contract.PromptSecretUint(&_VmSafe.TransactOpts, promptText) +} + +// PromptUint is a paid mutator transaction binding the contract method 0x652fd489. +// +// Solidity: function promptUint(string promptText) returns(uint256) +func (_VmSafe *VmSafeTransactor) PromptUint(opts *bind.TransactOpts, promptText string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "promptUint", promptText) +} + +// PromptUint is a paid mutator transaction binding the contract method 0x652fd489. +// +// Solidity: function promptUint(string promptText) returns(uint256) +func (_VmSafe *VmSafeSession) PromptUint(promptText string) (*types.Transaction, error) { + return _VmSafe.Contract.PromptUint(&_VmSafe.TransactOpts, promptText) +} + +// PromptUint is a paid mutator transaction binding the contract method 0x652fd489. +// +// Solidity: function promptUint(string promptText) returns(uint256) +func (_VmSafe *VmSafeTransactorSession) PromptUint(promptText string) (*types.Transaction, error) { + return _VmSafe.Contract.PromptUint(&_VmSafe.TransactOpts, promptText) +} + +// RandomAddress is a paid mutator transaction binding the contract method 0xd5bee9f5. +// +// Solidity: function randomAddress() returns(address) +func (_VmSafe *VmSafeTransactor) RandomAddress(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "randomAddress") +} + +// RandomAddress is a paid mutator transaction binding the contract method 0xd5bee9f5. +// +// Solidity: function randomAddress() returns(address) +func (_VmSafe *VmSafeSession) RandomAddress() (*types.Transaction, error) { + return _VmSafe.Contract.RandomAddress(&_VmSafe.TransactOpts) +} + +// RandomAddress is a paid mutator transaction binding the contract method 0xd5bee9f5. +// +// Solidity: function randomAddress() returns(address) +func (_VmSafe *VmSafeTransactorSession) RandomAddress() (*types.Transaction, error) { + return _VmSafe.Contract.RandomAddress(&_VmSafe.TransactOpts) +} + +// RandomUint is a paid mutator transaction binding the contract method 0x25124730. +// +// Solidity: function randomUint() returns(uint256) +func (_VmSafe *VmSafeTransactor) RandomUint(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "randomUint") +} + +// RandomUint is a paid mutator transaction binding the contract method 0x25124730. +// +// Solidity: function randomUint() returns(uint256) +func (_VmSafe *VmSafeSession) RandomUint() (*types.Transaction, error) { + return _VmSafe.Contract.RandomUint(&_VmSafe.TransactOpts) +} + +// RandomUint is a paid mutator transaction binding the contract method 0x25124730. +// +// Solidity: function randomUint() returns(uint256) +func (_VmSafe *VmSafeTransactorSession) RandomUint() (*types.Transaction, error) { + return _VmSafe.Contract.RandomUint(&_VmSafe.TransactOpts) +} + +// RandomUint0 is a paid mutator transaction binding the contract method 0xd61b051b. +// +// Solidity: function randomUint(uint256 min, uint256 max) returns(uint256) +func (_VmSafe *VmSafeTransactor) RandomUint0(opts *bind.TransactOpts, min *big.Int, max *big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "randomUint0", min, max) +} + +// RandomUint0 is a paid mutator transaction binding the contract method 0xd61b051b. +// +// Solidity: function randomUint(uint256 min, uint256 max) returns(uint256) +func (_VmSafe *VmSafeSession) RandomUint0(min *big.Int, max *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.RandomUint0(&_VmSafe.TransactOpts, min, max) +} + +// RandomUint0 is a paid mutator transaction binding the contract method 0xd61b051b. +// +// Solidity: function randomUint(uint256 min, uint256 max) returns(uint256) +func (_VmSafe *VmSafeTransactorSession) RandomUint0(min *big.Int, max *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.RandomUint0(&_VmSafe.TransactOpts, min, max) +} + +// Record is a paid mutator transaction binding the contract method 0x266cf109. +// +// Solidity: function record() returns() +func (_VmSafe *VmSafeTransactor) Record(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "record") +} + +// Record is a paid mutator transaction binding the contract method 0x266cf109. +// +// Solidity: function record() returns() +func (_VmSafe *VmSafeSession) Record() (*types.Transaction, error) { + return _VmSafe.Contract.Record(&_VmSafe.TransactOpts) +} + +// Record is a paid mutator transaction binding the contract method 0x266cf109. +// +// Solidity: function record() returns() +func (_VmSafe *VmSafeTransactorSession) Record() (*types.Transaction, error) { + return _VmSafe.Contract.Record(&_VmSafe.TransactOpts) +} + +// RecordLogs is a paid mutator transaction binding the contract method 0x41af2f52. +// +// Solidity: function recordLogs() returns() +func (_VmSafe *VmSafeTransactor) RecordLogs(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "recordLogs") +} + +// RecordLogs is a paid mutator transaction binding the contract method 0x41af2f52. +// +// Solidity: function recordLogs() returns() +func (_VmSafe *VmSafeSession) RecordLogs() (*types.Transaction, error) { + return _VmSafe.Contract.RecordLogs(&_VmSafe.TransactOpts) +} + +// RecordLogs is a paid mutator transaction binding the contract method 0x41af2f52. +// +// Solidity: function recordLogs() returns() +func (_VmSafe *VmSafeTransactorSession) RecordLogs() (*types.Transaction, error) { + return _VmSafe.Contract.RecordLogs(&_VmSafe.TransactOpts) +} + +// RememberKey is a paid mutator transaction binding the contract method 0x22100064. +// +// Solidity: function rememberKey(uint256 privateKey) returns(address keyAddr) +func (_VmSafe *VmSafeTransactor) RememberKey(opts *bind.TransactOpts, privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "rememberKey", privateKey) +} + +// RememberKey is a paid mutator transaction binding the contract method 0x22100064. +// +// Solidity: function rememberKey(uint256 privateKey) returns(address keyAddr) +func (_VmSafe *VmSafeSession) RememberKey(privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.RememberKey(&_VmSafe.TransactOpts, privateKey) +} + +// RememberKey is a paid mutator transaction binding the contract method 0x22100064. +// +// Solidity: function rememberKey(uint256 privateKey) returns(address keyAddr) +func (_VmSafe *VmSafeTransactorSession) RememberKey(privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.RememberKey(&_VmSafe.TransactOpts, privateKey) +} + +// RemoveDir is a paid mutator transaction binding the contract method 0x45c62011. +// +// Solidity: function removeDir(string path, bool recursive) returns() +func (_VmSafe *VmSafeTransactor) RemoveDir(opts *bind.TransactOpts, path string, recursive bool) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "removeDir", path, recursive) +} + +// RemoveDir is a paid mutator transaction binding the contract method 0x45c62011. +// +// Solidity: function removeDir(string path, bool recursive) returns() +func (_VmSafe *VmSafeSession) RemoveDir(path string, recursive bool) (*types.Transaction, error) { + return _VmSafe.Contract.RemoveDir(&_VmSafe.TransactOpts, path, recursive) +} + +// RemoveDir is a paid mutator transaction binding the contract method 0x45c62011. +// +// Solidity: function removeDir(string path, bool recursive) returns() +func (_VmSafe *VmSafeTransactorSession) RemoveDir(path string, recursive bool) (*types.Transaction, error) { + return _VmSafe.Contract.RemoveDir(&_VmSafe.TransactOpts, path, recursive) +} + +// RemoveFile is a paid mutator transaction binding the contract method 0xf1afe04d. +// +// Solidity: function removeFile(string path) returns() +func (_VmSafe *VmSafeTransactor) RemoveFile(opts *bind.TransactOpts, path string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "removeFile", path) +} + +// RemoveFile is a paid mutator transaction binding the contract method 0xf1afe04d. +// +// Solidity: function removeFile(string path) returns() +func (_VmSafe *VmSafeSession) RemoveFile(path string) (*types.Transaction, error) { + return _VmSafe.Contract.RemoveFile(&_VmSafe.TransactOpts, path) +} + +// RemoveFile is a paid mutator transaction binding the contract method 0xf1afe04d. +// +// Solidity: function removeFile(string path) returns() +func (_VmSafe *VmSafeTransactorSession) RemoveFile(path string) (*types.Transaction, error) { + return _VmSafe.Contract.RemoveFile(&_VmSafe.TransactOpts, path) +} + +// ResumeGasMetering is a paid mutator transaction binding the contract method 0x2bcd50e0. +// +// Solidity: function resumeGasMetering() returns() +func (_VmSafe *VmSafeTransactor) ResumeGasMetering(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "resumeGasMetering") +} + +// ResumeGasMetering is a paid mutator transaction binding the contract method 0x2bcd50e0. +// +// Solidity: function resumeGasMetering() returns() +func (_VmSafe *VmSafeSession) ResumeGasMetering() (*types.Transaction, error) { + return _VmSafe.Contract.ResumeGasMetering(&_VmSafe.TransactOpts) +} + +// ResumeGasMetering is a paid mutator transaction binding the contract method 0x2bcd50e0. +// +// Solidity: function resumeGasMetering() returns() +func (_VmSafe *VmSafeTransactorSession) ResumeGasMetering() (*types.Transaction, error) { + return _VmSafe.Contract.ResumeGasMetering(&_VmSafe.TransactOpts) +} + +// Rpc is a paid mutator transaction binding the contract method 0x0199a220. +// +// Solidity: function rpc(string urlOrAlias, string method, string params) returns(bytes data) +func (_VmSafe *VmSafeTransactor) Rpc(opts *bind.TransactOpts, urlOrAlias string, method string, params string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "rpc", urlOrAlias, method, params) +} + +// Rpc is a paid mutator transaction binding the contract method 0x0199a220. +// +// Solidity: function rpc(string urlOrAlias, string method, string params) returns(bytes data) +func (_VmSafe *VmSafeSession) Rpc(urlOrAlias string, method string, params string) (*types.Transaction, error) { + return _VmSafe.Contract.Rpc(&_VmSafe.TransactOpts, urlOrAlias, method, params) +} + +// Rpc is a paid mutator transaction binding the contract method 0x0199a220. +// +// Solidity: function rpc(string urlOrAlias, string method, string params) returns(bytes data) +func (_VmSafe *VmSafeTransactorSession) Rpc(urlOrAlias string, method string, params string) (*types.Transaction, error) { + return _VmSafe.Contract.Rpc(&_VmSafe.TransactOpts, urlOrAlias, method, params) +} + +// Rpc0 is a paid mutator transaction binding the contract method 0x1206c8a8. +// +// Solidity: function rpc(string method, string params) returns(bytes data) +func (_VmSafe *VmSafeTransactor) Rpc0(opts *bind.TransactOpts, method string, params string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "rpc0", method, params) +} + +// Rpc0 is a paid mutator transaction binding the contract method 0x1206c8a8. +// +// Solidity: function rpc(string method, string params) returns(bytes data) +func (_VmSafe *VmSafeSession) Rpc0(method string, params string) (*types.Transaction, error) { + return _VmSafe.Contract.Rpc0(&_VmSafe.TransactOpts, method, params) +} + +// Rpc0 is a paid mutator transaction binding the contract method 0x1206c8a8. +// +// Solidity: function rpc(string method, string params) returns(bytes data) +func (_VmSafe *VmSafeTransactorSession) Rpc0(method string, params string) (*types.Transaction, error) { + return _VmSafe.Contract.Rpc0(&_VmSafe.TransactOpts, method, params) +} + +// SerializeAddress is a paid mutator transaction binding the contract method 0x1e356e1a. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address[] values) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeAddress(opts *bind.TransactOpts, objectKey string, valueKey string, values []common.Address) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeAddress", objectKey, valueKey, values) +} + +// SerializeAddress is a paid mutator transaction binding the contract method 0x1e356e1a. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address[] values) returns(string json) +func (_VmSafe *VmSafeSession) SerializeAddress(objectKey string, valueKey string, values []common.Address) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeAddress(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeAddress is a paid mutator transaction binding the contract method 0x1e356e1a. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address[] values) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeAddress(objectKey string, valueKey string, values []common.Address) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeAddress(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeAddress0 is a paid mutator transaction binding the contract method 0x972c6062. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address value) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeAddress0(opts *bind.TransactOpts, objectKey string, valueKey string, value common.Address) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeAddress0", objectKey, valueKey, value) +} + +// SerializeAddress0 is a paid mutator transaction binding the contract method 0x972c6062. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address value) returns(string json) +func (_VmSafe *VmSafeSession) SerializeAddress0(objectKey string, valueKey string, value common.Address) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeAddress0(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeAddress0 is a paid mutator transaction binding the contract method 0x972c6062. +// +// Solidity: function serializeAddress(string objectKey, string valueKey, address value) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeAddress0(objectKey string, valueKey string, value common.Address) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeAddress0(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBool is a paid mutator transaction binding the contract method 0x92925aa1. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool[] values) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeBool(opts *bind.TransactOpts, objectKey string, valueKey string, values []bool) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeBool", objectKey, valueKey, values) +} + +// SerializeBool is a paid mutator transaction binding the contract method 0x92925aa1. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool[] values) returns(string json) +func (_VmSafe *VmSafeSession) SerializeBool(objectKey string, valueKey string, values []bool) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBool(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBool is a paid mutator transaction binding the contract method 0x92925aa1. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool[] values) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeBool(objectKey string, valueKey string, values []bool) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBool(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBool0 is a paid mutator transaction binding the contract method 0xac22e971. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool value) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeBool0(opts *bind.TransactOpts, objectKey string, valueKey string, value bool) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeBool0", objectKey, valueKey, value) +} + +// SerializeBool0 is a paid mutator transaction binding the contract method 0xac22e971. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool value) returns(string json) +func (_VmSafe *VmSafeSession) SerializeBool0(objectKey string, valueKey string, value bool) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBool0(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBool0 is a paid mutator transaction binding the contract method 0xac22e971. +// +// Solidity: function serializeBool(string objectKey, string valueKey, bool value) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeBool0(objectKey string, valueKey string, value bool) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBool0(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBytes is a paid mutator transaction binding the contract method 0x9884b232. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes[] values) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeBytes(opts *bind.TransactOpts, objectKey string, valueKey string, values [][]byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeBytes", objectKey, valueKey, values) +} + +// SerializeBytes is a paid mutator transaction binding the contract method 0x9884b232. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes[] values) returns(string json) +func (_VmSafe *VmSafeSession) SerializeBytes(objectKey string, valueKey string, values [][]byte) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBytes(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBytes is a paid mutator transaction binding the contract method 0x9884b232. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes[] values) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeBytes(objectKey string, valueKey string, values [][]byte) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBytes(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBytes0 is a paid mutator transaction binding the contract method 0xf21d52c7. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes value) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeBytes0(opts *bind.TransactOpts, objectKey string, valueKey string, value []byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeBytes0", objectKey, valueKey, value) +} + +// SerializeBytes0 is a paid mutator transaction binding the contract method 0xf21d52c7. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes value) returns(string json) +func (_VmSafe *VmSafeSession) SerializeBytes0(objectKey string, valueKey string, value []byte) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBytes0(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBytes0 is a paid mutator transaction binding the contract method 0xf21d52c7. +// +// Solidity: function serializeBytes(string objectKey, string valueKey, bytes value) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeBytes0(objectKey string, valueKey string, value []byte) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBytes0(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBytes32 is a paid mutator transaction binding the contract method 0x201e43e2. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32[] values) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeBytes32(opts *bind.TransactOpts, objectKey string, valueKey string, values [][32]byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeBytes32", objectKey, valueKey, values) +} + +// SerializeBytes32 is a paid mutator transaction binding the contract method 0x201e43e2. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32[] values) returns(string json) +func (_VmSafe *VmSafeSession) SerializeBytes32(objectKey string, valueKey string, values [][32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBytes32(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBytes32 is a paid mutator transaction binding the contract method 0x201e43e2. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32[] values) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeBytes32(objectKey string, valueKey string, values [][32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBytes32(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeBytes320 is a paid mutator transaction binding the contract method 0x2d812b44. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32 value) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeBytes320(opts *bind.TransactOpts, objectKey string, valueKey string, value [32]byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeBytes320", objectKey, valueKey, value) +} + +// SerializeBytes320 is a paid mutator transaction binding the contract method 0x2d812b44. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32 value) returns(string json) +func (_VmSafe *VmSafeSession) SerializeBytes320(objectKey string, valueKey string, value [32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBytes320(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeBytes320 is a paid mutator transaction binding the contract method 0x2d812b44. +// +// Solidity: function serializeBytes32(string objectKey, string valueKey, bytes32 value) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeBytes320(objectKey string, valueKey string, value [32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeBytes320(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeInt is a paid mutator transaction binding the contract method 0x3f33db60. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256 value) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeInt(opts *bind.TransactOpts, objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeInt", objectKey, valueKey, value) +} + +// SerializeInt is a paid mutator transaction binding the contract method 0x3f33db60. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256 value) returns(string json) +func (_VmSafe *VmSafeSession) SerializeInt(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeInt(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeInt is a paid mutator transaction binding the contract method 0x3f33db60. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256 value) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeInt(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeInt(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeInt0 is a paid mutator transaction binding the contract method 0x7676e127. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256[] values) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeInt0(opts *bind.TransactOpts, objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeInt0", objectKey, valueKey, values) +} + +// SerializeInt0 is a paid mutator transaction binding the contract method 0x7676e127. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256[] values) returns(string json) +func (_VmSafe *VmSafeSession) SerializeInt0(objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeInt0(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeInt0 is a paid mutator transaction binding the contract method 0x7676e127. +// +// Solidity: function serializeInt(string objectKey, string valueKey, int256[] values) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeInt0(objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeInt0(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeJson is a paid mutator transaction binding the contract method 0x9b3358b0. +// +// Solidity: function serializeJson(string objectKey, string value) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeJson(opts *bind.TransactOpts, objectKey string, value string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeJson", objectKey, value) +} + +// SerializeJson is a paid mutator transaction binding the contract method 0x9b3358b0. +// +// Solidity: function serializeJson(string objectKey, string value) returns(string json) +func (_VmSafe *VmSafeSession) SerializeJson(objectKey string, value string) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeJson(&_VmSafe.TransactOpts, objectKey, value) +} + +// SerializeJson is a paid mutator transaction binding the contract method 0x9b3358b0. +// +// Solidity: function serializeJson(string objectKey, string value) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeJson(objectKey string, value string) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeJson(&_VmSafe.TransactOpts, objectKey, value) +} + +// SerializeJsonType0 is a paid mutator transaction binding the contract method 0x6f93bccb. +// +// Solidity: function serializeJsonType(string objectKey, string valueKey, string typeDescription, bytes value) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeJsonType0(opts *bind.TransactOpts, objectKey string, valueKey string, typeDescription string, value []byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeJsonType0", objectKey, valueKey, typeDescription, value) +} + +// SerializeJsonType0 is a paid mutator transaction binding the contract method 0x6f93bccb. +// +// Solidity: function serializeJsonType(string objectKey, string valueKey, string typeDescription, bytes value) returns(string json) +func (_VmSafe *VmSafeSession) SerializeJsonType0(objectKey string, valueKey string, typeDescription string, value []byte) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeJsonType0(&_VmSafe.TransactOpts, objectKey, valueKey, typeDescription, value) +} + +// SerializeJsonType0 is a paid mutator transaction binding the contract method 0x6f93bccb. +// +// Solidity: function serializeJsonType(string objectKey, string valueKey, string typeDescription, bytes value) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeJsonType0(objectKey string, valueKey string, typeDescription string, value []byte) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeJsonType0(&_VmSafe.TransactOpts, objectKey, valueKey, typeDescription, value) +} + +// SerializeString is a paid mutator transaction binding the contract method 0x561cd6f3. +// +// Solidity: function serializeString(string objectKey, string valueKey, string[] values) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeString(opts *bind.TransactOpts, objectKey string, valueKey string, values []string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeString", objectKey, valueKey, values) +} + +// SerializeString is a paid mutator transaction binding the contract method 0x561cd6f3. +// +// Solidity: function serializeString(string objectKey, string valueKey, string[] values) returns(string json) +func (_VmSafe *VmSafeSession) SerializeString(objectKey string, valueKey string, values []string) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeString(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeString is a paid mutator transaction binding the contract method 0x561cd6f3. +// +// Solidity: function serializeString(string objectKey, string valueKey, string[] values) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeString(objectKey string, valueKey string, values []string) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeString(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeString0 is a paid mutator transaction binding the contract method 0x88da6d35. +// +// Solidity: function serializeString(string objectKey, string valueKey, string value) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeString0(opts *bind.TransactOpts, objectKey string, valueKey string, value string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeString0", objectKey, valueKey, value) +} + +// SerializeString0 is a paid mutator transaction binding the contract method 0x88da6d35. +// +// Solidity: function serializeString(string objectKey, string valueKey, string value) returns(string json) +func (_VmSafe *VmSafeSession) SerializeString0(objectKey string, valueKey string, value string) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeString0(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeString0 is a paid mutator transaction binding the contract method 0x88da6d35. +// +// Solidity: function serializeString(string objectKey, string valueKey, string value) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeString0(objectKey string, valueKey string, value string) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeString0(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeUint is a paid mutator transaction binding the contract method 0x129e9002. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256 value) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeUint(opts *bind.TransactOpts, objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeUint", objectKey, valueKey, value) +} + +// SerializeUint is a paid mutator transaction binding the contract method 0x129e9002. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256 value) returns(string json) +func (_VmSafe *VmSafeSession) SerializeUint(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeUint(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeUint is a paid mutator transaction binding the contract method 0x129e9002. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256 value) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeUint(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeUint(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeUint0 is a paid mutator transaction binding the contract method 0xfee9a469. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256[] values) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeUint0(opts *bind.TransactOpts, objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeUint0", objectKey, valueKey, values) +} + +// SerializeUint0 is a paid mutator transaction binding the contract method 0xfee9a469. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256[] values) returns(string json) +func (_VmSafe *VmSafeSession) SerializeUint0(objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeUint0(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeUint0 is a paid mutator transaction binding the contract method 0xfee9a469. +// +// Solidity: function serializeUint(string objectKey, string valueKey, uint256[] values) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeUint0(objectKey string, valueKey string, values []*big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeUint0(&_VmSafe.TransactOpts, objectKey, valueKey, values) +} + +// SerializeUintToHex is a paid mutator transaction binding the contract method 0xae5a2ae8. +// +// Solidity: function serializeUintToHex(string objectKey, string valueKey, uint256 value) returns(string json) +func (_VmSafe *VmSafeTransactor) SerializeUintToHex(opts *bind.TransactOpts, objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "serializeUintToHex", objectKey, valueKey, value) +} + +// SerializeUintToHex is a paid mutator transaction binding the contract method 0xae5a2ae8. +// +// Solidity: function serializeUintToHex(string objectKey, string valueKey, uint256 value) returns(string json) +func (_VmSafe *VmSafeSession) SerializeUintToHex(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeUintToHex(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SerializeUintToHex is a paid mutator transaction binding the contract method 0xae5a2ae8. +// +// Solidity: function serializeUintToHex(string objectKey, string valueKey, uint256 value) returns(string json) +func (_VmSafe *VmSafeTransactorSession) SerializeUintToHex(objectKey string, valueKey string, value *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.SerializeUintToHex(&_VmSafe.TransactOpts, objectKey, valueKey, value) +} + +// SetEnv is a paid mutator transaction binding the contract method 0x3d5923ee. +// +// Solidity: function setEnv(string name, string value) returns() +func (_VmSafe *VmSafeTransactor) SetEnv(opts *bind.TransactOpts, name string, value string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "setEnv", name, value) +} + +// SetEnv is a paid mutator transaction binding the contract method 0x3d5923ee. +// +// Solidity: function setEnv(string name, string value) returns() +func (_VmSafe *VmSafeSession) SetEnv(name string, value string) (*types.Transaction, error) { + return _VmSafe.Contract.SetEnv(&_VmSafe.TransactOpts, name, value) +} + +// SetEnv is a paid mutator transaction binding the contract method 0x3d5923ee. +// +// Solidity: function setEnv(string name, string value) returns() +func (_VmSafe *VmSafeTransactorSession) SetEnv(name string, value string) (*types.Transaction, error) { + return _VmSafe.Contract.SetEnv(&_VmSafe.TransactOpts, name, value) +} + +// Sign1 is a paid mutator transaction binding the contract method 0xb25c5a25. +// +// Solidity: function sign((address,uint256,uint256,uint256) wallet, bytes32 digest) returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeTransactor) Sign1(opts *bind.TransactOpts, wallet VmSafeWallet, digest [32]byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "sign1", wallet, digest) +} + +// Sign1 is a paid mutator transaction binding the contract method 0xb25c5a25. +// +// Solidity: function sign((address,uint256,uint256,uint256) wallet, bytes32 digest) returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeSession) Sign1(wallet VmSafeWallet, digest [32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.Sign1(&_VmSafe.TransactOpts, wallet, digest) +} + +// Sign1 is a paid mutator transaction binding the contract method 0xb25c5a25. +// +// Solidity: function sign((address,uint256,uint256,uint256) wallet, bytes32 digest) returns(uint8 v, bytes32 r, bytes32 s) +func (_VmSafe *VmSafeTransactorSession) Sign1(wallet VmSafeWallet, digest [32]byte) (*types.Transaction, error) { + return _VmSafe.Contract.Sign1(&_VmSafe.TransactOpts, wallet, digest) +} + +// Sleep is a paid mutator transaction binding the contract method 0xfa9d8713. +// +// Solidity: function sleep(uint256 duration) returns() +func (_VmSafe *VmSafeTransactor) Sleep(opts *bind.TransactOpts, duration *big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "sleep", duration) +} + +// Sleep is a paid mutator transaction binding the contract method 0xfa9d8713. +// +// Solidity: function sleep(uint256 duration) returns() +func (_VmSafe *VmSafeSession) Sleep(duration *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.Sleep(&_VmSafe.TransactOpts, duration) +} + +// Sleep is a paid mutator transaction binding the contract method 0xfa9d8713. +// +// Solidity: function sleep(uint256 duration) returns() +func (_VmSafe *VmSafeTransactorSession) Sleep(duration *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.Sleep(&_VmSafe.TransactOpts, duration) +} + +// StartBroadcast is a paid mutator transaction binding the contract method 0x7fb5297f. +// +// Solidity: function startBroadcast() returns() +func (_VmSafe *VmSafeTransactor) StartBroadcast(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "startBroadcast") +} + +// StartBroadcast is a paid mutator transaction binding the contract method 0x7fb5297f. +// +// Solidity: function startBroadcast() returns() +func (_VmSafe *VmSafeSession) StartBroadcast() (*types.Transaction, error) { + return _VmSafe.Contract.StartBroadcast(&_VmSafe.TransactOpts) +} + +// StartBroadcast is a paid mutator transaction binding the contract method 0x7fb5297f. +// +// Solidity: function startBroadcast() returns() +func (_VmSafe *VmSafeTransactorSession) StartBroadcast() (*types.Transaction, error) { + return _VmSafe.Contract.StartBroadcast(&_VmSafe.TransactOpts) +} + +// StartBroadcast0 is a paid mutator transaction binding the contract method 0x7fec2a8d. +// +// Solidity: function startBroadcast(address signer) returns() +func (_VmSafe *VmSafeTransactor) StartBroadcast0(opts *bind.TransactOpts, signer common.Address) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "startBroadcast0", signer) +} + +// StartBroadcast0 is a paid mutator transaction binding the contract method 0x7fec2a8d. +// +// Solidity: function startBroadcast(address signer) returns() +func (_VmSafe *VmSafeSession) StartBroadcast0(signer common.Address) (*types.Transaction, error) { + return _VmSafe.Contract.StartBroadcast0(&_VmSafe.TransactOpts, signer) +} + +// StartBroadcast0 is a paid mutator transaction binding the contract method 0x7fec2a8d. +// +// Solidity: function startBroadcast(address signer) returns() +func (_VmSafe *VmSafeTransactorSession) StartBroadcast0(signer common.Address) (*types.Transaction, error) { + return _VmSafe.Contract.StartBroadcast0(&_VmSafe.TransactOpts, signer) +} + +// StartBroadcast1 is a paid mutator transaction binding the contract method 0xce817d47. +// +// Solidity: function startBroadcast(uint256 privateKey) returns() +func (_VmSafe *VmSafeTransactor) StartBroadcast1(opts *bind.TransactOpts, privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "startBroadcast1", privateKey) +} + +// StartBroadcast1 is a paid mutator transaction binding the contract method 0xce817d47. +// +// Solidity: function startBroadcast(uint256 privateKey) returns() +func (_VmSafe *VmSafeSession) StartBroadcast1(privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.StartBroadcast1(&_VmSafe.TransactOpts, privateKey) +} + +// StartBroadcast1 is a paid mutator transaction binding the contract method 0xce817d47. +// +// Solidity: function startBroadcast(uint256 privateKey) returns() +func (_VmSafe *VmSafeTransactorSession) StartBroadcast1(privateKey *big.Int) (*types.Transaction, error) { + return _VmSafe.Contract.StartBroadcast1(&_VmSafe.TransactOpts, privateKey) +} + +// StartMappingRecording is a paid mutator transaction binding the contract method 0x3e9705c0. +// +// Solidity: function startMappingRecording() returns() +func (_VmSafe *VmSafeTransactor) StartMappingRecording(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "startMappingRecording") +} + +// StartMappingRecording is a paid mutator transaction binding the contract method 0x3e9705c0. +// +// Solidity: function startMappingRecording() returns() +func (_VmSafe *VmSafeSession) StartMappingRecording() (*types.Transaction, error) { + return _VmSafe.Contract.StartMappingRecording(&_VmSafe.TransactOpts) +} + +// StartMappingRecording is a paid mutator transaction binding the contract method 0x3e9705c0. +// +// Solidity: function startMappingRecording() returns() +func (_VmSafe *VmSafeTransactorSession) StartMappingRecording() (*types.Transaction, error) { + return _VmSafe.Contract.StartMappingRecording(&_VmSafe.TransactOpts) +} + +// StartStateDiffRecording is a paid mutator transaction binding the contract method 0xcf22e3c9. +// +// Solidity: function startStateDiffRecording() returns() +func (_VmSafe *VmSafeTransactor) StartStateDiffRecording(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "startStateDiffRecording") +} + +// StartStateDiffRecording is a paid mutator transaction binding the contract method 0xcf22e3c9. +// +// Solidity: function startStateDiffRecording() returns() +func (_VmSafe *VmSafeSession) StartStateDiffRecording() (*types.Transaction, error) { + return _VmSafe.Contract.StartStateDiffRecording(&_VmSafe.TransactOpts) +} + +// StartStateDiffRecording is a paid mutator transaction binding the contract method 0xcf22e3c9. +// +// Solidity: function startStateDiffRecording() returns() +func (_VmSafe *VmSafeTransactorSession) StartStateDiffRecording() (*types.Transaction, error) { + return _VmSafe.Contract.StartStateDiffRecording(&_VmSafe.TransactOpts) +} + +// StopAndReturnStateDiff is a paid mutator transaction binding the contract method 0xaa5cf90e. +// +// Solidity: function stopAndReturnStateDiff() returns(((uint256,uint256),uint8,address,address,bool,uint256,uint256,bytes,uint256,bytes,bool,(address,bytes32,bool,bytes32,bytes32,bool)[],uint64)[] accountAccesses) +func (_VmSafe *VmSafeTransactor) StopAndReturnStateDiff(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "stopAndReturnStateDiff") +} + +// StopAndReturnStateDiff is a paid mutator transaction binding the contract method 0xaa5cf90e. +// +// Solidity: function stopAndReturnStateDiff() returns(((uint256,uint256),uint8,address,address,bool,uint256,uint256,bytes,uint256,bytes,bool,(address,bytes32,bool,bytes32,bytes32,bool)[],uint64)[] accountAccesses) +func (_VmSafe *VmSafeSession) StopAndReturnStateDiff() (*types.Transaction, error) { + return _VmSafe.Contract.StopAndReturnStateDiff(&_VmSafe.TransactOpts) +} + +// StopAndReturnStateDiff is a paid mutator transaction binding the contract method 0xaa5cf90e. +// +// Solidity: function stopAndReturnStateDiff() returns(((uint256,uint256),uint8,address,address,bool,uint256,uint256,bytes,uint256,bytes,bool,(address,bytes32,bool,bytes32,bytes32,bool)[],uint64)[] accountAccesses) +func (_VmSafe *VmSafeTransactorSession) StopAndReturnStateDiff() (*types.Transaction, error) { + return _VmSafe.Contract.StopAndReturnStateDiff(&_VmSafe.TransactOpts) +} + +// StopBroadcast is a paid mutator transaction binding the contract method 0x76eadd36. +// +// Solidity: function stopBroadcast() returns() +func (_VmSafe *VmSafeTransactor) StopBroadcast(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "stopBroadcast") +} + +// StopBroadcast is a paid mutator transaction binding the contract method 0x76eadd36. +// +// Solidity: function stopBroadcast() returns() +func (_VmSafe *VmSafeSession) StopBroadcast() (*types.Transaction, error) { + return _VmSafe.Contract.StopBroadcast(&_VmSafe.TransactOpts) +} + +// StopBroadcast is a paid mutator transaction binding the contract method 0x76eadd36. +// +// Solidity: function stopBroadcast() returns() +func (_VmSafe *VmSafeTransactorSession) StopBroadcast() (*types.Transaction, error) { + return _VmSafe.Contract.StopBroadcast(&_VmSafe.TransactOpts) +} + +// StopMappingRecording is a paid mutator transaction binding the contract method 0x0d4aae9b. +// +// Solidity: function stopMappingRecording() returns() +func (_VmSafe *VmSafeTransactor) StopMappingRecording(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "stopMappingRecording") +} + +// StopMappingRecording is a paid mutator transaction binding the contract method 0x0d4aae9b. +// +// Solidity: function stopMappingRecording() returns() +func (_VmSafe *VmSafeSession) StopMappingRecording() (*types.Transaction, error) { + return _VmSafe.Contract.StopMappingRecording(&_VmSafe.TransactOpts) +} + +// StopMappingRecording is a paid mutator transaction binding the contract method 0x0d4aae9b. +// +// Solidity: function stopMappingRecording() returns() +func (_VmSafe *VmSafeTransactorSession) StopMappingRecording() (*types.Transaction, error) { + return _VmSafe.Contract.StopMappingRecording(&_VmSafe.TransactOpts) +} + +// TryFfi is a paid mutator transaction binding the contract method 0xf45c1ce7. +// +// Solidity: function tryFfi(string[] commandInput) returns((int32,bytes,bytes) result) +func (_VmSafe *VmSafeTransactor) TryFfi(opts *bind.TransactOpts, commandInput []string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "tryFfi", commandInput) +} + +// TryFfi is a paid mutator transaction binding the contract method 0xf45c1ce7. +// +// Solidity: function tryFfi(string[] commandInput) returns((int32,bytes,bytes) result) +func (_VmSafe *VmSafeSession) TryFfi(commandInput []string) (*types.Transaction, error) { + return _VmSafe.Contract.TryFfi(&_VmSafe.TransactOpts, commandInput) +} + +// TryFfi is a paid mutator transaction binding the contract method 0xf45c1ce7. +// +// Solidity: function tryFfi(string[] commandInput) returns((int32,bytes,bytes) result) +func (_VmSafe *VmSafeTransactorSession) TryFfi(commandInput []string) (*types.Transaction, error) { + return _VmSafe.Contract.TryFfi(&_VmSafe.TransactOpts, commandInput) +} + +// UnixTime is a paid mutator transaction binding the contract method 0x625387dc. +// +// Solidity: function unixTime() returns(uint256 milliseconds) +func (_VmSafe *VmSafeTransactor) UnixTime(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "unixTime") +} + +// UnixTime is a paid mutator transaction binding the contract method 0x625387dc. +// +// Solidity: function unixTime() returns(uint256 milliseconds) +func (_VmSafe *VmSafeSession) UnixTime() (*types.Transaction, error) { + return _VmSafe.Contract.UnixTime(&_VmSafe.TransactOpts) +} + +// UnixTime is a paid mutator transaction binding the contract method 0x625387dc. +// +// Solidity: function unixTime() returns(uint256 milliseconds) +func (_VmSafe *VmSafeTransactorSession) UnixTime() (*types.Transaction, error) { + return _VmSafe.Contract.UnixTime(&_VmSafe.TransactOpts) +} + +// WriteFile is a paid mutator transaction binding the contract method 0x897e0a97. +// +// Solidity: function writeFile(string path, string data) returns() +func (_VmSafe *VmSafeTransactor) WriteFile(opts *bind.TransactOpts, path string, data string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "writeFile", path, data) +} + +// WriteFile is a paid mutator transaction binding the contract method 0x897e0a97. +// +// Solidity: function writeFile(string path, string data) returns() +func (_VmSafe *VmSafeSession) WriteFile(path string, data string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteFile(&_VmSafe.TransactOpts, path, data) +} + +// WriteFile is a paid mutator transaction binding the contract method 0x897e0a97. +// +// Solidity: function writeFile(string path, string data) returns() +func (_VmSafe *VmSafeTransactorSession) WriteFile(path string, data string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteFile(&_VmSafe.TransactOpts, path, data) +} + +// WriteFileBinary is a paid mutator transaction binding the contract method 0x1f21fc80. +// +// Solidity: function writeFileBinary(string path, bytes data) returns() +func (_VmSafe *VmSafeTransactor) WriteFileBinary(opts *bind.TransactOpts, path string, data []byte) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "writeFileBinary", path, data) +} + +// WriteFileBinary is a paid mutator transaction binding the contract method 0x1f21fc80. +// +// Solidity: function writeFileBinary(string path, bytes data) returns() +func (_VmSafe *VmSafeSession) WriteFileBinary(path string, data []byte) (*types.Transaction, error) { + return _VmSafe.Contract.WriteFileBinary(&_VmSafe.TransactOpts, path, data) +} + +// WriteFileBinary is a paid mutator transaction binding the contract method 0x1f21fc80. +// +// Solidity: function writeFileBinary(string path, bytes data) returns() +func (_VmSafe *VmSafeTransactorSession) WriteFileBinary(path string, data []byte) (*types.Transaction, error) { + return _VmSafe.Contract.WriteFileBinary(&_VmSafe.TransactOpts, path, data) +} + +// WriteJson is a paid mutator transaction binding the contract method 0x35d6ad46. +// +// Solidity: function writeJson(string json, string path, string valueKey) returns() +func (_VmSafe *VmSafeTransactor) WriteJson(opts *bind.TransactOpts, json string, path string, valueKey string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "writeJson", json, path, valueKey) +} + +// WriteJson is a paid mutator transaction binding the contract method 0x35d6ad46. +// +// Solidity: function writeJson(string json, string path, string valueKey) returns() +func (_VmSafe *VmSafeSession) WriteJson(json string, path string, valueKey string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteJson(&_VmSafe.TransactOpts, json, path, valueKey) +} + +// WriteJson is a paid mutator transaction binding the contract method 0x35d6ad46. +// +// Solidity: function writeJson(string json, string path, string valueKey) returns() +func (_VmSafe *VmSafeTransactorSession) WriteJson(json string, path string, valueKey string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteJson(&_VmSafe.TransactOpts, json, path, valueKey) +} + +// WriteJson0 is a paid mutator transaction binding the contract method 0xe23cd19f. +// +// Solidity: function writeJson(string json, string path) returns() +func (_VmSafe *VmSafeTransactor) WriteJson0(opts *bind.TransactOpts, json string, path string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "writeJson0", json, path) +} + +// WriteJson0 is a paid mutator transaction binding the contract method 0xe23cd19f. +// +// Solidity: function writeJson(string json, string path) returns() +func (_VmSafe *VmSafeSession) WriteJson0(json string, path string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteJson0(&_VmSafe.TransactOpts, json, path) +} + +// WriteJson0 is a paid mutator transaction binding the contract method 0xe23cd19f. +// +// Solidity: function writeJson(string json, string path) returns() +func (_VmSafe *VmSafeTransactorSession) WriteJson0(json string, path string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteJson0(&_VmSafe.TransactOpts, json, path) +} + +// WriteLine is a paid mutator transaction binding the contract method 0x619d897f. +// +// Solidity: function writeLine(string path, string data) returns() +func (_VmSafe *VmSafeTransactor) WriteLine(opts *bind.TransactOpts, path string, data string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "writeLine", path, data) +} + +// WriteLine is a paid mutator transaction binding the contract method 0x619d897f. +// +// Solidity: function writeLine(string path, string data) returns() +func (_VmSafe *VmSafeSession) WriteLine(path string, data string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteLine(&_VmSafe.TransactOpts, path, data) +} + +// WriteLine is a paid mutator transaction binding the contract method 0x619d897f. +// +// Solidity: function writeLine(string path, string data) returns() +func (_VmSafe *VmSafeTransactorSession) WriteLine(path string, data string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteLine(&_VmSafe.TransactOpts, path, data) +} + +// WriteToml is a paid mutator transaction binding the contract method 0x51ac6a33. +// +// Solidity: function writeToml(string json, string path, string valueKey) returns() +func (_VmSafe *VmSafeTransactor) WriteToml(opts *bind.TransactOpts, json string, path string, valueKey string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "writeToml", json, path, valueKey) +} + +// WriteToml is a paid mutator transaction binding the contract method 0x51ac6a33. +// +// Solidity: function writeToml(string json, string path, string valueKey) returns() +func (_VmSafe *VmSafeSession) WriteToml(json string, path string, valueKey string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteToml(&_VmSafe.TransactOpts, json, path, valueKey) +} + +// WriteToml is a paid mutator transaction binding the contract method 0x51ac6a33. +// +// Solidity: function writeToml(string json, string path, string valueKey) returns() +func (_VmSafe *VmSafeTransactorSession) WriteToml(json string, path string, valueKey string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteToml(&_VmSafe.TransactOpts, json, path, valueKey) +} + +// WriteToml0 is a paid mutator transaction binding the contract method 0xc0865ba7. +// +// Solidity: function writeToml(string json, string path) returns() +func (_VmSafe *VmSafeTransactor) WriteToml0(opts *bind.TransactOpts, json string, path string) (*types.Transaction, error) { + return _VmSafe.contract.Transact(opts, "writeToml0", json, path) +} + +// WriteToml0 is a paid mutator transaction binding the contract method 0xc0865ba7. +// +// Solidity: function writeToml(string json, string path) returns() +func (_VmSafe *VmSafeSession) WriteToml0(json string, path string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteToml0(&_VmSafe.TransactOpts, json, path) +} + +// WriteToml0 is a paid mutator transaction binding the contract method 0xc0865ba7. +// +// Solidity: function writeToml(string json, string path) returns() +func (_VmSafe *VmSafeTransactorSession) WriteToml0(json string, path string) (*types.Transaction, error) { + return _VmSafe.Contract.WriteToml0(&_VmSafe.TransactOpts, json, path) +} diff --git a/v2/pkg/wzeta.sol/weth9.go b/v2/pkg/wzeta.sol/weth9.go new file mode 100644 index 00000000..94a2af08 --- /dev/null +++ b/v2/pkg/wzeta.sol/weth9.go @@ -0,0 +1,1113 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package wzeta + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// WETH9MetaData contains all meta data concerning the WETH9 contract. +var WETH9MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"guy\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"dst\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"wad\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"guy\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"dst\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"wad\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", + Bin: "0x60c0604052600d60809081526c2bb930b83832b21022ba3432b960991b60a05260009061002c9082610114565b506040805180820190915260048152630ae8aa8960e31b60208201526001906100559082610114565b506002805460ff1916601217905534801561006f57600080fd5b506101d2565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009f57607f821691505b6020821081036100bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561010f57806000526020600020601f840160051c810160208510156100ec5750805b601f840160051c820191505b8181101561010c57600081556001016100f8565b50505b505050565b81516001600160401b0381111561012d5761012d610075565b6101418161013b845461008b565b846100c5565b6020601f821160018114610175576000831561015d5750848201515b600019600385901b1c1916600184901b17845561010c565b600084815260208120601f198516915b828110156101a55787850151825560209485019460019092019101610185565b50848210156101c35786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610986806101e16000396000f3fe6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146101fa578063d0e30db01461021a578063dd62ed3e1461022257600080fd5b8063313ce5671461018c57806370a08231146101b857806395d89b41146101e557600080fd5b806318160ddd116100a557806318160ddd1461012f57806323b872dd1461014c5780632e1a7d4d1461016c57600080fd5b806306fdde03146100d4578063095ea7b3146100ff57600080fd5b366100cf576100cd61025a565b005b600080fd5b3480156100e057600080fd5b506100e96102b5565b6040516100f69190610745565b60405180910390f35b34801561010b57600080fd5b5061011f61011a3660046107da565b610343565b60405190151581526020016100f6565b34801561013b57600080fd5b50475b6040519081526020016100f6565b34801561015857600080fd5b5061011f610167366004610804565b6103bd565b34801561017857600080fd5b506100cd610187366004610841565b610647565b34801561019857600080fd5b506002546101a69060ff1681565b60405160ff90911681526020016100f6565b3480156101c457600080fd5b5061013e6101d336600461085a565b60036020526000908152604090205481565b3480156101f157600080fd5b506100e9610724565b34801561020657600080fd5b5061011f6102153660046107da565b610731565b6100cd61025a565b34801561022e57600080fd5b5061013e61023d366004610875565b600460209081526000928352604080842090915290825290205481565b33600090815260036020526040812080543492906102799084906108d7565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102c2906108ea565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee906108ea565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103ab9086815260200190565b60405180910390a35060015b92915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081205482111561042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600060248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841633148015906104a1575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105605773ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033845290915290205482111561051a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091528120805484929061055a90849061093d565b90915550505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061059590849061093d565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080548492906105cf9084906108d7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161063591815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561069a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b33600090815260036020526040812080548392906106b990849061093d565b9091555050604051339082156108fc029083906000818181858888f193505050501580156106eb573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b600180546102c2906108ea565b600061073e3384846103bd565b9392505050565b602081526000825180602084015260005b818110156107735760208186018101516040868401015201610756565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107d557600080fd5b919050565b600080604083850312156107ed57600080fd5b6107f6836107b1565b946020939093013593505050565b60008060006060848603121561081957600080fd5b610822846107b1565b9250610830602085016107b1565b929592945050506040919091013590565b60006020828403121561085357600080fd5b5035919050565b60006020828403121561086c57600080fd5b61073e826107b1565b6000806040838503121561088857600080fd5b610891836107b1565b915061089f602084016107b1565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156103b7576103b76108a8565b600181811c908216806108fe57607f821691505b602082108103610937577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b818103818111156103b7576103b76108a856fea264697066735822122008d7fc4e09519c5dd9f356b03596f6829a151d0bc7682533f9ceab4e459f5ee264736f6c634300081a0033", +} + +// WETH9ABI is the input ABI used to generate the binding from. +// Deprecated: Use WETH9MetaData.ABI instead. +var WETH9ABI = WETH9MetaData.ABI + +// WETH9Bin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use WETH9MetaData.Bin instead. +var WETH9Bin = WETH9MetaData.Bin + +// DeployWETH9 deploys a new Ethereum contract, binding an instance of WETH9 to it. +func DeployWETH9(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *WETH9, error) { + parsed, err := WETH9MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(WETH9Bin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &WETH9{WETH9Caller: WETH9Caller{contract: contract}, WETH9Transactor: WETH9Transactor{contract: contract}, WETH9Filterer: WETH9Filterer{contract: contract}}, nil +} + +// WETH9 is an auto generated Go binding around an Ethereum contract. +type WETH9 struct { + WETH9Caller // Read-only binding to the contract + WETH9Transactor // Write-only binding to the contract + WETH9Filterer // Log filterer for contract events +} + +// WETH9Caller is an auto generated read-only Go binding around an Ethereum contract. +type WETH9Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// WETH9Transactor is an auto generated write-only Go binding around an Ethereum contract. +type WETH9Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// WETH9Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type WETH9Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// WETH9Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type WETH9Session struct { + Contract *WETH9 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// WETH9CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type WETH9CallerSession struct { + Contract *WETH9Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// WETH9TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type WETH9TransactorSession struct { + Contract *WETH9Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// WETH9Raw is an auto generated low-level Go binding around an Ethereum contract. +type WETH9Raw struct { + Contract *WETH9 // Generic contract binding to access the raw methods on +} + +// WETH9CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type WETH9CallerRaw struct { + Contract *WETH9Caller // Generic read-only contract binding to access the raw methods on +} + +// WETH9TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type WETH9TransactorRaw struct { + Contract *WETH9Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewWETH9 creates a new instance of WETH9, bound to a specific deployed contract. +func NewWETH9(address common.Address, backend bind.ContractBackend) (*WETH9, error) { + contract, err := bindWETH9(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &WETH9{WETH9Caller: WETH9Caller{contract: contract}, WETH9Transactor: WETH9Transactor{contract: contract}, WETH9Filterer: WETH9Filterer{contract: contract}}, nil +} + +// NewWETH9Caller creates a new read-only instance of WETH9, bound to a specific deployed contract. +func NewWETH9Caller(address common.Address, caller bind.ContractCaller) (*WETH9Caller, error) { + contract, err := bindWETH9(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &WETH9Caller{contract: contract}, nil +} + +// NewWETH9Transactor creates a new write-only instance of WETH9, bound to a specific deployed contract. +func NewWETH9Transactor(address common.Address, transactor bind.ContractTransactor) (*WETH9Transactor, error) { + contract, err := bindWETH9(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &WETH9Transactor{contract: contract}, nil +} + +// NewWETH9Filterer creates a new log filterer instance of WETH9, bound to a specific deployed contract. +func NewWETH9Filterer(address common.Address, filterer bind.ContractFilterer) (*WETH9Filterer, error) { + contract, err := bindWETH9(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &WETH9Filterer{contract: contract}, nil +} + +// bindWETH9 binds a generic wrapper to an already deployed contract. +func bindWETH9(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := WETH9MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_WETH9 *WETH9Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _WETH9.Contract.WETH9Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_WETH9 *WETH9Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _WETH9.Contract.WETH9Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_WETH9 *WETH9Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _WETH9.Contract.WETH9Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_WETH9 *WETH9CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _WETH9.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_WETH9 *WETH9TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _WETH9.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_WETH9 *WETH9TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _WETH9.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address , address ) view returns(uint256) +func (_WETH9 *WETH9Caller) Allowance(opts *bind.CallOpts, arg0 common.Address, arg1 common.Address) (*big.Int, error) { + var out []interface{} + err := _WETH9.contract.Call(opts, &out, "allowance", arg0, arg1) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address , address ) view returns(uint256) +func (_WETH9 *WETH9Session) Allowance(arg0 common.Address, arg1 common.Address) (*big.Int, error) { + return _WETH9.Contract.Allowance(&_WETH9.CallOpts, arg0, arg1) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address , address ) view returns(uint256) +func (_WETH9 *WETH9CallerSession) Allowance(arg0 common.Address, arg1 common.Address) (*big.Int, error) { + return _WETH9.Contract.Allowance(&_WETH9.CallOpts, arg0, arg1) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address ) view returns(uint256) +func (_WETH9 *WETH9Caller) BalanceOf(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _WETH9.contract.Call(opts, &out, "balanceOf", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address ) view returns(uint256) +func (_WETH9 *WETH9Session) BalanceOf(arg0 common.Address) (*big.Int, error) { + return _WETH9.Contract.BalanceOf(&_WETH9.CallOpts, arg0) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address ) view returns(uint256) +func (_WETH9 *WETH9CallerSession) BalanceOf(arg0 common.Address) (*big.Int, error) { + return _WETH9.Contract.BalanceOf(&_WETH9.CallOpts, arg0) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_WETH9 *WETH9Caller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _WETH9.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_WETH9 *WETH9Session) Decimals() (uint8, error) { + return _WETH9.Contract.Decimals(&_WETH9.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_WETH9 *WETH9CallerSession) Decimals() (uint8, error) { + return _WETH9.Contract.Decimals(&_WETH9.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_WETH9 *WETH9Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _WETH9.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_WETH9 *WETH9Session) Name() (string, error) { + return _WETH9.Contract.Name(&_WETH9.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_WETH9 *WETH9CallerSession) Name() (string, error) { + return _WETH9.Contract.Name(&_WETH9.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_WETH9 *WETH9Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _WETH9.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_WETH9 *WETH9Session) Symbol() (string, error) { + return _WETH9.Contract.Symbol(&_WETH9.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_WETH9 *WETH9CallerSession) Symbol() (string, error) { + return _WETH9.Contract.Symbol(&_WETH9.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_WETH9 *WETH9Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _WETH9.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_WETH9 *WETH9Session) TotalSupply() (*big.Int, error) { + return _WETH9.Contract.TotalSupply(&_WETH9.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_WETH9 *WETH9CallerSession) TotalSupply() (*big.Int, error) { + return _WETH9.Contract.TotalSupply(&_WETH9.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address guy, uint256 wad) returns(bool) +func (_WETH9 *WETH9Transactor) Approve(opts *bind.TransactOpts, guy common.Address, wad *big.Int) (*types.Transaction, error) { + return _WETH9.contract.Transact(opts, "approve", guy, wad) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address guy, uint256 wad) returns(bool) +func (_WETH9 *WETH9Session) Approve(guy common.Address, wad *big.Int) (*types.Transaction, error) { + return _WETH9.Contract.Approve(&_WETH9.TransactOpts, guy, wad) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address guy, uint256 wad) returns(bool) +func (_WETH9 *WETH9TransactorSession) Approve(guy common.Address, wad *big.Int) (*types.Transaction, error) { + return _WETH9.Contract.Approve(&_WETH9.TransactOpts, guy, wad) +} + +// Deposit is a paid mutator transaction binding the contract method 0xd0e30db0. +// +// Solidity: function deposit() payable returns() +func (_WETH9 *WETH9Transactor) Deposit(opts *bind.TransactOpts) (*types.Transaction, error) { + return _WETH9.contract.Transact(opts, "deposit") +} + +// Deposit is a paid mutator transaction binding the contract method 0xd0e30db0. +// +// Solidity: function deposit() payable returns() +func (_WETH9 *WETH9Session) Deposit() (*types.Transaction, error) { + return _WETH9.Contract.Deposit(&_WETH9.TransactOpts) +} + +// Deposit is a paid mutator transaction binding the contract method 0xd0e30db0. +// +// Solidity: function deposit() payable returns() +func (_WETH9 *WETH9TransactorSession) Deposit() (*types.Transaction, error) { + return _WETH9.Contract.Deposit(&_WETH9.TransactOpts) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address dst, uint256 wad) returns(bool) +func (_WETH9 *WETH9Transactor) Transfer(opts *bind.TransactOpts, dst common.Address, wad *big.Int) (*types.Transaction, error) { + return _WETH9.contract.Transact(opts, "transfer", dst, wad) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address dst, uint256 wad) returns(bool) +func (_WETH9 *WETH9Session) Transfer(dst common.Address, wad *big.Int) (*types.Transaction, error) { + return _WETH9.Contract.Transfer(&_WETH9.TransactOpts, dst, wad) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address dst, uint256 wad) returns(bool) +func (_WETH9 *WETH9TransactorSession) Transfer(dst common.Address, wad *big.Int) (*types.Transaction, error) { + return _WETH9.Contract.Transfer(&_WETH9.TransactOpts, dst, wad) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address src, address dst, uint256 wad) returns(bool) +func (_WETH9 *WETH9Transactor) TransferFrom(opts *bind.TransactOpts, src common.Address, dst common.Address, wad *big.Int) (*types.Transaction, error) { + return _WETH9.contract.Transact(opts, "transferFrom", src, dst, wad) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address src, address dst, uint256 wad) returns(bool) +func (_WETH9 *WETH9Session) TransferFrom(src common.Address, dst common.Address, wad *big.Int) (*types.Transaction, error) { + return _WETH9.Contract.TransferFrom(&_WETH9.TransactOpts, src, dst, wad) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address src, address dst, uint256 wad) returns(bool) +func (_WETH9 *WETH9TransactorSession) TransferFrom(src common.Address, dst common.Address, wad *big.Int) (*types.Transaction, error) { + return _WETH9.Contract.TransferFrom(&_WETH9.TransactOpts, src, dst, wad) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 wad) returns() +func (_WETH9 *WETH9Transactor) Withdraw(opts *bind.TransactOpts, wad *big.Int) (*types.Transaction, error) { + return _WETH9.contract.Transact(opts, "withdraw", wad) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 wad) returns() +func (_WETH9 *WETH9Session) Withdraw(wad *big.Int) (*types.Transaction, error) { + return _WETH9.Contract.Withdraw(&_WETH9.TransactOpts, wad) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 wad) returns() +func (_WETH9 *WETH9TransactorSession) Withdraw(wad *big.Int) (*types.Transaction, error) { + return _WETH9.Contract.Withdraw(&_WETH9.TransactOpts, wad) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_WETH9 *WETH9Transactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _WETH9.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_WETH9 *WETH9Session) Receive() (*types.Transaction, error) { + return _WETH9.Contract.Receive(&_WETH9.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_WETH9 *WETH9TransactorSession) Receive() (*types.Transaction, error) { + return _WETH9.Contract.Receive(&_WETH9.TransactOpts) +} + +// WETH9ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the WETH9 contract. +type WETH9ApprovalIterator struct { + Event *WETH9Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *WETH9ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(WETH9Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(WETH9Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *WETH9ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *WETH9ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// WETH9Approval represents a Approval event raised by the WETH9 contract. +type WETH9Approval struct { + Src common.Address + Guy common.Address + Wad *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed src, address indexed guy, uint256 wad) +func (_WETH9 *WETH9Filterer) FilterApproval(opts *bind.FilterOpts, src []common.Address, guy []common.Address) (*WETH9ApprovalIterator, error) { + + var srcRule []interface{} + for _, srcItem := range src { + srcRule = append(srcRule, srcItem) + } + var guyRule []interface{} + for _, guyItem := range guy { + guyRule = append(guyRule, guyItem) + } + + logs, sub, err := _WETH9.contract.FilterLogs(opts, "Approval", srcRule, guyRule) + if err != nil { + return nil, err + } + return &WETH9ApprovalIterator{contract: _WETH9.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed src, address indexed guy, uint256 wad) +func (_WETH9 *WETH9Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *WETH9Approval, src []common.Address, guy []common.Address) (event.Subscription, error) { + + var srcRule []interface{} + for _, srcItem := range src { + srcRule = append(srcRule, srcItem) + } + var guyRule []interface{} + for _, guyItem := range guy { + guyRule = append(guyRule, guyItem) + } + + logs, sub, err := _WETH9.contract.WatchLogs(opts, "Approval", srcRule, guyRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(WETH9Approval) + if err := _WETH9.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed src, address indexed guy, uint256 wad) +func (_WETH9 *WETH9Filterer) ParseApproval(log types.Log) (*WETH9Approval, error) { + event := new(WETH9Approval) + if err := _WETH9.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// WETH9DepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the WETH9 contract. +type WETH9DepositIterator struct { + Event *WETH9Deposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *WETH9DepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(WETH9Deposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(WETH9Deposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *WETH9DepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *WETH9DepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// WETH9Deposit represents a Deposit event raised by the WETH9 contract. +type WETH9Deposit struct { + Dst common.Address + Wad *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed dst, uint256 wad) +func (_WETH9 *WETH9Filterer) FilterDeposit(opts *bind.FilterOpts, dst []common.Address) (*WETH9DepositIterator, error) { + + var dstRule []interface{} + for _, dstItem := range dst { + dstRule = append(dstRule, dstItem) + } + + logs, sub, err := _WETH9.contract.FilterLogs(opts, "Deposit", dstRule) + if err != nil { + return nil, err + } + return &WETH9DepositIterator{contract: _WETH9.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed dst, uint256 wad) +func (_WETH9 *WETH9Filterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *WETH9Deposit, dst []common.Address) (event.Subscription, error) { + + var dstRule []interface{} + for _, dstItem := range dst { + dstRule = append(dstRule, dstItem) + } + + logs, sub, err := _WETH9.contract.WatchLogs(opts, "Deposit", dstRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(WETH9Deposit) + if err := _WETH9.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed dst, uint256 wad) +func (_WETH9 *WETH9Filterer) ParseDeposit(log types.Log) (*WETH9Deposit, error) { + event := new(WETH9Deposit) + if err := _WETH9.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// WETH9TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the WETH9 contract. +type WETH9TransferIterator struct { + Event *WETH9Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *WETH9TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(WETH9Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(WETH9Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *WETH9TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *WETH9TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// WETH9Transfer represents a Transfer event raised by the WETH9 contract. +type WETH9Transfer struct { + Src common.Address + Dst common.Address + Wad *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed src, address indexed dst, uint256 wad) +func (_WETH9 *WETH9Filterer) FilterTransfer(opts *bind.FilterOpts, src []common.Address, dst []common.Address) (*WETH9TransferIterator, error) { + + var srcRule []interface{} + for _, srcItem := range src { + srcRule = append(srcRule, srcItem) + } + var dstRule []interface{} + for _, dstItem := range dst { + dstRule = append(dstRule, dstItem) + } + + logs, sub, err := _WETH9.contract.FilterLogs(opts, "Transfer", srcRule, dstRule) + if err != nil { + return nil, err + } + return &WETH9TransferIterator{contract: _WETH9.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed src, address indexed dst, uint256 wad) +func (_WETH9 *WETH9Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *WETH9Transfer, src []common.Address, dst []common.Address) (event.Subscription, error) { + + var srcRule []interface{} + for _, srcItem := range src { + srcRule = append(srcRule, srcItem) + } + var dstRule []interface{} + for _, dstItem := range dst { + dstRule = append(dstRule, dstItem) + } + + logs, sub, err := _WETH9.contract.WatchLogs(opts, "Transfer", srcRule, dstRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(WETH9Transfer) + if err := _WETH9.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed src, address indexed dst, uint256 wad) +func (_WETH9 *WETH9Filterer) ParseTransfer(log types.Log) (*WETH9Transfer, error) { + event := new(WETH9Transfer) + if err := _WETH9.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// WETH9WithdrawalIterator is returned from FilterWithdrawal and is used to iterate over the raw logs and unpacked data for Withdrawal events raised by the WETH9 contract. +type WETH9WithdrawalIterator struct { + Event *WETH9Withdrawal // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *WETH9WithdrawalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(WETH9Withdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(WETH9Withdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *WETH9WithdrawalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *WETH9WithdrawalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// WETH9Withdrawal represents a Withdrawal event raised by the WETH9 contract. +type WETH9Withdrawal struct { + Src common.Address + Wad *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawal is a free log retrieval operation binding the contract event 0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65. +// +// Solidity: event Withdrawal(address indexed src, uint256 wad) +func (_WETH9 *WETH9Filterer) FilterWithdrawal(opts *bind.FilterOpts, src []common.Address) (*WETH9WithdrawalIterator, error) { + + var srcRule []interface{} + for _, srcItem := range src { + srcRule = append(srcRule, srcItem) + } + + logs, sub, err := _WETH9.contract.FilterLogs(opts, "Withdrawal", srcRule) + if err != nil { + return nil, err + } + return &WETH9WithdrawalIterator{contract: _WETH9.contract, event: "Withdrawal", logs: logs, sub: sub}, nil +} + +// WatchWithdrawal is a free log subscription operation binding the contract event 0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65. +// +// Solidity: event Withdrawal(address indexed src, uint256 wad) +func (_WETH9 *WETH9Filterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *WETH9Withdrawal, src []common.Address) (event.Subscription, error) { + + var srcRule []interface{} + for _, srcItem := range src { + srcRule = append(srcRule, srcItem) + } + + logs, sub, err := _WETH9.contract.WatchLogs(opts, "Withdrawal", srcRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(WETH9Withdrawal) + if err := _WETH9.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawal is a log parse operation binding the contract event 0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65. +// +// Solidity: event Withdrawal(address indexed src, uint256 wad) +func (_WETH9 *WETH9Filterer) ParseWithdrawal(log types.Log) (*WETH9Withdrawal, error) { + event := new(WETH9Withdrawal) + if err := _WETH9.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/zcontract.sol/universalcontract.go b/v2/pkg/zcontract.sol/universalcontract.go new file mode 100644 index 00000000..6a689167 --- /dev/null +++ b/v2/pkg/zcontract.sol/universalcontract.go @@ -0,0 +1,237 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zcontract + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// RevertContext is an auto generated low-level Go binding around an user-defined struct. +type RevertContext struct { + Origin []byte + Sender common.Address + ChainID *big.Int +} + +// ZContext is an auto generated low-level Go binding around an user-defined struct. +type ZContext struct { + Origin []byte + Sender common.Address + ChainID *big.Int +} + +// UniversalContractMetaData contains all meta data concerning the UniversalContract contract. +var UniversalContractMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"onCrossChainCall\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structzContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onRevert\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structrevertContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", +} + +// UniversalContractABI is the input ABI used to generate the binding from. +// Deprecated: Use UniversalContractMetaData.ABI instead. +var UniversalContractABI = UniversalContractMetaData.ABI + +// UniversalContract is an auto generated Go binding around an Ethereum contract. +type UniversalContract struct { + UniversalContractCaller // Read-only binding to the contract + UniversalContractTransactor // Write-only binding to the contract + UniversalContractFilterer // Log filterer for contract events +} + +// UniversalContractCaller is an auto generated read-only Go binding around an Ethereum contract. +type UniversalContractCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UniversalContractTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UniversalContractTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UniversalContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UniversalContractFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UniversalContractSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UniversalContractSession struct { + Contract *UniversalContract // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UniversalContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UniversalContractCallerSession struct { + Contract *UniversalContractCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UniversalContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UniversalContractTransactorSession struct { + Contract *UniversalContractTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UniversalContractRaw is an auto generated low-level Go binding around an Ethereum contract. +type UniversalContractRaw struct { + Contract *UniversalContract // Generic contract binding to access the raw methods on +} + +// UniversalContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UniversalContractCallerRaw struct { + Contract *UniversalContractCaller // Generic read-only contract binding to access the raw methods on +} + +// UniversalContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UniversalContractTransactorRaw struct { + Contract *UniversalContractTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUniversalContract creates a new instance of UniversalContract, bound to a specific deployed contract. +func NewUniversalContract(address common.Address, backend bind.ContractBackend) (*UniversalContract, error) { + contract, err := bindUniversalContract(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &UniversalContract{UniversalContractCaller: UniversalContractCaller{contract: contract}, UniversalContractTransactor: UniversalContractTransactor{contract: contract}, UniversalContractFilterer: UniversalContractFilterer{contract: contract}}, nil +} + +// NewUniversalContractCaller creates a new read-only instance of UniversalContract, bound to a specific deployed contract. +func NewUniversalContractCaller(address common.Address, caller bind.ContractCaller) (*UniversalContractCaller, error) { + contract, err := bindUniversalContract(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UniversalContractCaller{contract: contract}, nil +} + +// NewUniversalContractTransactor creates a new write-only instance of UniversalContract, bound to a specific deployed contract. +func NewUniversalContractTransactor(address common.Address, transactor bind.ContractTransactor) (*UniversalContractTransactor, error) { + contract, err := bindUniversalContract(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UniversalContractTransactor{contract: contract}, nil +} + +// NewUniversalContractFilterer creates a new log filterer instance of UniversalContract, bound to a specific deployed contract. +func NewUniversalContractFilterer(address common.Address, filterer bind.ContractFilterer) (*UniversalContractFilterer, error) { + contract, err := bindUniversalContract(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UniversalContractFilterer{contract: contract}, nil +} + +// bindUniversalContract binds a generic wrapper to an already deployed contract. +func bindUniversalContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := UniversalContractMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_UniversalContract *UniversalContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UniversalContract.Contract.UniversalContractCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_UniversalContract *UniversalContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UniversalContract.Contract.UniversalContractTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UniversalContract *UniversalContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UniversalContract.Contract.UniversalContractTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_UniversalContract *UniversalContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UniversalContract.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_UniversalContract *UniversalContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UniversalContract.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UniversalContract *UniversalContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UniversalContract.Contract.contract.Transact(opts, method, params...) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0xde43156e. +// +// Solidity: function onCrossChainCall((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_UniversalContract *UniversalContractTransactor) OnCrossChainCall(opts *bind.TransactOpts, context ZContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _UniversalContract.contract.Transact(opts, "onCrossChainCall", context, zrc20, amount, message) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0xde43156e. +// +// Solidity: function onCrossChainCall((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_UniversalContract *UniversalContractSession) OnCrossChainCall(context ZContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _UniversalContract.Contract.OnCrossChainCall(&_UniversalContract.TransactOpts, context, zrc20, amount, message) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0xde43156e. +// +// Solidity: function onCrossChainCall((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_UniversalContract *UniversalContractTransactorSession) OnCrossChainCall(context ZContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _UniversalContract.Contract.OnCrossChainCall(&_UniversalContract.TransactOpts, context, zrc20, amount, message) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x69582bee. +// +// Solidity: function onRevert((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_UniversalContract *UniversalContractTransactor) OnRevert(opts *bind.TransactOpts, context RevertContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _UniversalContract.contract.Transact(opts, "onRevert", context, zrc20, amount, message) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x69582bee. +// +// Solidity: function onRevert((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_UniversalContract *UniversalContractSession) OnRevert(context RevertContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _UniversalContract.Contract.OnRevert(&_UniversalContract.TransactOpts, context, zrc20, amount, message) +} + +// OnRevert is a paid mutator transaction binding the contract method 0x69582bee. +// +// Solidity: function onRevert((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_UniversalContract *UniversalContractTransactorSession) OnRevert(context RevertContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _UniversalContract.Contract.OnRevert(&_UniversalContract.TransactOpts, context, zrc20, amount, message) +} diff --git a/v2/pkg/zcontract.sol/zcontract.go b/v2/pkg/zcontract.sol/zcontract.go new file mode 100644 index 00000000..0d9ee4ef --- /dev/null +++ b/v2/pkg/zcontract.sol/zcontract.go @@ -0,0 +1,209 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zcontract + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZContext is an auto generated low-level Go binding around an user-defined struct. +type ZContext struct { + Origin []byte + Sender common.Address + ChainID *big.Int +} + +// ZContractMetaData contains all meta data concerning the ZContract contract. +var ZContractMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"onCrossChainCall\",\"inputs\":[{\"name\":\"context\",\"type\":\"tuple\",\"internalType\":\"structzContext\",\"components\":[{\"name\":\"origin\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"chainID\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"zrc20\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", +} + +// ZContractABI is the input ABI used to generate the binding from. +// Deprecated: Use ZContractMetaData.ABI instead. +var ZContractABI = ZContractMetaData.ABI + +// ZContract is an auto generated Go binding around an Ethereum contract. +type ZContract struct { + ZContractCaller // Read-only binding to the contract + ZContractTransactor // Write-only binding to the contract + ZContractFilterer // Log filterer for contract events +} + +// ZContractCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZContractCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZContractTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZContractTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZContractFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZContractSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZContractSession struct { + Contract *ZContract // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZContractCallerSession struct { + Contract *ZContractCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZContractTransactorSession struct { + Contract *ZContractTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZContractRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZContractRaw struct { + Contract *ZContract // Generic contract binding to access the raw methods on +} + +// ZContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZContractCallerRaw struct { + Contract *ZContractCaller // Generic read-only contract binding to access the raw methods on +} + +// ZContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZContractTransactorRaw struct { + Contract *ZContractTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZContract creates a new instance of ZContract, bound to a specific deployed contract. +func NewZContract(address common.Address, backend bind.ContractBackend) (*ZContract, error) { + contract, err := bindZContract(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZContract{ZContractCaller: ZContractCaller{contract: contract}, ZContractTransactor: ZContractTransactor{contract: contract}, ZContractFilterer: ZContractFilterer{contract: contract}}, nil +} + +// NewZContractCaller creates a new read-only instance of ZContract, bound to a specific deployed contract. +func NewZContractCaller(address common.Address, caller bind.ContractCaller) (*ZContractCaller, error) { + contract, err := bindZContract(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZContractCaller{contract: contract}, nil +} + +// NewZContractTransactor creates a new write-only instance of ZContract, bound to a specific deployed contract. +func NewZContractTransactor(address common.Address, transactor bind.ContractTransactor) (*ZContractTransactor, error) { + contract, err := bindZContract(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZContractTransactor{contract: contract}, nil +} + +// NewZContractFilterer creates a new log filterer instance of ZContract, bound to a specific deployed contract. +func NewZContractFilterer(address common.Address, filterer bind.ContractFilterer) (*ZContractFilterer, error) { + contract, err := bindZContract(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZContractFilterer{contract: contract}, nil +} + +// bindZContract binds a generic wrapper to an already deployed contract. +func bindZContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZContractMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZContract *ZContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZContract.Contract.ZContractCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZContract *ZContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZContract.Contract.ZContractTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZContract *ZContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZContract.Contract.ZContractTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZContract *ZContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZContract.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZContract *ZContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZContract.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZContract *ZContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZContract.Contract.contract.Transact(opts, method, params...) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0xde43156e. +// +// Solidity: function onCrossChainCall((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_ZContract *ZContractTransactor) OnCrossChainCall(opts *bind.TransactOpts, context ZContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _ZContract.contract.Transact(opts, "onCrossChainCall", context, zrc20, amount, message) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0xde43156e. +// +// Solidity: function onCrossChainCall((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_ZContract *ZContractSession) OnCrossChainCall(context ZContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _ZContract.Contract.OnCrossChainCall(&_ZContract.TransactOpts, context, zrc20, amount, message) +} + +// OnCrossChainCall is a paid mutator transaction binding the contract method 0xde43156e. +// +// Solidity: function onCrossChainCall((bytes,address,uint256) context, address zrc20, uint256 amount, bytes message) returns() +func (_ZContract *ZContractTransactorSession) OnCrossChainCall(context ZContext, zrc20 common.Address, amount *big.Int, message []byte) (*types.Transaction, error) { + return _ZContract.Contract.OnCrossChainCall(&_ZContract.TransactOpts, context, zrc20, amount, message) +} diff --git a/v2/pkg/zeta.non-eth.sol/zetaerrors.go b/v2/pkg/zeta.non-eth.sol/zetaerrors.go new file mode 100644 index 00000000..69bbddf0 --- /dev/null +++ b/v2/pkg/zeta.non-eth.sol/zetaerrors.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zeta + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZetaErrorsMetaData contains all meta data concerning the ZetaErrors contract. +var ZetaErrorsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"CallerIsNotConnector\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"CallerIsNotTss\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"CallerIsNotTssOrUpdater\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"CallerIsNotTssUpdater\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZetaTransferError\",\"inputs\":[]}]", +} + +// ZetaErrorsABI is the input ABI used to generate the binding from. +// Deprecated: Use ZetaErrorsMetaData.ABI instead. +var ZetaErrorsABI = ZetaErrorsMetaData.ABI + +// ZetaErrors is an auto generated Go binding around an Ethereum contract. +type ZetaErrors struct { + ZetaErrorsCaller // Read-only binding to the contract + ZetaErrorsTransactor // Write-only binding to the contract + ZetaErrorsFilterer // Log filterer for contract events +} + +// ZetaErrorsCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZetaErrorsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaErrorsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZetaErrorsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaErrorsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZetaErrorsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaErrorsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZetaErrorsSession struct { + Contract *ZetaErrors // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaErrorsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZetaErrorsCallerSession struct { + Contract *ZetaErrorsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZetaErrorsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZetaErrorsTransactorSession struct { + Contract *ZetaErrorsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaErrorsRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZetaErrorsRaw struct { + Contract *ZetaErrors // Generic contract binding to access the raw methods on +} + +// ZetaErrorsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZetaErrorsCallerRaw struct { + Contract *ZetaErrorsCaller // Generic read-only contract binding to access the raw methods on +} + +// ZetaErrorsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZetaErrorsTransactorRaw struct { + Contract *ZetaErrorsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZetaErrors creates a new instance of ZetaErrors, bound to a specific deployed contract. +func NewZetaErrors(address common.Address, backend bind.ContractBackend) (*ZetaErrors, error) { + contract, err := bindZetaErrors(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZetaErrors{ZetaErrorsCaller: ZetaErrorsCaller{contract: contract}, ZetaErrorsTransactor: ZetaErrorsTransactor{contract: contract}, ZetaErrorsFilterer: ZetaErrorsFilterer{contract: contract}}, nil +} + +// NewZetaErrorsCaller creates a new read-only instance of ZetaErrors, bound to a specific deployed contract. +func NewZetaErrorsCaller(address common.Address, caller bind.ContractCaller) (*ZetaErrorsCaller, error) { + contract, err := bindZetaErrors(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZetaErrorsCaller{contract: contract}, nil +} + +// NewZetaErrorsTransactor creates a new write-only instance of ZetaErrors, bound to a specific deployed contract. +func NewZetaErrorsTransactor(address common.Address, transactor bind.ContractTransactor) (*ZetaErrorsTransactor, error) { + contract, err := bindZetaErrors(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZetaErrorsTransactor{contract: contract}, nil +} + +// NewZetaErrorsFilterer creates a new log filterer instance of ZetaErrors, bound to a specific deployed contract. +func NewZetaErrorsFilterer(address common.Address, filterer bind.ContractFilterer) (*ZetaErrorsFilterer, error) { + contract, err := bindZetaErrors(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZetaErrorsFilterer{contract: contract}, nil +} + +// bindZetaErrors binds a generic wrapper to an already deployed contract. +func bindZetaErrors(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZetaErrorsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaErrors *ZetaErrorsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaErrors.Contract.ZetaErrorsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaErrors *ZetaErrorsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaErrors.Contract.ZetaErrorsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaErrors *ZetaErrorsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaErrors.Contract.ZetaErrorsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaErrors *ZetaErrorsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaErrors.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaErrors *ZetaErrorsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaErrors.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaErrors *ZetaErrorsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaErrors.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/zeta.non-eth.sol/zetanoneth.go b/v2/pkg/zeta.non-eth.sol/zetanoneth.go new file mode 100644 index 00000000..67787ca9 --- /dev/null +++ b/v2/pkg/zeta.non-eth.sol/zetanoneth.go @@ -0,0 +1,1664 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zeta + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZetaNonEthMetaData contains all meta data concerning the ZetaNonEth contract. +var ZetaNonEthMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"tssAddress_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tssAddressUpdater_\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"burnFrom\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"connectorAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"mintee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceTssAddressUpdater\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tssAddressUpdater\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateTssAndConnectorAddresses\",\"inputs\":[{\"name\":\"tssAddress_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"connectorAddress_\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Burnt\",\"inputs\":[{\"name\":\"burnee\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConnectorAddressUpdated\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newConnectorAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Minted\",\"inputs\":[{\"name\":\"mintee\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TSSAddressUpdated\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newTssAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TSSAddressUpdaterUpdated\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newTssUpdaterAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CallerIsNotConnector\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"CallerIsNotTss\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"CallerIsNotTssOrUpdater\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"CallerIsNotTssUpdater\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InsufficientAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InsufficientBalance\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidApprover\",\"inputs\":[{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSender\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSpender\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZetaTransferError\",\"inputs\":[]}]", + Bin: "0x608060405234801561001057600080fd5b506040516112a63803806112a683398101604081905261002f91610110565b604051806040016040528060048152602001635a65746160e01b815250604051806040016040528060048152602001635a45544160e01b815250816003908161007891906101e2565b50600461008582826101e2565b5050506001600160a01b03821615806100a557506001600160a01b038116155b156100c35760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b039384166001600160a01b031991821617909155600780549290931691161790556102a0565b80516001600160a01b038116811461010b57600080fd5b919050565b6000806040838503121561012357600080fd5b61012c836100f4565b915061013a602084016100f4565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061016d57607f821691505b60208210810361018d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101dd57806000526020600020601f840160051c810160208510156101ba5750805b601f840160051c820191505b818110156101da57600081556001016101c6565b50505b505050565b81516001600160401b038111156101fb576101fb610143565b61020f816102098454610159565b84610193565b6020601f821160018114610243576000831561022b5750848201515b600019600385901b1c1916600184901b1784556101da565b600084815260208120601f198516915b828110156102735787850151825560209485019460019092019101610253565b50848210156102915786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610ff7806102af6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c806342966c68116100b257806379cc679011610081578063a9059cbb11610066578063a9059cbb1461028e578063bff9662a146102a1578063dd62ed3e146102c157600080fd5b806379cc67901461027357806395d89b411461028657600080fd5b806342966c68146102025780635b1125911461021557806370a0823114610235578063779e3b631461026b57600080fd5b80631e458bee116100ee5780631e458bee1461018857806323b872dd1461019b578063313ce567146101ae578063328a01d0146101bd57600080fd5b806306fdde0314610120578063095ea7b31461013e57806315d57fd41461016157806318160ddd14610176575b600080fd5b610128610307565b6040516101359190610d97565b60405180910390f35b61015161014c366004610e2c565b610399565b6040519015158152602001610135565b61017461016f366004610e56565b6103b3565b005b6002545b604051908152602001610135565b610174610196366004610e89565b61057e565b6101516101a9366004610ebc565b610631565b60405160128152602001610135565b6007546101dd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610135565b610174610210366004610ef9565b610655565b6006546101dd9073ffffffffffffffffffffffffffffffffffffffff1681565b61017a610243366004610f12565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610174610662565b610174610281366004610e2c565b610786565b610128610837565b61015161029c366004610e2c565b610846565b6005546101dd9073ffffffffffffffffffffffffffffffffffffffff1681565b61017a6102cf366004610e56565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461031690610f34565b80601f016020809104026020016040519081016040528092919081815260200182805461034290610f34565b801561038f5780601f106103645761010080835404028352916020019161038f565b820191906000526020600020905b81548152906001019060200180831161037257829003601f168201915b5050505050905090565b6000336103a7818585610854565b60019150505b92915050565b60075473ffffffffffffffffffffffffffffffffffffffff1633148015906103f3575060065473ffffffffffffffffffffffffffffffffffffffff163314155b15610431576040517fcdfcef970000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82161580610468575073ffffffffffffffffffffffffffffffffffffffff8116155b1561049f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006805473ffffffffffffffffffffffffffffffffffffffff8481167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316811790935560058054918516919092161790556040805133815260208101929092527fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff910160405180910390a16040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201527f1b9352454524a57a51f24f67dc66d898f616922cd1f7a12d73570ece12b1975c910160405180910390a15050565b60055473ffffffffffffffffffffffffffffffffffffffff1633146105d1576040517f3fe32fba000000000000000000000000000000000000000000000000000000008152336004820152602401610428565b6105db8383610866565b808373ffffffffffffffffffffffffffffffffffffffff167fc263b302aec62d29105026245f19e16f8e0137066ccd4a8bd941f716bd4096bb8460405161062491815260200190565b60405180910390a3505050565b60003361063f8582856108c6565b61064a858585610995565b506001949350505050565b61065f3382610a40565b50565b60075473ffffffffffffffffffffffffffffffffffffffff1633146106b5576040517fe700765e000000000000000000000000000000000000000000000000000000008152336004820152602401610428565b60065473ffffffffffffffffffffffffffffffffffffffff16610704576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600654600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90921691821790556040805133815260208101929092527f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd0910160405180910390a1565b60055473ffffffffffffffffffffffffffffffffffffffff1633146107d9576040517f3fe32fba000000000000000000000000000000000000000000000000000000008152336004820152602401610428565b6107e38282610a9c565b8173ffffffffffffffffffffffffffffffffffffffff167f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b18260405161082b91815260200190565b60405180910390a25050565b60606004805461031690610f34565b6000336103a7818585610995565b6108618383836001610ab1565b505050565b73ffffffffffffffffffffffffffffffffffffffff82166108b6576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b6108c260008383610bf9565b5050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461098f5781811015610980576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610428565b61098f84848484036000610ab1565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166109e5576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b73ffffffffffffffffffffffffffffffffffffffff8216610a35576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b610861838383610bf9565b73ffffffffffffffffffffffffffffffffffffffff8216610a90576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b6108c282600083610bf9565b610aa78233836108c6565b6108c28282610a40565b73ffffffffffffffffffffffffffffffffffffffff8416610b01576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b73ffffffffffffffffffffffffffffffffffffffff8316610b51576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160209081526040808320938716835292905220829055801561098f578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610beb91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c31578060026000828254610c269190610f87565b90915550610ce39050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610cb7576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610428565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff8216610d0c57600280548290039055610d38565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161062491815260200190565b602081526000825180602084015260005b81811015610dc55760208186018101516040868401015201610da8565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610e2757600080fd5b919050565b60008060408385031215610e3f57600080fd5b610e4883610e03565b946020939093013593505050565b60008060408385031215610e6957600080fd5b610e7283610e03565b9150610e8060208401610e03565b90509250929050565b600080600060608486031215610e9e57600080fd5b610ea784610e03565b95602085013595506040909401359392505050565b600080600060608486031215610ed157600080fd5b610eda84610e03565b9250610ee860208501610e03565b929592945050506040919091013590565b600060208284031215610f0b57600080fd5b5035919050565b600060208284031215610f2457600080fd5b610f2d82610e03565b9392505050565b600181811c90821680610f4857607f821691505b602082108103610f81577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b808201808211156103ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220085f01204b33dc17013c78c74fbca32a3da2c0b384ce7c8878c889551af28c6164736f6c634300081a0033", +} + +// ZetaNonEthABI is the input ABI used to generate the binding from. +// Deprecated: Use ZetaNonEthMetaData.ABI instead. +var ZetaNonEthABI = ZetaNonEthMetaData.ABI + +// ZetaNonEthBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ZetaNonEthMetaData.Bin instead. +var ZetaNonEthBin = ZetaNonEthMetaData.Bin + +// DeployZetaNonEth deploys a new Ethereum contract, binding an instance of ZetaNonEth to it. +func DeployZetaNonEth(auth *bind.TransactOpts, backend bind.ContractBackend, tssAddress_ common.Address, tssAddressUpdater_ common.Address) (common.Address, *types.Transaction, *ZetaNonEth, error) { + parsed, err := ZetaNonEthMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ZetaNonEthBin), backend, tssAddress_, tssAddressUpdater_) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ZetaNonEth{ZetaNonEthCaller: ZetaNonEthCaller{contract: contract}, ZetaNonEthTransactor: ZetaNonEthTransactor{contract: contract}, ZetaNonEthFilterer: ZetaNonEthFilterer{contract: contract}}, nil +} + +// ZetaNonEth is an auto generated Go binding around an Ethereum contract. +type ZetaNonEth struct { + ZetaNonEthCaller // Read-only binding to the contract + ZetaNonEthTransactor // Write-only binding to the contract + ZetaNonEthFilterer // Log filterer for contract events +} + +// ZetaNonEthCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZetaNonEthCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaNonEthTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZetaNonEthTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaNonEthFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZetaNonEthFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaNonEthSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZetaNonEthSession struct { + Contract *ZetaNonEth // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaNonEthCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZetaNonEthCallerSession struct { + Contract *ZetaNonEthCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZetaNonEthTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZetaNonEthTransactorSession struct { + Contract *ZetaNonEthTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaNonEthRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZetaNonEthRaw struct { + Contract *ZetaNonEth // Generic contract binding to access the raw methods on +} + +// ZetaNonEthCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZetaNonEthCallerRaw struct { + Contract *ZetaNonEthCaller // Generic read-only contract binding to access the raw methods on +} + +// ZetaNonEthTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZetaNonEthTransactorRaw struct { + Contract *ZetaNonEthTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZetaNonEth creates a new instance of ZetaNonEth, bound to a specific deployed contract. +func NewZetaNonEth(address common.Address, backend bind.ContractBackend) (*ZetaNonEth, error) { + contract, err := bindZetaNonEth(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZetaNonEth{ZetaNonEthCaller: ZetaNonEthCaller{contract: contract}, ZetaNonEthTransactor: ZetaNonEthTransactor{contract: contract}, ZetaNonEthFilterer: ZetaNonEthFilterer{contract: contract}}, nil +} + +// NewZetaNonEthCaller creates a new read-only instance of ZetaNonEth, bound to a specific deployed contract. +func NewZetaNonEthCaller(address common.Address, caller bind.ContractCaller) (*ZetaNonEthCaller, error) { + contract, err := bindZetaNonEth(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZetaNonEthCaller{contract: contract}, nil +} + +// NewZetaNonEthTransactor creates a new write-only instance of ZetaNonEth, bound to a specific deployed contract. +func NewZetaNonEthTransactor(address common.Address, transactor bind.ContractTransactor) (*ZetaNonEthTransactor, error) { + contract, err := bindZetaNonEth(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZetaNonEthTransactor{contract: contract}, nil +} + +// NewZetaNonEthFilterer creates a new log filterer instance of ZetaNonEth, bound to a specific deployed contract. +func NewZetaNonEthFilterer(address common.Address, filterer bind.ContractFilterer) (*ZetaNonEthFilterer, error) { + contract, err := bindZetaNonEth(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZetaNonEthFilterer{contract: contract}, nil +} + +// bindZetaNonEth binds a generic wrapper to an already deployed contract. +func bindZetaNonEth(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZetaNonEthMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaNonEth *ZetaNonEthRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaNonEth.Contract.ZetaNonEthCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaNonEth *ZetaNonEthRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaNonEth.Contract.ZetaNonEthTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaNonEth *ZetaNonEthRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaNonEth.Contract.ZetaNonEthTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaNonEth *ZetaNonEthCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaNonEth.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaNonEth *ZetaNonEthTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaNonEth.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaNonEth *ZetaNonEthTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaNonEth.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ZetaNonEth *ZetaNonEthCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _ZetaNonEth.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ZetaNonEth *ZetaNonEthSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ZetaNonEth.Contract.Allowance(&_ZetaNonEth.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ZetaNonEth *ZetaNonEthCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ZetaNonEth.Contract.Allowance(&_ZetaNonEth.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZetaNonEth *ZetaNonEthCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _ZetaNonEth.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZetaNonEth *ZetaNonEthSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ZetaNonEth.Contract.BalanceOf(&_ZetaNonEth.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZetaNonEth *ZetaNonEthCallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ZetaNonEth.Contract.BalanceOf(&_ZetaNonEth.CallOpts, account) +} + +// ConnectorAddress is a free data retrieval call binding the contract method 0xbff9662a. +// +// Solidity: function connectorAddress() view returns(address) +func (_ZetaNonEth *ZetaNonEthCaller) ConnectorAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaNonEth.contract.Call(opts, &out, "connectorAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ConnectorAddress is a free data retrieval call binding the contract method 0xbff9662a. +// +// Solidity: function connectorAddress() view returns(address) +func (_ZetaNonEth *ZetaNonEthSession) ConnectorAddress() (common.Address, error) { + return _ZetaNonEth.Contract.ConnectorAddress(&_ZetaNonEth.CallOpts) +} + +// ConnectorAddress is a free data retrieval call binding the contract method 0xbff9662a. +// +// Solidity: function connectorAddress() view returns(address) +func (_ZetaNonEth *ZetaNonEthCallerSession) ConnectorAddress() (common.Address, error) { + return _ZetaNonEth.Contract.ConnectorAddress(&_ZetaNonEth.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ZetaNonEth *ZetaNonEthCaller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ZetaNonEth.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ZetaNonEth *ZetaNonEthSession) Decimals() (uint8, error) { + return _ZetaNonEth.Contract.Decimals(&_ZetaNonEth.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ZetaNonEth *ZetaNonEthCallerSession) Decimals() (uint8, error) { + return _ZetaNonEth.Contract.Decimals(&_ZetaNonEth.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ZetaNonEth *ZetaNonEthCaller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ZetaNonEth.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ZetaNonEth *ZetaNonEthSession) Name() (string, error) { + return _ZetaNonEth.Contract.Name(&_ZetaNonEth.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ZetaNonEth *ZetaNonEthCallerSession) Name() (string, error) { + return _ZetaNonEth.Contract.Name(&_ZetaNonEth.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ZetaNonEth *ZetaNonEthCaller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ZetaNonEth.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ZetaNonEth *ZetaNonEthSession) Symbol() (string, error) { + return _ZetaNonEth.Contract.Symbol(&_ZetaNonEth.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ZetaNonEth *ZetaNonEthCallerSession) Symbol() (string, error) { + return _ZetaNonEth.Contract.Symbol(&_ZetaNonEth.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZetaNonEth *ZetaNonEthCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZetaNonEth.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZetaNonEth *ZetaNonEthSession) TotalSupply() (*big.Int, error) { + return _ZetaNonEth.Contract.TotalSupply(&_ZetaNonEth.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZetaNonEth *ZetaNonEthCallerSession) TotalSupply() (*big.Int, error) { + return _ZetaNonEth.Contract.TotalSupply(&_ZetaNonEth.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaNonEth *ZetaNonEthCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaNonEth.contract.Call(opts, &out, "tssAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaNonEth *ZetaNonEthSession) TssAddress() (common.Address, error) { + return _ZetaNonEth.Contract.TssAddress(&_ZetaNonEth.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaNonEth *ZetaNonEthCallerSession) TssAddress() (common.Address, error) { + return _ZetaNonEth.Contract.TssAddress(&_ZetaNonEth.CallOpts) +} + +// TssAddressUpdater is a free data retrieval call binding the contract method 0x328a01d0. +// +// Solidity: function tssAddressUpdater() view returns(address) +func (_ZetaNonEth *ZetaNonEthCaller) TssAddressUpdater(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaNonEth.contract.Call(opts, &out, "tssAddressUpdater") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TssAddressUpdater is a free data retrieval call binding the contract method 0x328a01d0. +// +// Solidity: function tssAddressUpdater() view returns(address) +func (_ZetaNonEth *ZetaNonEthSession) TssAddressUpdater() (common.Address, error) { + return _ZetaNonEth.Contract.TssAddressUpdater(&_ZetaNonEth.CallOpts) +} + +// TssAddressUpdater is a free data retrieval call binding the contract method 0x328a01d0. +// +// Solidity: function tssAddressUpdater() view returns(address) +func (_ZetaNonEth *ZetaNonEthCallerSession) TssAddressUpdater() (common.Address, error) { + return _ZetaNonEth.Contract.TssAddressUpdater(&_ZetaNonEth.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ZetaNonEth *ZetaNonEthTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.contract.Transact(opts, "approve", spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ZetaNonEth *ZetaNonEthSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.Contract.Approve(&_ZetaNonEth.TransactOpts, spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ZetaNonEth *ZetaNonEthTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.Contract.Approve(&_ZetaNonEth.TransactOpts, spender, value) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 value) returns() +func (_ZetaNonEth *ZetaNonEthTransactor) Burn(opts *bind.TransactOpts, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.contract.Transact(opts, "burn", value) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 value) returns() +func (_ZetaNonEth *ZetaNonEthSession) Burn(value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.Contract.Burn(&_ZetaNonEth.TransactOpts, value) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 value) returns() +func (_ZetaNonEth *ZetaNonEthTransactorSession) Burn(value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.Contract.Burn(&_ZetaNonEth.TransactOpts, value) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 amount) returns() +func (_ZetaNonEth *ZetaNonEthTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.contract.Transact(opts, "burnFrom", account, amount) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 amount) returns() +func (_ZetaNonEth *ZetaNonEthSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.Contract.BurnFrom(&_ZetaNonEth.TransactOpts, account, amount) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 amount) returns() +func (_ZetaNonEth *ZetaNonEthTransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.Contract.BurnFrom(&_ZetaNonEth.TransactOpts, account, amount) +} + +// Mint is a paid mutator transaction binding the contract method 0x1e458bee. +// +// Solidity: function mint(address mintee, uint256 value, bytes32 internalSendHash) returns() +func (_ZetaNonEth *ZetaNonEthTransactor) Mint(opts *bind.TransactOpts, mintee common.Address, value *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaNonEth.contract.Transact(opts, "mint", mintee, value, internalSendHash) +} + +// Mint is a paid mutator transaction binding the contract method 0x1e458bee. +// +// Solidity: function mint(address mintee, uint256 value, bytes32 internalSendHash) returns() +func (_ZetaNonEth *ZetaNonEthSession) Mint(mintee common.Address, value *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaNonEth.Contract.Mint(&_ZetaNonEth.TransactOpts, mintee, value, internalSendHash) +} + +// Mint is a paid mutator transaction binding the contract method 0x1e458bee. +// +// Solidity: function mint(address mintee, uint256 value, bytes32 internalSendHash) returns() +func (_ZetaNonEth *ZetaNonEthTransactorSession) Mint(mintee common.Address, value *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaNonEth.Contract.Mint(&_ZetaNonEth.TransactOpts, mintee, value, internalSendHash) +} + +// RenounceTssAddressUpdater is a paid mutator transaction binding the contract method 0x779e3b63. +// +// Solidity: function renounceTssAddressUpdater() returns() +func (_ZetaNonEth *ZetaNonEthTransactor) RenounceTssAddressUpdater(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaNonEth.contract.Transact(opts, "renounceTssAddressUpdater") +} + +// RenounceTssAddressUpdater is a paid mutator transaction binding the contract method 0x779e3b63. +// +// Solidity: function renounceTssAddressUpdater() returns() +func (_ZetaNonEth *ZetaNonEthSession) RenounceTssAddressUpdater() (*types.Transaction, error) { + return _ZetaNonEth.Contract.RenounceTssAddressUpdater(&_ZetaNonEth.TransactOpts) +} + +// RenounceTssAddressUpdater is a paid mutator transaction binding the contract method 0x779e3b63. +// +// Solidity: function renounceTssAddressUpdater() returns() +func (_ZetaNonEth *ZetaNonEthTransactorSession) RenounceTssAddressUpdater() (*types.Transaction, error) { + return _ZetaNonEth.Contract.RenounceTssAddressUpdater(&_ZetaNonEth.TransactOpts) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ZetaNonEth *ZetaNonEthTransactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.contract.Transact(opts, "transfer", to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ZetaNonEth *ZetaNonEthSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.Contract.Transfer(&_ZetaNonEth.TransactOpts, to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ZetaNonEth *ZetaNonEthTransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.Contract.Transfer(&_ZetaNonEth.TransactOpts, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ZetaNonEth *ZetaNonEthTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.contract.Transact(opts, "transferFrom", from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ZetaNonEth *ZetaNonEthSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.Contract.TransferFrom(&_ZetaNonEth.TransactOpts, from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ZetaNonEth *ZetaNonEthTransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEth.Contract.TransferFrom(&_ZetaNonEth.TransactOpts, from, to, value) +} + +// UpdateTssAndConnectorAddresses is a paid mutator transaction binding the contract method 0x15d57fd4. +// +// Solidity: function updateTssAndConnectorAddresses(address tssAddress_, address connectorAddress_) returns() +func (_ZetaNonEth *ZetaNonEthTransactor) UpdateTssAndConnectorAddresses(opts *bind.TransactOpts, tssAddress_ common.Address, connectorAddress_ common.Address) (*types.Transaction, error) { + return _ZetaNonEth.contract.Transact(opts, "updateTssAndConnectorAddresses", tssAddress_, connectorAddress_) +} + +// UpdateTssAndConnectorAddresses is a paid mutator transaction binding the contract method 0x15d57fd4. +// +// Solidity: function updateTssAndConnectorAddresses(address tssAddress_, address connectorAddress_) returns() +func (_ZetaNonEth *ZetaNonEthSession) UpdateTssAndConnectorAddresses(tssAddress_ common.Address, connectorAddress_ common.Address) (*types.Transaction, error) { + return _ZetaNonEth.Contract.UpdateTssAndConnectorAddresses(&_ZetaNonEth.TransactOpts, tssAddress_, connectorAddress_) +} + +// UpdateTssAndConnectorAddresses is a paid mutator transaction binding the contract method 0x15d57fd4. +// +// Solidity: function updateTssAndConnectorAddresses(address tssAddress_, address connectorAddress_) returns() +func (_ZetaNonEth *ZetaNonEthTransactorSession) UpdateTssAndConnectorAddresses(tssAddress_ common.Address, connectorAddress_ common.Address) (*types.Transaction, error) { + return _ZetaNonEth.Contract.UpdateTssAndConnectorAddresses(&_ZetaNonEth.TransactOpts, tssAddress_, connectorAddress_) +} + +// ZetaNonEthApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ZetaNonEth contract. +type ZetaNonEthApprovalIterator struct { + Event *ZetaNonEthApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaNonEthApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaNonEthApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaNonEthApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaNonEthApproval represents a Approval event raised by the ZetaNonEth contract. +type ZetaNonEthApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZetaNonEth *ZetaNonEthFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ZetaNonEthApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ZetaNonEth.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &ZetaNonEthApprovalIterator{contract: _ZetaNonEth.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZetaNonEth *ZetaNonEthFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ZetaNonEthApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ZetaNonEth.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaNonEthApproval) + if err := _ZetaNonEth.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZetaNonEth *ZetaNonEthFilterer) ParseApproval(log types.Log) (*ZetaNonEthApproval, error) { + event := new(ZetaNonEthApproval) + if err := _ZetaNonEth.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaNonEthBurntIterator is returned from FilterBurnt and is used to iterate over the raw logs and unpacked data for Burnt events raised by the ZetaNonEth contract. +type ZetaNonEthBurntIterator struct { + Event *ZetaNonEthBurnt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaNonEthBurntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthBurnt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthBurnt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaNonEthBurntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaNonEthBurntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaNonEthBurnt represents a Burnt event raised by the ZetaNonEth contract. +type ZetaNonEthBurnt struct { + Burnee common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBurnt is a free log retrieval operation binding the contract event 0x919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b1. +// +// Solidity: event Burnt(address indexed burnee, uint256 amount) +func (_ZetaNonEth *ZetaNonEthFilterer) FilterBurnt(opts *bind.FilterOpts, burnee []common.Address) (*ZetaNonEthBurntIterator, error) { + + var burneeRule []interface{} + for _, burneeItem := range burnee { + burneeRule = append(burneeRule, burneeItem) + } + + logs, sub, err := _ZetaNonEth.contract.FilterLogs(opts, "Burnt", burneeRule) + if err != nil { + return nil, err + } + return &ZetaNonEthBurntIterator{contract: _ZetaNonEth.contract, event: "Burnt", logs: logs, sub: sub}, nil +} + +// WatchBurnt is a free log subscription operation binding the contract event 0x919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b1. +// +// Solidity: event Burnt(address indexed burnee, uint256 amount) +func (_ZetaNonEth *ZetaNonEthFilterer) WatchBurnt(opts *bind.WatchOpts, sink chan<- *ZetaNonEthBurnt, burnee []common.Address) (event.Subscription, error) { + + var burneeRule []interface{} + for _, burneeItem := range burnee { + burneeRule = append(burneeRule, burneeItem) + } + + logs, sub, err := _ZetaNonEth.contract.WatchLogs(opts, "Burnt", burneeRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaNonEthBurnt) + if err := _ZetaNonEth.contract.UnpackLog(event, "Burnt", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBurnt is a log parse operation binding the contract event 0x919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b1. +// +// Solidity: event Burnt(address indexed burnee, uint256 amount) +func (_ZetaNonEth *ZetaNonEthFilterer) ParseBurnt(log types.Log) (*ZetaNonEthBurnt, error) { + event := new(ZetaNonEthBurnt) + if err := _ZetaNonEth.contract.UnpackLog(event, "Burnt", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaNonEthConnectorAddressUpdatedIterator is returned from FilterConnectorAddressUpdated and is used to iterate over the raw logs and unpacked data for ConnectorAddressUpdated events raised by the ZetaNonEth contract. +type ZetaNonEthConnectorAddressUpdatedIterator struct { + Event *ZetaNonEthConnectorAddressUpdated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaNonEthConnectorAddressUpdatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthConnectorAddressUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthConnectorAddressUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaNonEthConnectorAddressUpdatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaNonEthConnectorAddressUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaNonEthConnectorAddressUpdated represents a ConnectorAddressUpdated event raised by the ZetaNonEth contract. +type ZetaNonEthConnectorAddressUpdated struct { + CallerAddress common.Address + NewConnectorAddress common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterConnectorAddressUpdated is a free log retrieval operation binding the contract event 0x1b9352454524a57a51f24f67dc66d898f616922cd1f7a12d73570ece12b1975c. +// +// Solidity: event ConnectorAddressUpdated(address callerAddress, address newConnectorAddress) +func (_ZetaNonEth *ZetaNonEthFilterer) FilterConnectorAddressUpdated(opts *bind.FilterOpts) (*ZetaNonEthConnectorAddressUpdatedIterator, error) { + + logs, sub, err := _ZetaNonEth.contract.FilterLogs(opts, "ConnectorAddressUpdated") + if err != nil { + return nil, err + } + return &ZetaNonEthConnectorAddressUpdatedIterator{contract: _ZetaNonEth.contract, event: "ConnectorAddressUpdated", logs: logs, sub: sub}, nil +} + +// WatchConnectorAddressUpdated is a free log subscription operation binding the contract event 0x1b9352454524a57a51f24f67dc66d898f616922cd1f7a12d73570ece12b1975c. +// +// Solidity: event ConnectorAddressUpdated(address callerAddress, address newConnectorAddress) +func (_ZetaNonEth *ZetaNonEthFilterer) WatchConnectorAddressUpdated(opts *bind.WatchOpts, sink chan<- *ZetaNonEthConnectorAddressUpdated) (event.Subscription, error) { + + logs, sub, err := _ZetaNonEth.contract.WatchLogs(opts, "ConnectorAddressUpdated") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaNonEthConnectorAddressUpdated) + if err := _ZetaNonEth.contract.UnpackLog(event, "ConnectorAddressUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseConnectorAddressUpdated is a log parse operation binding the contract event 0x1b9352454524a57a51f24f67dc66d898f616922cd1f7a12d73570ece12b1975c. +// +// Solidity: event ConnectorAddressUpdated(address callerAddress, address newConnectorAddress) +func (_ZetaNonEth *ZetaNonEthFilterer) ParseConnectorAddressUpdated(log types.Log) (*ZetaNonEthConnectorAddressUpdated, error) { + event := new(ZetaNonEthConnectorAddressUpdated) + if err := _ZetaNonEth.contract.UnpackLog(event, "ConnectorAddressUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaNonEthMintedIterator is returned from FilterMinted and is used to iterate over the raw logs and unpacked data for Minted events raised by the ZetaNonEth contract. +type ZetaNonEthMintedIterator struct { + Event *ZetaNonEthMinted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaNonEthMintedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthMinted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthMinted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaNonEthMintedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaNonEthMintedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaNonEthMinted represents a Minted event raised by the ZetaNonEth contract. +type ZetaNonEthMinted struct { + Mintee common.Address + Amount *big.Int + InternalSendHash [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMinted is a free log retrieval operation binding the contract event 0xc263b302aec62d29105026245f19e16f8e0137066ccd4a8bd941f716bd4096bb. +// +// Solidity: event Minted(address indexed mintee, uint256 amount, bytes32 indexed internalSendHash) +func (_ZetaNonEth *ZetaNonEthFilterer) FilterMinted(opts *bind.FilterOpts, mintee []common.Address, internalSendHash [][32]byte) (*ZetaNonEthMintedIterator, error) { + + var minteeRule []interface{} + for _, minteeItem := range mintee { + minteeRule = append(minteeRule, minteeItem) + } + + var internalSendHashRule []interface{} + for _, internalSendHashItem := range internalSendHash { + internalSendHashRule = append(internalSendHashRule, internalSendHashItem) + } + + logs, sub, err := _ZetaNonEth.contract.FilterLogs(opts, "Minted", minteeRule, internalSendHashRule) + if err != nil { + return nil, err + } + return &ZetaNonEthMintedIterator{contract: _ZetaNonEth.contract, event: "Minted", logs: logs, sub: sub}, nil +} + +// WatchMinted is a free log subscription operation binding the contract event 0xc263b302aec62d29105026245f19e16f8e0137066ccd4a8bd941f716bd4096bb. +// +// Solidity: event Minted(address indexed mintee, uint256 amount, bytes32 indexed internalSendHash) +func (_ZetaNonEth *ZetaNonEthFilterer) WatchMinted(opts *bind.WatchOpts, sink chan<- *ZetaNonEthMinted, mintee []common.Address, internalSendHash [][32]byte) (event.Subscription, error) { + + var minteeRule []interface{} + for _, minteeItem := range mintee { + minteeRule = append(minteeRule, minteeItem) + } + + var internalSendHashRule []interface{} + for _, internalSendHashItem := range internalSendHash { + internalSendHashRule = append(internalSendHashRule, internalSendHashItem) + } + + logs, sub, err := _ZetaNonEth.contract.WatchLogs(opts, "Minted", minteeRule, internalSendHashRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaNonEthMinted) + if err := _ZetaNonEth.contract.UnpackLog(event, "Minted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMinted is a log parse operation binding the contract event 0xc263b302aec62d29105026245f19e16f8e0137066ccd4a8bd941f716bd4096bb. +// +// Solidity: event Minted(address indexed mintee, uint256 amount, bytes32 indexed internalSendHash) +func (_ZetaNonEth *ZetaNonEthFilterer) ParseMinted(log types.Log) (*ZetaNonEthMinted, error) { + event := new(ZetaNonEthMinted) + if err := _ZetaNonEth.contract.UnpackLog(event, "Minted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaNonEthTSSAddressUpdatedIterator is returned from FilterTSSAddressUpdated and is used to iterate over the raw logs and unpacked data for TSSAddressUpdated events raised by the ZetaNonEth contract. +type ZetaNonEthTSSAddressUpdatedIterator struct { + Event *ZetaNonEthTSSAddressUpdated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaNonEthTSSAddressUpdatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthTSSAddressUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthTSSAddressUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaNonEthTSSAddressUpdatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaNonEthTSSAddressUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaNonEthTSSAddressUpdated represents a TSSAddressUpdated event raised by the ZetaNonEth contract. +type ZetaNonEthTSSAddressUpdated struct { + CallerAddress common.Address + NewTssAddress common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTSSAddressUpdated is a free log retrieval operation binding the contract event 0xe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff. +// +// Solidity: event TSSAddressUpdated(address callerAddress, address newTssAddress) +func (_ZetaNonEth *ZetaNonEthFilterer) FilterTSSAddressUpdated(opts *bind.FilterOpts) (*ZetaNonEthTSSAddressUpdatedIterator, error) { + + logs, sub, err := _ZetaNonEth.contract.FilterLogs(opts, "TSSAddressUpdated") + if err != nil { + return nil, err + } + return &ZetaNonEthTSSAddressUpdatedIterator{contract: _ZetaNonEth.contract, event: "TSSAddressUpdated", logs: logs, sub: sub}, nil +} + +// WatchTSSAddressUpdated is a free log subscription operation binding the contract event 0xe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff. +// +// Solidity: event TSSAddressUpdated(address callerAddress, address newTssAddress) +func (_ZetaNonEth *ZetaNonEthFilterer) WatchTSSAddressUpdated(opts *bind.WatchOpts, sink chan<- *ZetaNonEthTSSAddressUpdated) (event.Subscription, error) { + + logs, sub, err := _ZetaNonEth.contract.WatchLogs(opts, "TSSAddressUpdated") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaNonEthTSSAddressUpdated) + if err := _ZetaNonEth.contract.UnpackLog(event, "TSSAddressUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTSSAddressUpdated is a log parse operation binding the contract event 0xe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff. +// +// Solidity: event TSSAddressUpdated(address callerAddress, address newTssAddress) +func (_ZetaNonEth *ZetaNonEthFilterer) ParseTSSAddressUpdated(log types.Log) (*ZetaNonEthTSSAddressUpdated, error) { + event := new(ZetaNonEthTSSAddressUpdated) + if err := _ZetaNonEth.contract.UnpackLog(event, "TSSAddressUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaNonEthTSSAddressUpdaterUpdatedIterator is returned from FilterTSSAddressUpdaterUpdated and is used to iterate over the raw logs and unpacked data for TSSAddressUpdaterUpdated events raised by the ZetaNonEth contract. +type ZetaNonEthTSSAddressUpdaterUpdatedIterator struct { + Event *ZetaNonEthTSSAddressUpdaterUpdated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaNonEthTSSAddressUpdaterUpdatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthTSSAddressUpdaterUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthTSSAddressUpdaterUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaNonEthTSSAddressUpdaterUpdatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaNonEthTSSAddressUpdaterUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaNonEthTSSAddressUpdaterUpdated represents a TSSAddressUpdaterUpdated event raised by the ZetaNonEth contract. +type ZetaNonEthTSSAddressUpdaterUpdated struct { + CallerAddress common.Address + NewTssUpdaterAddress common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTSSAddressUpdaterUpdated is a free log retrieval operation binding the contract event 0x5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd0. +// +// Solidity: event TSSAddressUpdaterUpdated(address callerAddress, address newTssUpdaterAddress) +func (_ZetaNonEth *ZetaNonEthFilterer) FilterTSSAddressUpdaterUpdated(opts *bind.FilterOpts) (*ZetaNonEthTSSAddressUpdaterUpdatedIterator, error) { + + logs, sub, err := _ZetaNonEth.contract.FilterLogs(opts, "TSSAddressUpdaterUpdated") + if err != nil { + return nil, err + } + return &ZetaNonEthTSSAddressUpdaterUpdatedIterator{contract: _ZetaNonEth.contract, event: "TSSAddressUpdaterUpdated", logs: logs, sub: sub}, nil +} + +// WatchTSSAddressUpdaterUpdated is a free log subscription operation binding the contract event 0x5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd0. +// +// Solidity: event TSSAddressUpdaterUpdated(address callerAddress, address newTssUpdaterAddress) +func (_ZetaNonEth *ZetaNonEthFilterer) WatchTSSAddressUpdaterUpdated(opts *bind.WatchOpts, sink chan<- *ZetaNonEthTSSAddressUpdaterUpdated) (event.Subscription, error) { + + logs, sub, err := _ZetaNonEth.contract.WatchLogs(opts, "TSSAddressUpdaterUpdated") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaNonEthTSSAddressUpdaterUpdated) + if err := _ZetaNonEth.contract.UnpackLog(event, "TSSAddressUpdaterUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTSSAddressUpdaterUpdated is a log parse operation binding the contract event 0x5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd0. +// +// Solidity: event TSSAddressUpdaterUpdated(address callerAddress, address newTssUpdaterAddress) +func (_ZetaNonEth *ZetaNonEthFilterer) ParseTSSAddressUpdaterUpdated(log types.Log) (*ZetaNonEthTSSAddressUpdaterUpdated, error) { + event := new(ZetaNonEthTSSAddressUpdaterUpdated) + if err := _ZetaNonEth.contract.UnpackLog(event, "TSSAddressUpdaterUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaNonEthTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ZetaNonEth contract. +type ZetaNonEthTransferIterator struct { + Event *ZetaNonEthTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaNonEthTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaNonEthTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaNonEthTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaNonEthTransfer represents a Transfer event raised by the ZetaNonEth contract. +type ZetaNonEthTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZetaNonEth *ZetaNonEthFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ZetaNonEthTransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaNonEth.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &ZetaNonEthTransferIterator{contract: _ZetaNonEth.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZetaNonEth *ZetaNonEthFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ZetaNonEthTransfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaNonEth.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaNonEthTransfer) + if err := _ZetaNonEth.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZetaNonEth *ZetaNonEthFilterer) ParseTransfer(log types.Log) (*ZetaNonEthTransfer, error) { + event := new(ZetaNonEthTransfer) + if err := _ZetaNonEth.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/zeta.non-eth.sol/zetanonethinterface.go b/v2/pkg/zeta.non-eth.sol/zetanonethinterface.go new file mode 100644 index 00000000..eb47f495 --- /dev/null +++ b/v2/pkg/zeta.non-eth.sol/zetanonethinterface.go @@ -0,0 +1,687 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zeta + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZetaNonEthInterfaceMetaData contains all meta data concerning the ZetaNonEthInterface contract. +var ZetaNonEthInterfaceMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burnFrom\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"mintee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", +} + +// ZetaNonEthInterfaceABI is the input ABI used to generate the binding from. +// Deprecated: Use ZetaNonEthInterfaceMetaData.ABI instead. +var ZetaNonEthInterfaceABI = ZetaNonEthInterfaceMetaData.ABI + +// ZetaNonEthInterface is an auto generated Go binding around an Ethereum contract. +type ZetaNonEthInterface struct { + ZetaNonEthInterfaceCaller // Read-only binding to the contract + ZetaNonEthInterfaceTransactor // Write-only binding to the contract + ZetaNonEthInterfaceFilterer // Log filterer for contract events +} + +// ZetaNonEthInterfaceCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZetaNonEthInterfaceCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaNonEthInterfaceTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZetaNonEthInterfaceTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaNonEthInterfaceFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZetaNonEthInterfaceFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaNonEthInterfaceSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZetaNonEthInterfaceSession struct { + Contract *ZetaNonEthInterface // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaNonEthInterfaceCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZetaNonEthInterfaceCallerSession struct { + Contract *ZetaNonEthInterfaceCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZetaNonEthInterfaceTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZetaNonEthInterfaceTransactorSession struct { + Contract *ZetaNonEthInterfaceTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaNonEthInterfaceRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZetaNonEthInterfaceRaw struct { + Contract *ZetaNonEthInterface // Generic contract binding to access the raw methods on +} + +// ZetaNonEthInterfaceCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZetaNonEthInterfaceCallerRaw struct { + Contract *ZetaNonEthInterfaceCaller // Generic read-only contract binding to access the raw methods on +} + +// ZetaNonEthInterfaceTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZetaNonEthInterfaceTransactorRaw struct { + Contract *ZetaNonEthInterfaceTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZetaNonEthInterface creates a new instance of ZetaNonEthInterface, bound to a specific deployed contract. +func NewZetaNonEthInterface(address common.Address, backend bind.ContractBackend) (*ZetaNonEthInterface, error) { + contract, err := bindZetaNonEthInterface(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZetaNonEthInterface{ZetaNonEthInterfaceCaller: ZetaNonEthInterfaceCaller{contract: contract}, ZetaNonEthInterfaceTransactor: ZetaNonEthInterfaceTransactor{contract: contract}, ZetaNonEthInterfaceFilterer: ZetaNonEthInterfaceFilterer{contract: contract}}, nil +} + +// NewZetaNonEthInterfaceCaller creates a new read-only instance of ZetaNonEthInterface, bound to a specific deployed contract. +func NewZetaNonEthInterfaceCaller(address common.Address, caller bind.ContractCaller) (*ZetaNonEthInterfaceCaller, error) { + contract, err := bindZetaNonEthInterface(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZetaNonEthInterfaceCaller{contract: contract}, nil +} + +// NewZetaNonEthInterfaceTransactor creates a new write-only instance of ZetaNonEthInterface, bound to a specific deployed contract. +func NewZetaNonEthInterfaceTransactor(address common.Address, transactor bind.ContractTransactor) (*ZetaNonEthInterfaceTransactor, error) { + contract, err := bindZetaNonEthInterface(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZetaNonEthInterfaceTransactor{contract: contract}, nil +} + +// NewZetaNonEthInterfaceFilterer creates a new log filterer instance of ZetaNonEthInterface, bound to a specific deployed contract. +func NewZetaNonEthInterfaceFilterer(address common.Address, filterer bind.ContractFilterer) (*ZetaNonEthInterfaceFilterer, error) { + contract, err := bindZetaNonEthInterface(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZetaNonEthInterfaceFilterer{contract: contract}, nil +} + +// bindZetaNonEthInterface binds a generic wrapper to an already deployed contract. +func bindZetaNonEthInterface(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZetaNonEthInterfaceMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaNonEthInterface *ZetaNonEthInterfaceRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaNonEthInterface.Contract.ZetaNonEthInterfaceCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaNonEthInterface *ZetaNonEthInterfaceRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.ZetaNonEthInterfaceTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaNonEthInterface *ZetaNonEthInterfaceRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.ZetaNonEthInterfaceTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaNonEthInterface *ZetaNonEthInterfaceCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaNonEthInterface.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _ZetaNonEthInterface.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ZetaNonEthInterface.Contract.Allowance(&_ZetaNonEthInterface.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ZetaNonEthInterface.Contract.Allowance(&_ZetaNonEthInterface.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _ZetaNonEthInterface.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ZetaNonEthInterface.Contract.BalanceOf(&_ZetaNonEthInterface.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceCallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ZetaNonEthInterface.Contract.BalanceOf(&_ZetaNonEthInterface.CallOpts, account) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZetaNonEthInterface.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceSession) TotalSupply() (*big.Int, error) { + return _ZetaNonEthInterface.Contract.TotalSupply(&_ZetaNonEthInterface.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceCallerSession) TotalSupply() (*big.Int, error) { + return _ZetaNonEthInterface.Contract.TotalSupply(&_ZetaNonEthInterface.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.contract.Transact(opts, "approve", spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.Approve(&_ZetaNonEthInterface.TransactOpts, spender, value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 value) returns(bool) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.Approve(&_ZetaNonEthInterface.TransactOpts, spender, value) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 amount) returns() +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.contract.Transact(opts, "burnFrom", account, amount) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 amount) returns() +func (_ZetaNonEthInterface *ZetaNonEthInterfaceSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.BurnFrom(&_ZetaNonEthInterface.TransactOpts, account, amount) +} + +// BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790. +// +// Solidity: function burnFrom(address account, uint256 amount) returns() +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.BurnFrom(&_ZetaNonEthInterface.TransactOpts, account, amount) +} + +// Mint is a paid mutator transaction binding the contract method 0x1e458bee. +// +// Solidity: function mint(address mintee, uint256 value, bytes32 internalSendHash) returns() +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactor) Mint(opts *bind.TransactOpts, mintee common.Address, value *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaNonEthInterface.contract.Transact(opts, "mint", mintee, value, internalSendHash) +} + +// Mint is a paid mutator transaction binding the contract method 0x1e458bee. +// +// Solidity: function mint(address mintee, uint256 value, bytes32 internalSendHash) returns() +func (_ZetaNonEthInterface *ZetaNonEthInterfaceSession) Mint(mintee common.Address, value *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.Mint(&_ZetaNonEthInterface.TransactOpts, mintee, value, internalSendHash) +} + +// Mint is a paid mutator transaction binding the contract method 0x1e458bee. +// +// Solidity: function mint(address mintee, uint256 value, bytes32 internalSendHash) returns() +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactorSession) Mint(mintee common.Address, value *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.Mint(&_ZetaNonEthInterface.TransactOpts, mintee, value, internalSendHash) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.contract.Transact(opts, "transfer", to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.Transfer(&_ZetaNonEthInterface.TransactOpts, to, value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address to, uint256 value) returns(bool) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.Transfer(&_ZetaNonEthInterface.TransactOpts, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.contract.Transact(opts, "transferFrom", from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.TransferFrom(&_ZetaNonEthInterface.TransactOpts, from, to, value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceTransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { + return _ZetaNonEthInterface.Contract.TransferFrom(&_ZetaNonEthInterface.TransactOpts, from, to, value) +} + +// ZetaNonEthInterfaceApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ZetaNonEthInterface contract. +type ZetaNonEthInterfaceApprovalIterator struct { + Event *ZetaNonEthInterfaceApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaNonEthInterfaceApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthInterfaceApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthInterfaceApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaNonEthInterfaceApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaNonEthInterfaceApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaNonEthInterfaceApproval represents a Approval event raised by the ZetaNonEthInterface contract. +type ZetaNonEthInterfaceApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ZetaNonEthInterfaceApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ZetaNonEthInterface.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &ZetaNonEthInterfaceApprovalIterator{contract: _ZetaNonEthInterface.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ZetaNonEthInterfaceApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ZetaNonEthInterface.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaNonEthInterfaceApproval) + if err := _ZetaNonEthInterface.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceFilterer) ParseApproval(log types.Log) (*ZetaNonEthInterfaceApproval, error) { + event := new(ZetaNonEthInterfaceApproval) + if err := _ZetaNonEthInterface.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaNonEthInterfaceTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ZetaNonEthInterface contract. +type ZetaNonEthInterfaceTransferIterator struct { + Event *ZetaNonEthInterfaceTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaNonEthInterfaceTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthInterfaceTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaNonEthInterfaceTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaNonEthInterfaceTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaNonEthInterfaceTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaNonEthInterfaceTransfer represents a Transfer event raised by the ZetaNonEthInterface contract. +type ZetaNonEthInterfaceTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ZetaNonEthInterfaceTransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaNonEthInterface.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &ZetaNonEthInterfaceTransferIterator{contract: _ZetaNonEthInterface.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ZetaNonEthInterfaceTransfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaNonEthInterface.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaNonEthInterfaceTransfer) + if err := _ZetaNonEthInterface.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZetaNonEthInterface *ZetaNonEthInterfaceFilterer) ParseTransfer(log types.Log) (*ZetaNonEthInterfaceTransfer, error) { + event := new(ZetaNonEthInterfaceTransfer) + if err := _ZetaNonEthInterface.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/zetaconnectornative.sol/zetaconnectornative.go b/v2/pkg/zetaconnectornative.sol/zetaconnectornative.go new file mode 100644 index 00000000..ac4fff8e --- /dev/null +++ b/v2/pkg/zetaconnectornative.sol/zetaconnectornative.go @@ -0,0 +1,817 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zetaconnectornative + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZetaConnectorNativeMetaData contains all meta data concerning the ZetaConnectorNative contract. +var ZetaConnectorNativeMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_gateway\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_zetaToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tssAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"gateway\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIGatewayEVM\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveTokens\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndCall\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndRevert\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"zetaToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndCall\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndRevert\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x60c060405234801561001057600080fd5b50604051610d87380380610d8783398101604081905261002f916100d2565b60016000558282826001600160a01b038316158061005457506001600160a01b038216155b8061006657506001600160a01b038116155b156100845760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0392831660805290821660a052600180546001600160a01b0319169190921617905550610115915050565b80516001600160a01b03811681146100cd57600080fd5b919050565b6000806000606084860312156100e757600080fd5b6100f0846100b6565b92506100fe602085016100b6565b915061010c604085016100b6565b90509250925092565b60805160a051610c0961017e6000396000818160ff015281816101da0152818161028b015281816103c3015281816104bc0152818161056d015261063301526000818160af015281816101fc0152818161025e015281816104de01526105400152610c096000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806321e093b11161005b57806321e093b1146100fa5780635b112591146101215780635e3e9fef14610141578063743e0c9b1461015457600080fd5b806302d5c89914610082578063106e629014610097578063116191b6146100aa575b600080fd5b6100956100903660046109db565b610167565b005b6100956100a5366004610a6d565b610350565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6001546100d19073ffffffffffffffffffffffffffffffffffffffff1681565b61009561014f3660046109db565b610449565b610095610162366004610aa0565b610619565b61016f61065e565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101c0576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61022173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000866106a1565b6040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b8969bd4906102bb907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610b02565b600060405180830381600087803b1580156102d557600080fd5b505af11580156102e9573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe85858560405161033793929190610b5f565b60405180910390a26103496001600055565b5050505050565b61035861065e565b60015473ffffffffffffffffffffffffffffffffffffffff1633146103a9576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103ea73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001684846106a1565b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161043291815260200190565b60405180910390a26104446001600055565b505050565b61045161065e565b60015473ffffffffffffffffffffffffffffffffffffffff1633146104a2576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61050373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000866106a1565b6040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635131ab599061059d907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610b02565b600060405180830381600087803b1580156105b757600080fd5b505af11580156105cb573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced85858560405161033793929190610b5f565b61065b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333084610722565b50565b60026000540361069a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905261044491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061076e565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526107689186918216906323b872dd906084016106db565b50505050565b600061079073ffffffffffffffffffffffffffffffffffffffff841683610809565b905080516000141580156107b55750808060200190518101906107b39190610b82565b155b15610444576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606108178383600061081e565b9392505050565b60608147101561085c576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610800565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516108859190610ba4565b60006040518083038185875af1925050503d80600081146108c2576040519150601f19603f3d011682016040523d82523d6000602084013e6108c7565b606091505b50915091506108d78683836108e1565b9695505050505050565b6060826108f6576108f182610970565b610817565b815115801561091a575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610969576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610800565b5080610817565b8051156109805780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146109d657600080fd5b919050565b6000806000806000608086880312156109f357600080fd5b6109fc866109b2565b945060208601359350604086013567ffffffffffffffff811115610a1f57600080fd5b8601601f81018813610a3057600080fd5b803567ffffffffffffffff811115610a4757600080fd5b886020828401011115610a5957600080fd5b959894975060200195606001359392505050565b600080600060608486031215610a8257600080fd5b610a8b846109b2565b95602085013595506040909401359392505050565b600060208284031215610ab257600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610b54608083018486610ab9565b979650505050505050565b838152604060208201526000610b79604083018486610ab9565b95945050505050565b600060208284031215610b9457600080fd5b8151801515811461081757600080fd5b6000825160005b81811015610bc55760208186018101518583015201610bab565b50600092019182525091905056fea2646970667358221220ed25bc9308ed3d8f9b30e14ddf88cadd2d738ead8bcd8eb8fb89509e51695cd564736f6c634300081a0033", +} + +// ZetaConnectorNativeABI is the input ABI used to generate the binding from. +// Deprecated: Use ZetaConnectorNativeMetaData.ABI instead. +var ZetaConnectorNativeABI = ZetaConnectorNativeMetaData.ABI + +// ZetaConnectorNativeBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ZetaConnectorNativeMetaData.Bin instead. +var ZetaConnectorNativeBin = ZetaConnectorNativeMetaData.Bin + +// DeployZetaConnectorNative deploys a new Ethereum contract, binding an instance of ZetaConnectorNative to it. +func DeployZetaConnectorNative(auth *bind.TransactOpts, backend bind.ContractBackend, _gateway common.Address, _zetaToken common.Address, _tssAddress common.Address) (common.Address, *types.Transaction, *ZetaConnectorNative, error) { + parsed, err := ZetaConnectorNativeMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ZetaConnectorNativeBin), backend, _gateway, _zetaToken, _tssAddress) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ZetaConnectorNative{ZetaConnectorNativeCaller: ZetaConnectorNativeCaller{contract: contract}, ZetaConnectorNativeTransactor: ZetaConnectorNativeTransactor{contract: contract}, ZetaConnectorNativeFilterer: ZetaConnectorNativeFilterer{contract: contract}}, nil +} + +// ZetaConnectorNative is an auto generated Go binding around an Ethereum contract. +type ZetaConnectorNative struct { + ZetaConnectorNativeCaller // Read-only binding to the contract + ZetaConnectorNativeTransactor // Write-only binding to the contract + ZetaConnectorNativeFilterer // Log filterer for contract events +} + +// ZetaConnectorNativeCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZetaConnectorNativeCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNativeTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZetaConnectorNativeTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNativeFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZetaConnectorNativeFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNativeSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZetaConnectorNativeSession struct { + Contract *ZetaConnectorNative // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorNativeCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZetaConnectorNativeCallerSession struct { + Contract *ZetaConnectorNativeCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZetaConnectorNativeTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZetaConnectorNativeTransactorSession struct { + Contract *ZetaConnectorNativeTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorNativeRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZetaConnectorNativeRaw struct { + Contract *ZetaConnectorNative // Generic contract binding to access the raw methods on +} + +// ZetaConnectorNativeCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZetaConnectorNativeCallerRaw struct { + Contract *ZetaConnectorNativeCaller // Generic read-only contract binding to access the raw methods on +} + +// ZetaConnectorNativeTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZetaConnectorNativeTransactorRaw struct { + Contract *ZetaConnectorNativeTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZetaConnectorNative creates a new instance of ZetaConnectorNative, bound to a specific deployed contract. +func NewZetaConnectorNative(address common.Address, backend bind.ContractBackend) (*ZetaConnectorNative, error) { + contract, err := bindZetaConnectorNative(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZetaConnectorNative{ZetaConnectorNativeCaller: ZetaConnectorNativeCaller{contract: contract}, ZetaConnectorNativeTransactor: ZetaConnectorNativeTransactor{contract: contract}, ZetaConnectorNativeFilterer: ZetaConnectorNativeFilterer{contract: contract}}, nil +} + +// NewZetaConnectorNativeCaller creates a new read-only instance of ZetaConnectorNative, bound to a specific deployed contract. +func NewZetaConnectorNativeCaller(address common.Address, caller bind.ContractCaller) (*ZetaConnectorNativeCaller, error) { + contract, err := bindZetaConnectorNative(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeCaller{contract: contract}, nil +} + +// NewZetaConnectorNativeTransactor creates a new write-only instance of ZetaConnectorNative, bound to a specific deployed contract. +func NewZetaConnectorNativeTransactor(address common.Address, transactor bind.ContractTransactor) (*ZetaConnectorNativeTransactor, error) { + contract, err := bindZetaConnectorNative(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTransactor{contract: contract}, nil +} + +// NewZetaConnectorNativeFilterer creates a new log filterer instance of ZetaConnectorNative, bound to a specific deployed contract. +func NewZetaConnectorNativeFilterer(address common.Address, filterer bind.ContractFilterer) (*ZetaConnectorNativeFilterer, error) { + contract, err := bindZetaConnectorNative(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeFilterer{contract: contract}, nil +} + +// bindZetaConnectorNative binds a generic wrapper to an already deployed contract. +func bindZetaConnectorNative(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZetaConnectorNativeMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaConnectorNative *ZetaConnectorNativeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorNative.Contract.ZetaConnectorNativeCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaConnectorNative *ZetaConnectorNativeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.ZetaConnectorNativeTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorNative *ZetaConnectorNativeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.ZetaConnectorNativeTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaConnectorNative *ZetaConnectorNativeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorNative.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.contract.Transact(opts, method, params...) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorNative *ZetaConnectorNativeCaller) Gateway(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorNative.contract.Call(opts, &out, "gateway") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorNative *ZetaConnectorNativeSession) Gateway() (common.Address, error) { + return _ZetaConnectorNative.Contract.Gateway(&_ZetaConnectorNative.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorNative *ZetaConnectorNativeCallerSession) Gateway() (common.Address, error) { + return _ZetaConnectorNative.Contract.Gateway(&_ZetaConnectorNative.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorNative *ZetaConnectorNativeCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorNative.contract.Call(opts, &out, "tssAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorNative *ZetaConnectorNativeSession) TssAddress() (common.Address, error) { + return _ZetaConnectorNative.Contract.TssAddress(&_ZetaConnectorNative.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorNative *ZetaConnectorNativeCallerSession) TssAddress() (common.Address, error) { + return _ZetaConnectorNative.Contract.TssAddress(&_ZetaConnectorNative.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorNative *ZetaConnectorNativeCaller) ZetaToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorNative.contract.Call(opts, &out, "zetaToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorNative *ZetaConnectorNativeSession) ZetaToken() (common.Address, error) { + return _ZetaConnectorNative.Contract.ZetaToken(&_ZetaConnectorNative.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorNative *ZetaConnectorNativeCallerSession) ZetaToken() (common.Address, error) { + return _ZetaConnectorNative.Contract.ZetaToken(&_ZetaConnectorNative.CallOpts) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactor) ReceiveTokens(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNative.contract.Transact(opts, "receiveTokens", amount) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeSession) ReceiveTokens(amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.ReceiveTokens(&_ZetaConnectorNative.TransactOpts, amount) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorSession) ReceiveTokens(amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.ReceiveTokens(&_ZetaConnectorNative.TransactOpts, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x106e6290. +// +// Solidity: function withdraw(address to, uint256 amount, bytes32 internalSendHash) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactor) Withdraw(opts *bind.TransactOpts, to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNative.contract.Transact(opts, "withdraw", to, amount, internalSendHash) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x106e6290. +// +// Solidity: function withdraw(address to, uint256 amount, bytes32 internalSendHash) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeSession) Withdraw(to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.Withdraw(&_ZetaConnectorNative.TransactOpts, to, amount, internalSendHash) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x106e6290. +// +// Solidity: function withdraw(address to, uint256 amount, bytes32 internalSendHash) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorSession) Withdraw(to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.Withdraw(&_ZetaConnectorNative.TransactOpts, to, amount, internalSendHash) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x5e3e9fef. +// +// Solidity: function withdrawAndCall(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactor) WithdrawAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNative.contract.Transact(opts, "withdrawAndCall", to, amount, data, internalSendHash) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x5e3e9fef. +// +// Solidity: function withdrawAndCall(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeSession) WithdrawAndCall(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.WithdrawAndCall(&_ZetaConnectorNative.TransactOpts, to, amount, data, internalSendHash) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x5e3e9fef. +// +// Solidity: function withdrawAndCall(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorSession) WithdrawAndCall(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.WithdrawAndCall(&_ZetaConnectorNative.TransactOpts, to, amount, data, internalSendHash) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0x02d5c899. +// +// Solidity: function withdrawAndRevert(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactor) WithdrawAndRevert(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNative.contract.Transact(opts, "withdrawAndRevert", to, amount, data, internalSendHash) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0x02d5c899. +// +// Solidity: function withdrawAndRevert(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeSession) WithdrawAndRevert(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.WithdrawAndRevert(&_ZetaConnectorNative.TransactOpts, to, amount, data, internalSendHash) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0x02d5c899. +// +// Solidity: function withdrawAndRevert(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorSession) WithdrawAndRevert(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.WithdrawAndRevert(&_ZetaConnectorNative.TransactOpts, to, amount, data, internalSendHash) +} + +// ZetaConnectorNativeWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeWithdrawIterator struct { + Event *ZetaConnectorNativeWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeWithdraw represents a Withdraw event raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeWithdraw struct { + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) FilterWithdraw(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNativeWithdrawIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.FilterLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeWithdrawIterator{contract: _ZetaConnectorNative.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeWithdraw, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.WatchLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeWithdraw) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) ParseWithdraw(log types.Log) (*ZetaConnectorNativeWithdraw, error) { + event := new(ZetaConnectorNativeWithdraw) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeWithdrawAndCallIterator struct { + Event *ZetaConnectorNativeWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeWithdrawAndCall represents a WithdrawAndCall event raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeWithdrawAndCall struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndCall is a free log retrieval operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNativeWithdrawAndCallIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.FilterLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeWithdrawAndCallIterator{contract: _ZetaConnectorNative.contract, event: "WithdrawAndCall", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndCall is a free log subscription operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeWithdrawAndCall, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.WatchLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeWithdrawAndCall) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndCall is a log parse operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) ParseWithdrawAndCall(log types.Log) (*ZetaConnectorNativeWithdrawAndCall, error) { + event := new(ZetaConnectorNativeWithdrawAndCall) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeWithdrawAndRevertIterator struct { + Event *ZetaConnectorNativeWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeWithdrawAndRevert represents a WithdrawAndRevert event raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeWithdrawAndRevert struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndRevert is a free log retrieval operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNativeWithdrawAndRevertIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.FilterLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeWithdrawAndRevertIterator{contract: _ZetaConnectorNative.contract, event: "WithdrawAndRevert", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndRevert is a free log subscription operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeWithdrawAndRevert, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.WatchLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeWithdrawAndRevert) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndRevert is a log parse operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) ParseWithdrawAndRevert(log types.Log) (*ZetaConnectorNativeWithdrawAndRevert, error) { + event := new(ZetaConnectorNativeWithdrawAndRevert) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/zetaconnectornative.t.sol/zetaconnectornativetest.go b/v2/pkg/zetaconnectornative.t.sol/zetaconnectornativetest.go new file mode 100644 index 00000000..24ee01fd --- /dev/null +++ b/v2/pkg/zetaconnectornative.t.sol/zetaconnectornativetest.go @@ -0,0 +1,5773 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zetaconnectornative + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdInvariantFuzzArtifactSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzArtifactSelector struct { + Artifact string + Selectors [][4]byte +} + +// StdInvariantFuzzInterface is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzInterface struct { + Addr common.Address + Artifacts []string +} + +// StdInvariantFuzzSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzSelector struct { + Addr common.Address + Selectors [][4]byte +} + +// ZetaConnectorNativeTestMetaData contains all meta data concerning the ZetaConnectorNativeTest contract. +var ZetaConnectorNativeTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"IS_TEST\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"failed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setUp\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzArtifactSelector[]\",\"components\":[{\"name\":\"artifact\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetInterfaces\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzInterface[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"artifacts\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"testWithdraw\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndCallReceiveERC20\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndCallReceiveERC20Partial\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndCallReceiveNoParams\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndRevert\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawAndRevertFailsIfSenderIsNotTSS\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawFailsIfSenderIsNotTSS\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Executed\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedERC20\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNoParams\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNonPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strs\",\"type\":\"string[]\",\"indexed\":false,\"internalType\":\"string[]\"},{\"name\":\"nums\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"str\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedRevert\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Reverted\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RevertedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndCall\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndRevert\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_address\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes32\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_int\",\"inputs\":[{\"name\":\"\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_address\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes32\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_string\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_string\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_uint\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"logs\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061c3288061003c6000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c8063893f9164116100d8578063ba414fa61161008c578063de1cb76c11610066578063de1cb76c14610268578063e20c9f7114610270578063fa7626d41461027857600080fd5b8063ba414fa614610240578063d509b16c14610258578063dcf7d0371461026057600080fd5b8063991a2ab5116100bd578063991a2ab514610228578063b0464fdc14610230578063b5508aa91461023857600080fd5b8063893f91641461020b578063916a17c61461021357600080fd5b80633f7286f41161012f57806357bb1c8f1161011457806357bb1c8f146101d957806366d9a9a0146101e157806385226c81146101f657600080fd5b80633f7286f4146101c957806349346558146101d157600080fd5b80632ade3880116101605780632ade3880146101a45780633cba0107146101b95780633e5e3c23146101c157600080fd5b80630a9254e41461017c5780631ed7831c14610186575b600080fd5b610184610285565b005b61018e6109bf565b60405161019b9190617991565b60405180910390f35b6101ac610a21565b60405161019b9190617a2d565b610184610b63565b61018e611336565b61018e611396565b6101846113f6565b610184611a52565b6101e9611c48565b60405161019b9190617b93565b6101fe611dca565b60405161019b9190617c31565b610184611e9a565b61021b612055565b60405161019b9190617ca8565b610184612150565b61021b612358565b6101fe612453565b610248612523565b604051901515815260200161019b565b6101846125f7565b610184612a0d565b6101846130cd565b61018e613733565b601f546102489060ff1681565b602580547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602680548216611234179055602780549091166156781790556040516102d7906178a4565b604080825260049082018190527f7a6574610000000000000000000000000000000000000000000000000000000060608301526080602083018190528201527f5a4554410000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f08015801561035b573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081178255604080518082018252600e81527f4761746577617945564d2e736f6c000000000000000000000000000000000000602082015260275491519190941692810192909252604482015261043f919060640160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f485cc95500000000000000000000000000000000000000000000000000000000179052613793565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155602754604051919216906104c3906178b1565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156104f6573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055602054602454602754604051928416939182169291169061054b906178be565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610587573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040516105cc906178cb565b604051809103906000f0801580156105e8573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556027546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b15801561069457600080fd5b505af11580156106a8573d6000803e3d6000fd5b50506027546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b50506020546022546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b15801561079857600080fd5b505af11580156107ac573d6000803e3d6000fd5b50506020546023546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b15801561081257600080fd5b505af1158015610826573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050602480546023546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152624c4b40938101939093521692506340c10f199150604401600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b50506027546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b1580156109a557600080fd5b505af11580156109b9573d6000803e3d6000fd5b50505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610a1757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f9575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015610b5a57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610b43578382906000526020600020018054610ab690617d3f565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae290617d3f565b8015610b2f5780601f10610b0457610100808354040283529160200191610b2f565b820191906000526020600020905b815481529060010190602001808311610b1257829003601f168201915b505050505081526020019060010190610a97565b505050508152505081526020019060010190610a45565b50505050905090565b60248054602654604051620186a09381018490526001600160a01b03928316604482015291166064820152600090819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a2000000000000000000000000000000000000000000000000000000001790526024805460265492516370a0823160e01b81526001600160a01b0393841660048201529394506000939216916370a082319101602060405180830381865afa158015610c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c629190617d8c565b9050610c6f8160006137b2565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015610cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce39190617d8c565b6020546040516001600160a01b0390911660248201526044810187905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391610dc6916001600160a01b0391909116906000908690600401617da5565b600060405180830381600087803b158015610de057600080fd5b505af1158015610df4573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015610e8657600080fd5b505af1158015610e9a573d6000803e3d6000fd5b505060208054602454602654604080516001600160a01b0394851681529485018d905291831684830152919091166060830152517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609350908190036080019150a16023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015610f8957600080fd5b505af1158015610f9d573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced9150610fe29089908890617dcd565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561105c57600080fd5b505af1158015611070573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef93506110c892909116908a9089908b90600401617de6565b600060405180830381600087803b1580156110e257600080fd5b505af11580156110f6573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a0823191015b602060405180830381865afa158015611149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116d9190617d8c565b905061117981886137b2565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa1580156111c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ed9190617d8c565b9050611202816111fd8a87617e4e565b6137b2565b602480546020546021546040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082169381019390935260009291169063dd62ed3e90604401602060405180830381865afa158015611278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129c9190617d8c565b90506112a98160006137b2565b602480546020546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa1580156112f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131d9190617d8c565b905061132a8160006137b2565b50505050505050505050565b60606018805480602002602001604051908101604052809291908181526020018280548015610a17576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116109f9575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610a17576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116109f9575050505050905090565b604080516004808252602480830184526020830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6ed70169000000000000000000000000000000000000000000000000000000001790525460265493516370a0823160e01b8152620186a0946000949385936001600160a01b03908116936370a082319361149793921691016001600160a01b0391909116815260200190565b602060405180830381865afa1580156114b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d89190617d8c565b90506114e58160006137b2565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115599190617d8c565b6020546040516001600160a01b0390911660248201526044810187905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba39161163c916001600160a01b0391909116906000908690600401617da5565b600060405180830381600087803b15801561165657600080fd5b505af115801561166a573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156116fc57600080fd5b505af1158015611710573d6000803e3d6000fd5b5050602080546040516001600160a01b0390911681527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0935001905060405180910390a16023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced915061183b9089908890617dcd565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156118b557600080fd5b505af11580156118c9573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef935061192192909116908a9089908b90600401617de6565b600060405180830381600087803b15801561193b57600080fd5b505af115801561194f573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa1580156119a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c59190617d8c565b90506119d28160006137b2565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a469190617d8c565b905061120281856137b2565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152620186a090600090819060250160408051808303601f19018152908290526025547fca669fa70000000000000000000000000000000000000000000000000000000083526001600160a01b031660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611b0857600080fd5b505af1158015611b1c573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fddb5de5e000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b158015611ba557600080fd5b505af1158015611bb9573d6000803e3d6000fd5b50506023546021546040517f02d5c8990000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506302d5c8999350611c119290911690879086908890600401617de6565b600060405180830381600087803b158015611c2b57600080fd5b505af1158015611c3f573d6000803e3d6000fd5b50505050505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015610b5a5783829060005260206000209060020201604051806040016040529081600082018054611c9f90617d3f565b80601f0160208091040260200160405190810160405280929190818152602001828054611ccb90617d3f565b8015611d185780601f10611ced57610100808354040283529160200191611d18565b820191906000526020600020905b815481529060010190602001808311611cfb57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611db257602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611d5f5790505b50505050508152505081526020019060010190611c6c565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610b5a578382906000526020600020018054611e0d90617d3f565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3990617d3f565b8015611e865780601f10611e5b57610100808354040283529160200191611e86565b820191906000526020600020905b815481529060010190602001808311611e6957829003601f168201915b505050505081526020019060010190611dee565b6025546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152620186a090600090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611f1457600080fd5b505af1158015611f28573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fddb5de5e000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b158015611fb157600080fd5b505af1158015611fc5573d6000803e3d6000fd5b50506023546026546040517f106e62900000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101879052604481018690529116925063106e62909150606401600060405180830381600087803b15801561203957600080fd5b505af115801561204d573d6000803e3d6000fd5b505050505050565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015610b5a5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561213857602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116120e55790505b50505050508152505081526020019060010190612079565b60248054602654604051620186a09381018490526001600160a01b03928316604482015291166064820152600090819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a20000000000000000000000000000000000000000000000000000000017905260255490517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561224f57600080fd5b505af1158015612263573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fddb5de5e000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b1580156122ec57600080fd5b505af1158015612300573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef9350611c119290911690879086908890600401617de6565b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015610b5a5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561243b57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116123e85790505b5050505050815250508152602001906001019061237c565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610b5a57838290600052602060002001805461249690617d3f565b80601f01602080910402602001604051908101604052809291908181526020018280546124c290617d3f565b801561250f5780601f106124e45761010080835404028352916020019161250f565b820191906000526020600020905b8154815290600101906020018083116124f257829003601f168201915b505050505081526020019060010190612477565b60085460009060ff161561253b575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa1580156125cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f09190617d8c565b1415905090565b602480546026546040516370a0823160e01b81526001600160a01b039182166004820152620186a093600093849316916370a082319101602060405180830381865afa15801561264b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266f9190617d8c565b905061267c8160006137b2565b6026546040516001600160a01b0390911660248201526044810184905260009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba39161275c916001600160a01b0391909116906000908690600401617da5565b600060405180830381600087803b15801561277657600080fd5b505af115801561278a573d6000803e3d6000fd5b50506023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561281c57600080fd5b505af1158015612830573d6000803e3d6000fd5b50506026546040518781526001600160a01b0390911692507f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364915060200160405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156128e857600080fd5b505af11580156128fc573d6000803e3d6000fd5b50506023546026546040517f106e62900000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101899052604481018890529116925063106e62909150606401600060405180830381600087803b15801561297057600080fd5b505af1158015612984573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa1580156129d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129fa9190617d8c565b9050612a0681866137b2565b5050505050565b60248054602654604051620186a09381018490526001600160a01b03928316604482015291166064820152600090819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc5131691000000000000000000000000000000000000000000000000000000001790526024805460265492516370a0823160e01b81526001600160a01b0393841660048201529394506000939216916370a082319101602060405180830381865afa158015612ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0c9190617d8c565b9050612b198160006137b2565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015612b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b8d9190617d8c565b6020546040516001600160a01b0390911660248201526044810187905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391612c70916001600160a01b0391909116906000908690600401617da5565b600060405180830381600087803b158015612c8a57600080fd5b505af1158015612c9e573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015612d3057600080fd5b505af1158015612d44573d6000803e3d6000fd5b50506020547f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af6092506001600160a01b03169050612d82600289617e61565b602454602654604080516001600160a01b03958616815260208101949094529184168383015292909216606082015290519081900360800190a16023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015612e4a57600080fd5b505af1158015612e5e573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced9150612ea39089908890617dcd565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612f1d57600080fd5b505af1158015612f31573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef9350612f8992909116908a9089908b90600401617de6565b600060405180830381600087803b158015612fa357600080fd5b505af1158015612fb7573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa158015613009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302d9190617d8c565b905061303e816111fd60028a617e61565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa15801561308e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b29190617d8c565b9050611202816130c360028b617e61565b6111fd9087617e4e565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152620186a090600090819060250160408051808303601f1901815290829052602480546021546370a0823160e01b85526001600160a01b0390811660048601529294506000939216916370a082319101602060405180830381865afa158015613162573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131869190617d8c565b90506131938160006137b2565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa1580156131e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132079190617d8c565b6020546040516001600160a01b0390911660248201526044810187905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba3916132ea916001600160a01b0391909116906000908690600401617da5565b600060405180830381600087803b15801561330457600080fd5b505af1158015613318573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156133aa57600080fd5b505af11580156133be573d6000803e3d6000fd5b50506020546040517f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa935061340192506001600160a01b03909116908790617e9c565b60405180910390a16020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561349757600080fd5b505af11580156134ab573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7906134f6908a908990617dcd565b60405180910390a36023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561358c57600080fd5b505af11580156135a0573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe91506135e59089908890617dcd565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561365f57600080fd5b505af1158015613673573d6000803e3d6000fd5b50506023546021546040517f02d5c8990000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506302d5c89993506136cb92909116908a9089908b90600401617de6565b600060405180830381600087803b1580156136e557600080fd5b505af11580156136f9573d6000803e3d6000fd5b5050602480546021546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a08231910161112c565b60606015805480602002602001604051908101604052809291908181526020018280548015610a17576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116109f9575050505050905090565b600061379d6178d8565b6137a8848483613831565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b15801561381d57600080fd5b505afa15801561204d573d6000803e3d6000fd5b60008061383e85846138ac565b90506138a16040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f7879000000815250828660405160200161388c929190617e9c565b604051602081830303815290604052856138b8565b9150505b9392505050565b60006138a583836138e6565b60c081015151600090156138dc576138d584848460c00151613901565b90506138a5565b6138d58484613aa7565b60006138f28383613b92565b6138a5838360200151846138b8565b60008061390c613ba2565b9050600061391a8683613c75565b90506000613931826060015183602001518561411b565b905060006139418383898961432d565b9050600061394e826151aa565b602081015181519192509060030b156139c157898260400151604051602001613978929190617ebe565b60408051601f19818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526139b891600401617f3f565b60405180910390fd5b6000613a046040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001615379565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d90613a57908490600401617f3f565b602060405180830381865afa158015613a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a989190617f52565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590613afc908790600401617f3f565b600060405180830381865afa158015613b19573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b419190810190618063565b90506000613b6f8285604051602001613b5b929190618098565b604051602081830303815290604052615579565b90506001600160a01b0381166137a85784846040516020016139789291906180c7565b613b9e8282600061558c565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c90613c29908490600401618172565b600060405180830381865afa158015613c46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613c6e91908101906181b9565b9250505090565b613ca76040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d9050613cf26040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b613cfb8561568f565b60208201526000613d0b86615a74565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015613d4d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613d7591908101906181b9565b86838560200151604051602001613d8f9493929190618202565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190613de7908590600401617f3f565b600060405180830381865afa158015613e04573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e2c91908101906181b9565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f690613e74908490600401618306565b602060405180830381865afa158015613e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb59190618358565b613eca5781604051602001613978919061837a565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890613f0f90849060040161840c565b600060405180830381865afa158015613f2c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613f5491908101906181b9565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f690613f9b90849060040161845e565b602060405180830381865afa158015613fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fdc9190618358565b15614071576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac89061402690849060040161845e565b600060405180830381865afa158015614043573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261406b91908101906181b9565b60408501525b846001600160a01b03166349c4fac882866000015160405160200161409691906184b0565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016140c292919061851c565b600060405180830381865afa1580156140df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261410791908101906181b9565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816141375790505090506040518060400160405280600481526020017f67726570000000000000000000000000000000000000000000000000000000008152508160008151811061419757614197618541565b60200260200101819052506040518060400160405280600381526020017f2d726c0000000000000000000000000000000000000000000000000000000000815250816001815181106141eb576141eb618541565b6020026020010181905250846040516020016142079190618570565b6040516020818303038152906040528160028151811061422957614229618541565b60200260200101819052508260405160200161424591906185dc565b6040516020818303038152906040528160038151811061426757614267618541565b6020026020010181905250600061427d826151aa565b602080820151604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000818501908152825180840184526000808252908601528251808401909352905182529281019290925291925061430e9060408051808201825260008082526020918201528151808301909252845182528085019082015290615cf7565b6143235785604051602001613978919061861d565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d901561437d565b511590565b6144f157826020015115614439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a4016139b8565b8260c00151156144f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a4016139b8565b6040805160ff8082526120008201909252600091816020015b606081526020019060019003908161450a57905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280614565906186ae565b935060ff168151811061457a5761457a618541565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e37000000000000000000000000000000000000008152506040516020016145cb91906186cd565b6040516020818303038152906040528282806145e6906186ae565b935060ff16815181106145fb576145fb618541565b60200260200101819052506040518060400160405280600681526020017f6465706c6f790000000000000000000000000000000000000000000000000000815250828280614648906186ae565b935060ff168151811061465d5761465d618541565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d650000000000000000000000000000000000008152508282806146aa906186ae565b935060ff16815181106146bf576146bf618541565b602002602001018190525087602001518282806146db906186ae565b935060ff16815181106146f0576146f0618541565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163745061746800000000000000000000000000000000000081525082828061473d906186ae565b935060ff168151811061475257614752618541565b60209081029190910101528751828261476a816186ae565b935060ff168151811061477f5761477f618541565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e496400000000000000000000000000000000000000000000008152508282806147cc906186ae565b935060ff16815181106147e1576147e1618541565b60200260200101819052506147f546615d58565b8282614800816186ae565b935060ff168151811061481557614815618541565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c650000000000000000000000000000000000815250828280614862906186ae565b935060ff168151811061487757614877618541565b60200260200101819052508682828061488f906186ae565b935060ff16815181106148a4576148a4618541565b60209081029190910101528551156149cb5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f64650000000000000000000000602082015282826148f5816186ae565b935060ff168151811061490a5761490a618541565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d9061495a908990600401617f3f565b600060405180830381865afa158015614977573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261499f91908101906181b9565b82826149aa816186ae565b935060ff16815181106149bf576149bf618541565b60200260200101819052505b846020015115614a9b5760408051808201909152601281527f2d2d766572696679536f75726365436f6465000000000000000000000000000060208201528282614a14816186ae565b935060ff1681518110614a2957614a29618541565b60200260200101819052506040518060400160405280600581526020017f66616c7365000000000000000000000000000000000000000000000000000000815250828280614a76906186ae565b935060ff1681518110614a8b57614a8b618541565b6020026020010181905250614c62565b614ad36143788660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b614b665760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614b16816186ae565b935060ff1681518110614b2b57614b2b618541565b60200260200101819052508460a00151604051602001614b4b9190618570565b604051602081830303815290604052828280614a76906186ae565b8460c00151158015614ba9575060408089015181518083018352600080825260209182015282518084019093528151835290810190820152614ba790511590565b155b15614c625760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614bed816186ae565b935060ff1681518110614c0257614c02618541565b6020026020010181905250614c1688615df8565b604051602001614c269190618570565b604051602081830303815290604052828280614c41906186ae565b935060ff1681518110614c5657614c56618541565b60200260200101819052505b60408086015181518083018352600080825260209182015282518084019093528151835290810190820152614c9690511590565b614d2b5760408051808201909152600b81527f2d2d72656c61796572496400000000000000000000000000000000000000000060208201528282614cd9816186ae565b935060ff1681518110614cee57614cee618541565b60200260200101819052508460400151828280614d0a906186ae565b935060ff1681518110614d1f57614d1f618541565b60200260200101819052505b606085015115614e4c5760408051808201909152600681527f2d2d73616c74000000000000000000000000000000000000000000000000000060208201528282614d74816186ae565b935060ff1681518110614d8957614d89618541565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015614df8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614e2091908101906181b9565b8282614e2b816186ae565b935060ff1681518110614e4057614e40618541565b60200260200101819052505b60e08501515115614ef35760408051808201909152600a81527f2d2d6761734c696d69740000000000000000000000000000000000000000000060208201528282614e96816186ae565b935060ff1681518110614eab57614eab618541565b6020026020010181905250614ec78560e0015160000151615d58565b8282614ed2816186ae565b935060ff1681518110614ee757614ee7618541565b60200260200101819052505b60e08501516020015115614f9d5760408051808201909152600a81527f2d2d67617350726963650000000000000000000000000000000000000000000060208201528282614f40816186ae565b935060ff1681518110614f5557614f55618541565b6020026020010181905250614f718560e0015160200151615d58565b8282614f7c816186ae565b935060ff1681518110614f9157614f91618541565b60200260200101819052505b60e085015160400151156150475760408051808201909152600e81527f2d2d6d617846656550657247617300000000000000000000000000000000000060208201528282614fea816186ae565b935060ff1681518110614fff57614fff618541565b602002602001018190525061501b8560e0015160400151615d58565b8282615026816186ae565b935060ff168151811061503b5761503b618541565b60200260200101819052505b60e085015160600151156150f15760408051808201909152601681527f2d2d6d61785072696f726974794665655065724761730000000000000000000060208201528282615094816186ae565b935060ff16815181106150a9576150a9618541565b60200260200101819052506150c58560e0015160600151615d58565b82826150d0816186ae565b935060ff16815181106150e5576150e5618541565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561510f5761510f617f7b565b60405190808252806020026020018201604052801561514257816020015b606081526020019060019003908161512d5790505b50905060005b8260ff168160ff16101561519b57838160ff168151811061516b5761516b618541565b6020026020010151828260ff168151811061518857615188618541565b6020908102919091010152600101615148565b5093505050505b949350505050565b6151d16040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c9161525791869101618738565b600060405180830381865afa158015615274573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261529c91908101906181b9565b905060006152aa86836168e7565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b81526004016152da9190617c31565b6000604051808303816000875af11580156152f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615321919081019061877f565b805190915060030b1580159061533a5750602081015151155b80156153495750604081015151155b15614323578160008151811061536157615361618541565b60200260200101516040516020016139789190618835565b606060006153ae8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925286518252808701908201529091506153e59082905b90616a3c565b156155425760006154628261545c846154566154288a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90616a63565b90616ac5565b604080518082018252600181527f0a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506154c6908290616a3c565b1561553057604080518082018252600181527f0a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261552d905b8290616b4a565b90505b61553981616b70565b925050506138a5565b821561555b578484604051602001613978929190618a21565b50506040805160208101909152600081526138a5565b509392505050565b6000808251602084016000f09392505050565b8160a001511561559b57505050565b60006155a8848484616bd9565b905060006155b5826151aa565b602081015181519192509060030b1580156156515750604080518082018252600781527f535543434553530000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615651906040805180820182526000808252602091820152815180830190925284518252808501908201526153df565b1561565e57505050505050565b6040820151511561567e5781604001516040516020016139789190618ac8565b806040516020016139789190618b26565b606060006156c48360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615729905b8290615cf7565b1561579857604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526138a590615793908390617174565b616b70565b604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526157fa905b82906171fe565b6001036158c757604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261586090615526565b50604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526138a590615793905b8390616b4a565b604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261592690615722565b15615a5d57604080518082018252600181527f2f0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082018190528451808601909552925184528301529061598e908390617298565b9050600081600183516159a19190617e4e565b815181106159b1576159b1618541565b60200260200101519050615a54615793615a276040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252855182528086019082015290617174565b95945050505050565b826040516020016139789190618b91565b50919050565b60606000615aa98360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615b0b90615722565b15615b19576138a581616b70565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615b78906157f3565b600103615be257604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526138a590615793906158c0565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615c4190615722565b15615a5d57604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290615ca9908390617298565b9050600181511115615ce5578060028251615cc49190617e4e565b81518110615cd457615cd4618541565b602002602001015192505050919050565b50826040516020016139789190618b91565b805182516000911115615d0c575060006137ac565b81518351602085015160009291615d2291618c6f565b615d2c9190617e4e565b905082602001518103615d435760019150506137ac565b82516020840151819020912014905092915050565b60606000615d658361733d565b600101905060008167ffffffffffffffff811115615d8557615d85617f7b565b6040519080825280601f01601f191660200182016040528015615daf576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084615db957509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091615e84905b829061741f565b15615ec457505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e7365000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615f2390615e7d565b15615f6357505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d4954000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615fc290615e7d565b1561600257505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c7900000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261606190615e7d565b806160c65750604080518082018252601081527f47504c2d322e302d6f722d6c6174657200000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526160c690615e7d565b1561610657505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c7900000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261616590615e7d565b806161ca5750604080518082018252601081527f47504c2d332e302d6f722d6c6174657200000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526161ca90615e7d565b1561620a57505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261626990615e7d565b806162ce5750604080518082018252601181527f4c47504c2d322e312d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526162ce90615e7d565b1561630e57505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261636d90615e7d565b806163d25750604080518082018252601181527f4c47504c2d332e302d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526163d290615e7d565b1561641257505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261647190615e7d565b156164b157505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261651090615e7d565b1561655057505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e3000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526165af90615e7d565b156165ef57505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261664e90615e7d565b1561668e57505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e3000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526166ed90615e7d565b1561672d57505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261678c90615e7d565b806167f15750604080518082018252601181527f4147504c2d332e302d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526167f190615e7d565b1561683157505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e310000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261689090615e7d565b156168d057505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b604080840151845191516139789290602001618c82565b60608060005b8451811015616972578185828151811061690957616909618541565b6020026020010151604051602001616922929190618098565b6040516020818303038152906040529150600185516169419190617e4e565b811461696a57816040516020016169589190618deb565b60405160208183030381529060405291505b6001016168ed565b5060408051600380825260808201909252600091816020015b606081526020019060019003908161698b57905050905083816000815181106169b6576169b6618541565b60200260200101819052506040518060400160405280600281526020017f2d6300000000000000000000000000000000000000000000000000000000000081525081600181518110616a0a57616a0a618541565b60200260200101819052508181600281518110616a2957616a29618541565b6020908102919091010152949350505050565b6020808301518351835192840151600093616a5a9291849190617433565b14159392505050565b60408051808201909152600080825260208201526000616a958460000151856020015185600001518660200151617544565b9050836020015181616aa79190617e4e565b84518590616ab6908390617e4e565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015616aea5750816137ac565b6020808301519084015160019114616b115750815160208481015190840151829020919020145b8015616b4257825184518590616b28908390617e4e565b9052508251602085018051616b3e908390618c6f565b9052505b509192915050565b6040805180820190915260008082526020820152616b69838383617664565b5092915050565b60606000826000015167ffffffffffffffff811115616b9157616b91617f7b565b6040519080825280601f01601f191660200182016040528015616bbb576020820181803683370190505b5090506000602082019050616b69818560200151866000015161770f565b60606000616be5613ba2565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081616c0257905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280616c5d906186ae565b935060ff1681518110616c7257616c72618541565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e3300000000000000000000000000000000000000000000000000815250604051602001616cc39190618e2c565b604051602081830303815290604052828280616cde906186ae565b935060ff1681518110616cf357616cf3618541565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280616d40906186ae565b935060ff1681518110616d5557616d55618541565b602002602001018190525082604051602001616d7191906185dc565b604051602081830303815290604052828280616d8c906186ae565b935060ff1681518110616da157616da1618541565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280616dee906186ae565b935060ff1681518110616e0357616e03618541565b6020026020010181905250616e188784617789565b8282616e23816186ae565b935060ff1681518110616e3857616e38618541565b602090810291909101015285515115616ee45760408051808201909152600b81527f2d2d7265666572656e636500000000000000000000000000000000000000000060208201528282616e8a816186ae565b935060ff1681518110616e9f57616e9f618541565b6020026020010181905250616eb8866000015184617789565b8282616ec3816186ae565b935060ff1681518110616ed857616ed8618541565b60200260200101819052505b856080015115616f525760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282616f2d816186ae565b935060ff1681518110616f4257616f42618541565b6020026020010181905250616fb8565b8415616fb85760408051808201909152601281527f2d2d726571756972655265666572656e6365000000000000000000000000000060208201528282616f97816186ae565b935060ff1681518110616fac57616fac618541565b60200260200101819052505b604086015151156170545760408051808201909152600d81527f2d2d756e73616665416c6c6f770000000000000000000000000000000000000060208201528282617002816186ae565b935060ff168151811061701757617017618541565b60200260200101819052508560400151828280617033906186ae565b935060ff168151811061704857617048618541565b60200260200101819052505b8560600151156170be5760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d65730000000000000000000000006020820152828261709d816186ae565b935060ff16815181106170b2576170b2618541565b60200260200101819052505b60008160ff1667ffffffffffffffff8111156170dc576170dc617f7b565b60405190808252806020026020018201604052801561710f57816020015b60608152602001906001900390816170fa5790505b50905060005b8260ff168160ff16101561716857838160ff168151811061713857617138618541565b6020026020010151828260ff168151811061715557617155618541565b6020908102919091010152600101617115565b50979650505050505050565b60408051808201909152600080825260208201528151835110156171995750816137ac565b815183516020850151600092916171af91618c6f565b6171b99190617e4e565b602084015190915060019082146171da575082516020840151819020908220145b80156171f5578351855186906171f1908390617e4e565b9052505b50929392505050565b60008082600001516172228560000151866020015186600001518760200151617544565b61722c9190618c6f565b90505b835160208501516172409190618c6f565b8111616b69578161725081618e71565b925050826000015161728785602001518361726b9190617e4e565b86516172779190617e4e565b8386600001518760200151617544565b6172919190618c6f565b905061722f565b606060006172a684846171fe565b6172b1906001618c6f565b67ffffffffffffffff8111156172c9576172c9617f7b565b6040519080825280602002602001820160405280156172fc57816020015b60608152602001906001900390816172e75790505b50905060005b8151811015615571576173186157938686616b4a565b82828151811061732a5761732a618541565b6020908102919091010152600101617302565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310617386577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106173b2576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106173d057662386f26fc10000830492506010015b6305f5e10083106173e8576305f5e100830492506008015b61271083106173fc57612710830492506004015b6064831061740e576064830492506002015b600a83106137ac5760010192915050565b600061742b83836177c9565b159392505050565b60008085841161753a57602084116174e6576000841561747e57600161745a866020617e4e565b617465906008618e8b565b617470906002618f89565b61747a9190617e4e565b1990505b835181168561748d8989618c6f565b6174979190617e4e565b805190935082165b8181146174d1578784116174b957879450505050506151a2565b836174c381618f95565b94505082845116905061749f565b6174db8785618c6f565b9450505050506151a2565b8383206174f38588617e4e565b6174fd9087618c6f565b91505b858210617538578482208082036175255761751b8684618c6f565b93505050506151a2565b617530600184617e4e565b925050617500565b505b5092949350505050565b6000838186851161764f57602085116175fe576000851561759057600161756c876020617e4e565b617577906008618e8b565b617582906002618f89565b61758c9190617e4e565b1990505b845181166000876175a18b8b618c6f565b6175ab9190617e4e565b855190915083165b8281146175f0578186106175d8576175cb8b8b618c6f565b96505050505050506151a2565b856175e281618e71565b9650508386511690506175b3565b8596505050505050506151a2565b508383206000905b6176108689617e4e565b821161764d5785832080820361762c57839450505050506151a2565b617637600185618c6f565b935050818061764590618e71565b925050617606565b505b6176598787618c6f565b979650505050505050565b604080518082019091526000808252602082015260006176968560000151866020015186600001518760200151617544565b6020808701805191860191909152519091506176b29082617e4e565b8352845160208601516176c59190618c6f565b81036176d45760008552617706565b835183516176e29190618c6f565b855186906176f1908390617e4e565b90525083516177009082618c6f565b60208601525b50909392505050565b602081106177475781518352617726602084618c6f565b9250617733602083618c6f565b9150617740602082617e4e565b905061770f565b600019811561777657600161775d836020617e4e565b61776990610100618f89565b6177739190617e4e565b90505b9151835183169219169190911790915250565b606060006177978484613c75565b80516020808301516040519394506177b193909101618fac565b60405160208183030381529060405291505092915050565b81518151600091908111156177dc575081515b6020808501519084015160005b83811015617895578251825180821461786557600019602087101561784457600184617816896020617e4e565b6178209190618c6f565b61782b906008618e8b565b617836906002618f89565b6178409190617e4e565b1990505b81811683821681810391146178625797506137ac9650505050505050565b50505b617870602086618c6f565b945061787d602085618c6f565b9350505060208161788e9190618c6f565b90506177e9565b50845186516143239190619004565b610c9f8061902583390190565b610b4a80619cc483390190565b610d878061a80e83390190565b610d5e8061b59583390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161791b617920565b905290565b6040518061010001604052806000151581526020016000151581526020016060815260200160008019168152602001606081526020016060815260200160001515815260200161791b6040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b818110156179d25783516001600160a01b03168352602093840193909201916001016179ab565b509095945050505050565b60005b838110156179f85781810151838201526020016179e0565b50506000910152565b60008151808452617a198160208601602086016179dd565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617b29577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015617b0f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352617af9848651617a01565b6020958601959094509290920191600101617abf565b509197505050602094850194929092019150600101617a55565b50929695505050505050565b600081518084526020840193506020830160005b82811015617b895781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101617b49565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617b29577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752617bff6040880182617a01565b9050602082015191508681036020880152617c1a8183617b35565b965050506020938401939190910190600101617bbb565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617b29577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452617c93858351617a01565b94506020938401939190910190600101617c59565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617b29577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b0381511686526020810151905060406020870152617d296040870182617b35565b9550506020938401939190910190600101617cd0565b600181811c90821680617d5357607f821691505b602082108103615a6e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215617d9e57600080fd5b5051919050565b6001600160a01b0384168152826020820152606060408201526000615a546060830184617a01565b8281526040602082015260006151a26040830184617a01565b6001600160a01b0385168152836020820152608060408201526000617e0e6080830185617a01565b905082606083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156137ac576137ac617e1f565b600082617e97577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6001600160a01b03831681526040602082015260006151a26040830184617a01565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351617ef681601a8501602088016179dd565b7f3a20000000000000000000000000000000000000000000000000000000000000601a918401918201528351617f3381601c8401602088016179dd565b01601c01949350505050565b6020815260006138a56020830184617a01565b600060208284031215617f6457600080fd5b81516001600160a01b03811681146138a557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715617fcd57617fcd617f7b565b60405290565b60008067ffffffffffffffff841115617fee57617fee617f7b565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff8211171561801d5761801d617f7b565b60405283815290508082840185101561803557600080fd5b6155718460208301856179dd565b600082601f83011261805457600080fd5b6138a583835160208501617fd3565b60006020828403121561807557600080fd5b815167ffffffffffffffff81111561808c57600080fd5b6137a884828501618043565b600083516180aa8184602088016179dd565b8351908301906180be8183602088016179dd565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e7472616374200000000000008152600083516180ff81601a8501602088016179dd565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a91840191820152835161813c8160338401602088016179dd565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f555400000000000000000000000000000000000000000060608201526080602082015260006138a56080830184617a01565b6000602082840312156181cb57600080fd5b815167ffffffffffffffff8111156181e257600080fd5b8201601f810184136181f357600080fd5b6137a884825160208401617fd3565b60008551618214818460208a016179dd565b7f2f00000000000000000000000000000000000000000000000000000000000000908301908152855161824e816001840160208a016179dd565b7f2f0000000000000000000000000000000000000000000000000000000000000060019290910191820152845161828c8160028401602089016179dd565b6001818301019150507f2f00000000000000000000000000000000000000000000000000000000000000600182015283516182ce8160028401602088016179dd565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b6040815260006183196040830184617a01565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b60006020828403121561836a57600080fd5b815180151581146138a557600080fd5b7f436f756c64206e6f742066696e642041535420696e20617274696661637420008152600082516183b281601f8501602087016179dd565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b60408152600061841f6040830184617a01565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b6040815260006184716040830184617a01565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b270000000000000000000000008152600082516184e88160148501602087016179dd565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b60408152600061852f6040830185617a01565b82810360208401526138a18185617a01565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f22000000000000000000000000000000000000000000000000000000000000008152600082516185a88160018501602087016179dd565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b600082516185ee8184602087016179dd565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e7472616374200000000000000000000000000000000000000000006040820152600082516186a181604b8501602087016179dd565b91909101604b0192915050565b600060ff821660ff81036186c4576186c4617e1f565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c6940000000000000000000000000000000000000000000000060208201526000825161872b8160298501602087016179dd565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f504154480000000000000000000060608201526080602082015260006138a56080830184617a01565b60006020828403121561879157600080fd5b815167ffffffffffffffff8111156187a857600080fd5b8201606081850312156187ba57600080fd5b6187c2617faa565b81518060030b81146187d357600080fd5b8152602082015167ffffffffffffffff8111156187ef57600080fd5b6187fb86828501618043565b602083015250604082015167ffffffffffffffff81111561881b57600080fd5b61882786828501618043565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f22000000000000000000000000000000000000000000000000000000000000006020820152600082516188938160218501602087016179dd565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f2700000000000000000000000000000000000000000000000000000000000000602082015260008351618a7f8160218501602088016179dd565b7f2720696e206f75747075743a20000000000000000000000000000000000000006021918401918201528351618abc81602e8401602088016179dd565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a20000000000000000000000000000000000000000000000060208201526000825161872b8160298501602087016179dd565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a000000000000000000000000000000000000000000000000000000000000602082015260008251618b848160228501602087016179dd565b9190910160220192915050565b7f436f6e7472616374206e616d6520000000000000000000000000000000000000815260008251618bc981600e8501602087016179dd565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b808201808211156137ac576137ac617e1f565b7f53504458206c6963656e7365206964656e746966696572200000000000000000815260008351618cba8160188501602088016179dd565b7f20696e20000000000000000000000000000000000000000000000000000000006018918401918201528351618cf781601c8401602088016179dd565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b60008251618dfd8184602087016179dd565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f72654000000000815260008251618e6481601c8501602087016179dd565b91909101601c0192915050565b60006000198203618e8457618e84617e1f565b5060010190565b80820281158282048414176137ac576137ac617e1f565b6001815b6001841115618edd57808504811115618ec157618ec1617e1f565b6001841615618ecf57908102905b60019390931c928002618ea6565b935093915050565b600082618ef4575060016137ac565b81618f01575060006137ac565b8160018114618f175760028114618f2157618f3d565b60019150506137ac565b60ff841115618f3257618f32617e1f565b50506001821b6137ac565b5060208310610133831016604e8410600b8410161715618f60575081810a6137ac565b618f6d6000198484618ea2565b8060001904821115618f8157618f81617e1f565b029392505050565b60006138a58383618ee5565b600081618fa457618fa4617e1f565b506000190190565b60008351618fbe8184602088016179dd565b7f3a000000000000000000000000000000000000000000000000000000000000009083019081528351618ff88160018401602088016179dd565b01600101949350505050565b8181036000831280158383131683831282161715616b6957616b69617e1f56fe608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b50604051610b4a380380610b4a83398101604081905261002f916100bc565b60016000556001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ef565b80516001600160a01b03811681146100b757600080fd5b919050565b600080604083850312156100cf57600080fd5b6100d8836100a0565b91506100e6602084016100a0565b90509250929050565b610a4c806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80635b112591116100505780635b112591146100ca578063c8a02362146100ea578063d9caed12146100fd57600080fd5b8063116191b61461006c57806321fc65f2146100b5575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100c86100c3366004610822565b610110565b005b60025461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100c86100f8366004610822565b61029a565b6100c861010b3660046108bf565b61040b565b6101186104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610169576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546101909073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906101ee9088908890889088908890600401610945565b600060405180830381600087803b15801561020857600080fd5b505af115801561021c573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610281939291906109a2565b60405180910390a36102936001600055565b5050505050565b6102a26104fb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102f3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015461031a9073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906103789088908890889088908890600401610945565b600060405180830381600087803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8858585604051610281939291906109a2565b6104136104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61048573ffffffffffffffffffffffffffffffffffffffff8416838361053e565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104e491815260200190565b60405180910390a36104f66001600055565b505050565b600260005403610537576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f6918591906000906105d790841683610650565b905080516000141580156105fc5750808060200190518101906105fa91906109c5565b155b156104f6576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b606061065e83836000610665565b9392505050565b6060814710156106a3576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610647565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516106cc91906109e7565b60006040518083038185875af1925050503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b509150915061071e868383610728565b9695505050505050565b60608261073d57610738826107b7565b61065e565b8151158015610761575073ffffffffffffffffffffffffffffffffffffffff84163b155b156107b0576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610647565b508061065e565b8051156107c75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461081d57600080fd5b919050565b60008060008060006080868803121561083a57600080fd5b610843866107f9565b9450610851602087016107f9565b935060408601359250606086013567ffffffffffffffff81111561087457600080fd5b8601601f8101881361088557600080fd5b803567ffffffffffffffff81111561089c57600080fd5b8860208284010111156108ae57600080fd5b959894975092955050506020019190565b6000806000606084860312156108d457600080fd5b6108dd846107f9565b92506108eb602085016107f9565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006109976080830184866108fc565b979650505050505050565b8381526040602082015260006109bc6040830184866108fc565b95945050505050565b6000602082840312156109d757600080fd5b8151801515811461065e57600080fd5b6000825160005b81811015610a0857602081860181015185830152016109ee565b50600092019182525091905056fea264697066735822122041336b1568f49be1aa3dcd208e804b373772741e9b7e1726a8869e99fced60c764736f6c634300081a003360c060405234801561001057600080fd5b50604051610d87380380610d8783398101604081905261002f916100d2565b60016000558282826001600160a01b038316158061005457506001600160a01b038216155b8061006657506001600160a01b038116155b156100845760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0392831660805290821660a052600180546001600160a01b0319169190921617905550610115915050565b80516001600160a01b03811681146100cd57600080fd5b919050565b6000806000606084860312156100e757600080fd5b6100f0846100b6565b92506100fe602085016100b6565b915061010c604085016100b6565b90509250925092565b60805160a051610c0961017e6000396000818160ff015281816101da0152818161028b015281816103c3015281816104bc0152818161056d015261063301526000818160af015281816101fc0152818161025e015281816104de01526105400152610c096000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806321e093b11161005b57806321e093b1146100fa5780635b112591146101215780635e3e9fef14610141578063743e0c9b1461015457600080fd5b806302d5c89914610082578063106e629014610097578063116191b6146100aa575b600080fd5b6100956100903660046109db565b610167565b005b6100956100a5366004610a6d565b610350565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6001546100d19073ffffffffffffffffffffffffffffffffffffffff1681565b61009561014f3660046109db565b610449565b610095610162366004610aa0565b610619565b61016f61065e565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101c0576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61022173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000866106a1565b6040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b8969bd4906102bb907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610b02565b600060405180830381600087803b1580156102d557600080fd5b505af11580156102e9573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe85858560405161033793929190610b5f565b60405180910390a26103496001600055565b5050505050565b61035861065e565b60015473ffffffffffffffffffffffffffffffffffffffff1633146103a9576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103ea73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001684846106a1565b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161043291815260200190565b60405180910390a26104446001600055565b505050565b61045161065e565b60015473ffffffffffffffffffffffffffffffffffffffff1633146104a2576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61050373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000866106a1565b6040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635131ab599061059d907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610b02565b600060405180830381600087803b1580156105b757600080fd5b505af11580156105cb573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced85858560405161033793929190610b5f565b61065b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333084610722565b50565b60026000540361069a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905261044491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061076e565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526107689186918216906323b872dd906084016106db565b50505050565b600061079073ffffffffffffffffffffffffffffffffffffffff841683610809565b905080516000141580156107b55750808060200190518101906107b39190610b82565b155b15610444576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606108178383600061081e565b9392505050565b60608147101561085c576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610800565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516108859190610ba4565b60006040518083038185875af1925050503d80600081146108c2576040519150601f19603f3d011682016040523d82523d6000602084013e6108c7565b606091505b50915091506108d78683836108e1565b9695505050505050565b6060826108f6576108f182610970565b610817565b815115801561091a575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610969576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610800565b5080610817565b8051156109805780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146109d657600080fd5b919050565b6000806000806000608086880312156109f357600080fd5b6109fc866109b2565b945060208601359350604086013567ffffffffffffffff811115610a1f57600080fd5b8601601f81018813610a3057600080fd5b803567ffffffffffffffff811115610a4757600080fd5b886020828401011115610a5957600080fd5b959894975060200195606001359392505050565b600080600060608486031215610a8257600080fd5b610a8b846109b2565b95602085013595506040909401359392505050565b600060208284031215610ab257600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610b54608083018486610ab9565b979650505050505050565b838152604060208201526000610b79604083018486610ab9565b95945050505050565b600060208284031215610b9457600080fd5b8151801515811461081757600080fd5b6000825160005b81811015610bc55760208186018101518583015201610bab565b50600092019182525091905056fea2646970667358221220ed25bc9308ed3d8f9b30e14ddf88cadd2d738ead8bcd8eb8fb89509e51695cd564736f6c634300081a00336080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a0033a26469706673582212206c7d17709d0b69a2ea55c6d800efcb900d2422dfe8e6cff6f73e98d3c88267f464736f6c634300081a0033", +} + +// ZetaConnectorNativeTestABI is the input ABI used to generate the binding from. +// Deprecated: Use ZetaConnectorNativeTestMetaData.ABI instead. +var ZetaConnectorNativeTestABI = ZetaConnectorNativeTestMetaData.ABI + +// ZetaConnectorNativeTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ZetaConnectorNativeTestMetaData.Bin instead. +var ZetaConnectorNativeTestBin = ZetaConnectorNativeTestMetaData.Bin + +// DeployZetaConnectorNativeTest deploys a new Ethereum contract, binding an instance of ZetaConnectorNativeTest to it. +func DeployZetaConnectorNativeTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ZetaConnectorNativeTest, error) { + parsed, err := ZetaConnectorNativeTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ZetaConnectorNativeTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ZetaConnectorNativeTest{ZetaConnectorNativeTestCaller: ZetaConnectorNativeTestCaller{contract: contract}, ZetaConnectorNativeTestTransactor: ZetaConnectorNativeTestTransactor{contract: contract}, ZetaConnectorNativeTestFilterer: ZetaConnectorNativeTestFilterer{contract: contract}}, nil +} + +// ZetaConnectorNativeTest is an auto generated Go binding around an Ethereum contract. +type ZetaConnectorNativeTest struct { + ZetaConnectorNativeTestCaller // Read-only binding to the contract + ZetaConnectorNativeTestTransactor // Write-only binding to the contract + ZetaConnectorNativeTestFilterer // Log filterer for contract events +} + +// ZetaConnectorNativeTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZetaConnectorNativeTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNativeTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZetaConnectorNativeTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNativeTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZetaConnectorNativeTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNativeTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZetaConnectorNativeTestSession struct { + Contract *ZetaConnectorNativeTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorNativeTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZetaConnectorNativeTestCallerSession struct { + Contract *ZetaConnectorNativeTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZetaConnectorNativeTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZetaConnectorNativeTestTransactorSession struct { + Contract *ZetaConnectorNativeTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorNativeTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZetaConnectorNativeTestRaw struct { + Contract *ZetaConnectorNativeTest // Generic contract binding to access the raw methods on +} + +// ZetaConnectorNativeTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZetaConnectorNativeTestCallerRaw struct { + Contract *ZetaConnectorNativeTestCaller // Generic read-only contract binding to access the raw methods on +} + +// ZetaConnectorNativeTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZetaConnectorNativeTestTransactorRaw struct { + Contract *ZetaConnectorNativeTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZetaConnectorNativeTest creates a new instance of ZetaConnectorNativeTest, bound to a specific deployed contract. +func NewZetaConnectorNativeTest(address common.Address, backend bind.ContractBackend) (*ZetaConnectorNativeTest, error) { + contract, err := bindZetaConnectorNativeTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTest{ZetaConnectorNativeTestCaller: ZetaConnectorNativeTestCaller{contract: contract}, ZetaConnectorNativeTestTransactor: ZetaConnectorNativeTestTransactor{contract: contract}, ZetaConnectorNativeTestFilterer: ZetaConnectorNativeTestFilterer{contract: contract}}, nil +} + +// NewZetaConnectorNativeTestCaller creates a new read-only instance of ZetaConnectorNativeTest, bound to a specific deployed contract. +func NewZetaConnectorNativeTestCaller(address common.Address, caller bind.ContractCaller) (*ZetaConnectorNativeTestCaller, error) { + contract, err := bindZetaConnectorNativeTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestCaller{contract: contract}, nil +} + +// NewZetaConnectorNativeTestTransactor creates a new write-only instance of ZetaConnectorNativeTest, bound to a specific deployed contract. +func NewZetaConnectorNativeTestTransactor(address common.Address, transactor bind.ContractTransactor) (*ZetaConnectorNativeTestTransactor, error) { + contract, err := bindZetaConnectorNativeTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestTransactor{contract: contract}, nil +} + +// NewZetaConnectorNativeTestFilterer creates a new log filterer instance of ZetaConnectorNativeTest, bound to a specific deployed contract. +func NewZetaConnectorNativeTestFilterer(address common.Address, filterer bind.ContractFilterer) (*ZetaConnectorNativeTestFilterer, error) { + contract, err := bindZetaConnectorNativeTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestFilterer{contract: contract}, nil +} + +// bindZetaConnectorNativeTest binds a generic wrapper to an already deployed contract. +func bindZetaConnectorNativeTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZetaConnectorNativeTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorNativeTest.Contract.ZetaConnectorNativeTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.ZetaConnectorNativeTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.ZetaConnectorNativeTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorNativeTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.contract.Transact(opts, method, params...) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) ISTEST(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "IS_TEST") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) ISTEST() (bool, error) { + return _ZetaConnectorNativeTest.Contract.ISTEST(&_ZetaConnectorNativeTest.CallOpts) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) ISTEST() (bool, error) { + return _ZetaConnectorNativeTest.Contract.ISTEST(&_ZetaConnectorNativeTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) ExcludeArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "excludeArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) ExcludeArtifacts() ([]string, error) { + return _ZetaConnectorNativeTest.Contract.ExcludeArtifacts(&_ZetaConnectorNativeTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) ExcludeArtifacts() ([]string, error) { + return _ZetaConnectorNativeTest.Contract.ExcludeArtifacts(&_ZetaConnectorNativeTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) ExcludeContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "excludeContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) ExcludeContracts() ([]common.Address, error) { + return _ZetaConnectorNativeTest.Contract.ExcludeContracts(&_ZetaConnectorNativeTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) ExcludeContracts() ([]common.Address, error) { + return _ZetaConnectorNativeTest.Contract.ExcludeContracts(&_ZetaConnectorNativeTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) ExcludeSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "excludeSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _ZetaConnectorNativeTest.Contract.ExcludeSelectors(&_ZetaConnectorNativeTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _ZetaConnectorNativeTest.Contract.ExcludeSelectors(&_ZetaConnectorNativeTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) ExcludeSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "excludeSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) ExcludeSenders() ([]common.Address, error) { + return _ZetaConnectorNativeTest.Contract.ExcludeSenders(&_ZetaConnectorNativeTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) ExcludeSenders() ([]common.Address, error) { + return _ZetaConnectorNativeTest.Contract.ExcludeSenders(&_ZetaConnectorNativeTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) Failed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "failed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) Failed() (bool, error) { + return _ZetaConnectorNativeTest.Contract.Failed(&_ZetaConnectorNativeTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) Failed() (bool, error) { + return _ZetaConnectorNativeTest.Contract.Failed(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) TargetArtifactSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzArtifactSelector, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "targetArtifactSelectors") + + if err != nil { + return *new([]StdInvariantFuzzArtifactSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzArtifactSelector)).(*[]StdInvariantFuzzArtifactSelector) + + return out0, err + +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _ZetaConnectorNativeTest.Contract.TargetArtifactSelectors(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _ZetaConnectorNativeTest.Contract.TargetArtifactSelectors(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) TargetArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "targetArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TargetArtifacts() ([]string, error) { + return _ZetaConnectorNativeTest.Contract.TargetArtifacts(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) TargetArtifacts() ([]string, error) { + return _ZetaConnectorNativeTest.Contract.TargetArtifacts(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) TargetContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "targetContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TargetContracts() ([]common.Address, error) { + return _ZetaConnectorNativeTest.Contract.TargetContracts(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) TargetContracts() ([]common.Address, error) { + return _ZetaConnectorNativeTest.Contract.TargetContracts(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) TargetInterfaces(opts *bind.CallOpts) ([]StdInvariantFuzzInterface, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "targetInterfaces") + + if err != nil { + return *new([]StdInvariantFuzzInterface), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzInterface)).(*[]StdInvariantFuzzInterface) + + return out0, err + +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _ZetaConnectorNativeTest.Contract.TargetInterfaces(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _ZetaConnectorNativeTest.Contract.TargetInterfaces(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) TargetSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "targetSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _ZetaConnectorNativeTest.Contract.TargetSelectors(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _ZetaConnectorNativeTest.Contract.TargetSelectors(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) TargetSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "targetSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TargetSenders() ([]common.Address, error) { + return _ZetaConnectorNativeTest.Contract.TargetSenders(&_ZetaConnectorNativeTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) TargetSenders() ([]common.Address, error) { + return _ZetaConnectorNativeTest.Contract.TargetSenders(&_ZetaConnectorNativeTest.CallOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) SetUp(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "setUp") +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) SetUp() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.SetUp(&_ZetaConnectorNativeTest.TransactOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) SetUp() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.SetUp(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdraw is a paid mutator transaction binding the contract method 0xd509b16c. +// +// Solidity: function testWithdraw() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdraw(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdraw") +} + +// TestWithdraw is a paid mutator transaction binding the contract method 0xd509b16c. +// +// Solidity: function testWithdraw() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdraw() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdraw(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdraw is a paid mutator transaction binding the contract method 0xd509b16c. +// +// Solidity: function testWithdraw() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdraw() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdraw(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20 is a paid mutator transaction binding the contract method 0x3cba0107. +// +// Solidity: function testWithdrawAndCallReceiveERC20() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdrawAndCallReceiveERC20(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdrawAndCallReceiveERC20") +} + +// TestWithdrawAndCallReceiveERC20 is a paid mutator transaction binding the contract method 0x3cba0107. +// +// Solidity: function testWithdrawAndCallReceiveERC20() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdrawAndCallReceiveERC20() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndCallReceiveERC20(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20 is a paid mutator transaction binding the contract method 0x3cba0107. +// +// Solidity: function testWithdrawAndCallReceiveERC20() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdrawAndCallReceiveERC20() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndCallReceiveERC20(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x991a2ab5. +// +// Solidity: function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS") +} + +// TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x991a2ab5. +// +// Solidity: function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x991a2ab5. +// +// Solidity: function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20Partial is a paid mutator transaction binding the contract method 0xdcf7d037. +// +// Solidity: function testWithdrawAndCallReceiveERC20Partial() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdrawAndCallReceiveERC20Partial(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdrawAndCallReceiveERC20Partial") +} + +// TestWithdrawAndCallReceiveERC20Partial is a paid mutator transaction binding the contract method 0xdcf7d037. +// +// Solidity: function testWithdrawAndCallReceiveERC20Partial() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdrawAndCallReceiveERC20Partial() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndCallReceiveERC20Partial(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20Partial is a paid mutator transaction binding the contract method 0xdcf7d037. +// +// Solidity: function testWithdrawAndCallReceiveERC20Partial() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdrawAndCallReceiveERC20Partial() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndCallReceiveERC20Partial(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveNoParams is a paid mutator transaction binding the contract method 0x49346558. +// +// Solidity: function testWithdrawAndCallReceiveNoParams() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdrawAndCallReceiveNoParams(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdrawAndCallReceiveNoParams") +} + +// TestWithdrawAndCallReceiveNoParams is a paid mutator transaction binding the contract method 0x49346558. +// +// Solidity: function testWithdrawAndCallReceiveNoParams() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdrawAndCallReceiveNoParams() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndCallReceiveNoParams(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveNoParams is a paid mutator transaction binding the contract method 0x49346558. +// +// Solidity: function testWithdrawAndCallReceiveNoParams() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdrawAndCallReceiveNoParams() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndCallReceiveNoParams(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndRevert is a paid mutator transaction binding the contract method 0xde1cb76c. +// +// Solidity: function testWithdrawAndRevert() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdrawAndRevert(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdrawAndRevert") +} + +// TestWithdrawAndRevert is a paid mutator transaction binding the contract method 0xde1cb76c. +// +// Solidity: function testWithdrawAndRevert() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdrawAndRevert() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndRevert(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndRevert is a paid mutator transaction binding the contract method 0xde1cb76c. +// +// Solidity: function testWithdrawAndRevert() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdrawAndRevert() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndRevert(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndRevertFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x57bb1c8f. +// +// Solidity: function testWithdrawAndRevertFailsIfSenderIsNotTSS() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdrawAndRevertFailsIfSenderIsNotTSS(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdrawAndRevertFailsIfSenderIsNotTSS") +} + +// TestWithdrawAndRevertFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x57bb1c8f. +// +// Solidity: function testWithdrawAndRevertFailsIfSenderIsNotTSS() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdrawAndRevertFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndRevertFailsIfSenderIsNotTSS(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndRevertFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x57bb1c8f. +// +// Solidity: function testWithdrawAndRevertFailsIfSenderIsNotTSS() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdrawAndRevertFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndRevertFailsIfSenderIsNotTSS(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x893f9164. +// +// Solidity: function testWithdrawFailsIfSenderIsNotTSS() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdrawFailsIfSenderIsNotTSS(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdrawFailsIfSenderIsNotTSS") +} + +// TestWithdrawFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x893f9164. +// +// Solidity: function testWithdrawFailsIfSenderIsNotTSS() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdrawFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawFailsIfSenderIsNotTSS(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawFailsIfSenderIsNotTSS is a paid mutator transaction binding the contract method 0x893f9164. +// +// Solidity: function testWithdrawFailsIfSenderIsNotTSS() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdrawFailsIfSenderIsNotTSS() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawFailsIfSenderIsNotTSS(&_ZetaConnectorNativeTest.TransactOpts) +} + +// ZetaConnectorNativeTestCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestCallIterator struct { + Event *ZetaConnectorNativeTestCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestCall represents a Call event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestCall struct { + Sender common.Address + Receiver common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*ZetaConnectorNativeTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestCallIterator{contract: _ZetaConnectorNativeTest.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestCall, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestCall) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseCall(log types.Log) (*ZetaConnectorNativeTestCall, error) { + event := new(ZetaConnectorNativeTestCall) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestDepositIterator struct { + Event *ZetaConnectorNativeTestDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestDeposit represents a Deposit event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestDeposit struct { + Sender common.Address + Receiver common.Address + Amount *big.Int + Asset common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterDeposit(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*ZetaConnectorNativeTestDepositIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestDepositIterator{contract: _ZetaConnectorNativeTest.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestDeposit, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestDeposit) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseDeposit(log types.Log) (*ZetaConnectorNativeTestDeposit, error) { + event := new(ZetaConnectorNativeTestDeposit) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestExecutedIterator is returned from FilterExecuted and is used to iterate over the raw logs and unpacked data for Executed events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestExecutedIterator struct { + Event *ZetaConnectorNativeTestExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestExecuted represents a Executed event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestExecuted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*ZetaConnectorNativeTestExecutedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestExecutedIterator{contract: _ZetaConnectorNativeTest.contract, event: "Executed", logs: logs, sub: sub}, nil +} + +// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchExecuted(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestExecuted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestExecuted) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "Executed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseExecuted(log types.Log) (*ZetaConnectorNativeTestExecuted, error) { + event := new(ZetaConnectorNativeTestExecuted) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "Executed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestExecutedWithERC20Iterator is returned from FilterExecutedWithERC20 and is used to iterate over the raw logs and unpacked data for ExecutedWithERC20 events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestExecutedWithERC20Iterator struct { + Event *ZetaConnectorNativeTestExecutedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestExecutedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestExecutedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestExecutedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestExecutedWithERC20 represents a ExecutedWithERC20 event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestExecutedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterExecutedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ZetaConnectorNativeTestExecutedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestExecutedWithERC20Iterator{contract: _ZetaConnectorNativeTest.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchExecutedWithERC20(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestExecutedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestExecutedWithERC20) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseExecutedWithERC20(log types.Log) (*ZetaConnectorNativeTestExecutedWithERC20, error) { + event := new(ZetaConnectorNativeTestExecutedWithERC20) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestReceivedERC20Iterator is returned from FilterReceivedERC20 and is used to iterate over the raw logs and unpacked data for ReceivedERC20 events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReceivedERC20Iterator struct { + Event *ZetaConnectorNativeTestReceivedERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestReceivedERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestReceivedERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestReceivedERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestReceivedERC20 represents a ReceivedERC20 event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReceivedERC20 struct { + Sender common.Address + Amount *big.Int + Token common.Address + Destination common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedERC20 is a free log retrieval operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterReceivedERC20(opts *bind.FilterOpts) (*ZetaConnectorNativeTestReceivedERC20Iterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestReceivedERC20Iterator{contract: _ZetaConnectorNativeTest.contract, event: "ReceivedERC20", logs: logs, sub: sub}, nil +} + +// WatchReceivedERC20 is a free log subscription operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchReceivedERC20(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestReceivedERC20) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestReceivedERC20) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedERC20 is a log parse operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseReceivedERC20(log types.Log) (*ZetaConnectorNativeTestReceivedERC20, error) { + event := new(ZetaConnectorNativeTestReceivedERC20) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestReceivedNoParamsIterator is returned from FilterReceivedNoParams and is used to iterate over the raw logs and unpacked data for ReceivedNoParams events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReceivedNoParamsIterator struct { + Event *ZetaConnectorNativeTestReceivedNoParams // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestReceivedNoParamsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestReceivedNoParamsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestReceivedNoParamsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestReceivedNoParams represents a ReceivedNoParams event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReceivedNoParams struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNoParams is a free log retrieval operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterReceivedNoParams(opts *bind.FilterOpts) (*ZetaConnectorNativeTestReceivedNoParamsIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestReceivedNoParamsIterator{contract: _ZetaConnectorNativeTest.contract, event: "ReceivedNoParams", logs: logs, sub: sub}, nil +} + +// WatchReceivedNoParams is a free log subscription operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchReceivedNoParams(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestReceivedNoParams) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestReceivedNoParams) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNoParams is a log parse operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseReceivedNoParams(log types.Log) (*ZetaConnectorNativeTestReceivedNoParams, error) { + event := new(ZetaConnectorNativeTestReceivedNoParams) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestReceivedNonPayableIterator is returned from FilterReceivedNonPayable and is used to iterate over the raw logs and unpacked data for ReceivedNonPayable events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReceivedNonPayableIterator struct { + Event *ZetaConnectorNativeTestReceivedNonPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestReceivedNonPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestReceivedNonPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestReceivedNonPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestReceivedNonPayable represents a ReceivedNonPayable event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReceivedNonPayable struct { + Sender common.Address + Strs []string + Nums []*big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNonPayable is a free log retrieval operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterReceivedNonPayable(opts *bind.FilterOpts) (*ZetaConnectorNativeTestReceivedNonPayableIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestReceivedNonPayableIterator{contract: _ZetaConnectorNativeTest.contract, event: "ReceivedNonPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedNonPayable is a free log subscription operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchReceivedNonPayable(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestReceivedNonPayable) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestReceivedNonPayable) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNonPayable is a log parse operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseReceivedNonPayable(log types.Log) (*ZetaConnectorNativeTestReceivedNonPayable, error) { + event := new(ZetaConnectorNativeTestReceivedNonPayable) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestReceivedPayableIterator is returned from FilterReceivedPayable and is used to iterate over the raw logs and unpacked data for ReceivedPayable events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReceivedPayableIterator struct { + Event *ZetaConnectorNativeTestReceivedPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestReceivedPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestReceivedPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestReceivedPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestReceivedPayable represents a ReceivedPayable event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReceivedPayable struct { + Sender common.Address + Value *big.Int + Str string + Num *big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedPayable is a free log retrieval operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterReceivedPayable(opts *bind.FilterOpts) (*ZetaConnectorNativeTestReceivedPayableIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestReceivedPayableIterator{contract: _ZetaConnectorNativeTest.contract, event: "ReceivedPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedPayable is a free log subscription operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchReceivedPayable(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestReceivedPayable) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestReceivedPayable) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedPayable is a log parse operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseReceivedPayable(log types.Log) (*ZetaConnectorNativeTestReceivedPayable, error) { + event := new(ZetaConnectorNativeTestReceivedPayable) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestReceivedRevertIterator is returned from FilterReceivedRevert and is used to iterate over the raw logs and unpacked data for ReceivedRevert events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReceivedRevertIterator struct { + Event *ZetaConnectorNativeTestReceivedRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestReceivedRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestReceivedRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestReceivedRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestReceivedRevert represents a ReceivedRevert event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReceivedRevert struct { + Sender common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedRevert is a free log retrieval operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterReceivedRevert(opts *bind.FilterOpts) (*ZetaConnectorNativeTestReceivedRevertIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestReceivedRevertIterator{contract: _ZetaConnectorNativeTest.contract, event: "ReceivedRevert", logs: logs, sub: sub}, nil +} + +// WatchReceivedRevert is a free log subscription operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchReceivedRevert(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestReceivedRevert) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestReceivedRevert) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedRevert is a log parse operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseReceivedRevert(log types.Log) (*ZetaConnectorNativeTestReceivedRevert, error) { + event := new(ZetaConnectorNativeTestReceivedRevert) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestRevertedIterator is returned from FilterReverted and is used to iterate over the raw logs and unpacked data for Reverted events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestRevertedIterator struct { + Event *ZetaConnectorNativeTestReverted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestRevertedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestRevertedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestRevertedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestReverted represents a Reverted event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestReverted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*ZetaConnectorNativeTestRevertedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestRevertedIterator{contract: _ZetaConnectorNativeTest.contract, event: "Reverted", logs: logs, sub: sub}, nil +} + +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchReverted(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestReverted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestReverted) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseReverted(log types.Log) (*ZetaConnectorNativeTestReverted, error) { + event := new(ZetaConnectorNativeTestReverted) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestRevertedWithERC20Iterator is returned from FilterRevertedWithERC20 and is used to iterate over the raw logs and unpacked data for RevertedWithERC20 events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestRevertedWithERC20Iterator struct { + Event *ZetaConnectorNativeTestRevertedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestRevertedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestRevertedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestRevertedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestRevertedWithERC20 represents a RevertedWithERC20 event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestRevertedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterRevertedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ZetaConnectorNativeTestRevertedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestRevertedWithERC20Iterator{contract: _ZetaConnectorNativeTest.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchRevertedWithERC20(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestRevertedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestRevertedWithERC20) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseRevertedWithERC20(log types.Log) (*ZetaConnectorNativeTestRevertedWithERC20, error) { + event := new(ZetaConnectorNativeTestRevertedWithERC20) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestWithdrawIterator struct { + Event *ZetaConnectorNativeTestWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestWithdraw represents a Withdraw event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestWithdraw struct { + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterWithdraw(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNativeTestWithdrawIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestWithdrawIterator{contract: _ZetaConnectorNativeTest.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestWithdraw, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestWithdraw) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseWithdraw(log types.Log) (*ZetaConnectorNativeTestWithdraw, error) { + event := new(ZetaConnectorNativeTestWithdraw) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestWithdrawAndCallIterator struct { + Event *ZetaConnectorNativeTestWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestWithdrawAndCall represents a WithdrawAndCall event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestWithdrawAndCall struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndCall is a free log retrieval operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNativeTestWithdrawAndCallIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestWithdrawAndCallIterator{contract: _ZetaConnectorNativeTest.contract, event: "WithdrawAndCall", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndCall is a free log subscription operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestWithdrawAndCall, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestWithdrawAndCall) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndCall is a log parse operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseWithdrawAndCall(log types.Log) (*ZetaConnectorNativeTestWithdrawAndCall, error) { + event := new(ZetaConnectorNativeTestWithdrawAndCall) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestWithdrawAndRevertIterator struct { + Event *ZetaConnectorNativeTestWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestWithdrawAndRevert represents a WithdrawAndRevert event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestWithdrawAndRevert struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndRevert is a free log retrieval operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNativeTestWithdrawAndRevertIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestWithdrawAndRevertIterator{contract: _ZetaConnectorNativeTest.contract, event: "WithdrawAndRevert", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndRevert is a free log subscription operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestWithdrawAndRevert, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestWithdrawAndRevert) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndRevert is a log parse operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseWithdrawAndRevert(log types.Log) (*ZetaConnectorNativeTestWithdrawAndRevert, error) { + event := new(ZetaConnectorNativeTestWithdrawAndRevert) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogIterator is returned from FilterLog and is used to iterate over the raw logs and unpacked data for Log events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogIterator struct { + Event *ZetaConnectorNativeTestLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLog represents a Log event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLog struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLog is a free log retrieval operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLog(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogIterator{contract: _ZetaConnectorNativeTest.contract, event: "log", logs: logs, sub: sub}, nil +} + +// WatchLog is a free log subscription operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLog(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLog) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLog) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLog is a log parse operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLog(log types.Log) (*ZetaConnectorNativeTestLog, error) { + event := new(ZetaConnectorNativeTestLog) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogAddressIterator is returned from FilterLogAddress and is used to iterate over the raw logs and unpacked data for LogAddress events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogAddressIterator struct { + Event *ZetaConnectorNativeTestLogAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogAddress represents a LogAddress event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogAddress struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAddress is a free log retrieval operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogAddress(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogAddressIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_address") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogAddressIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_address", logs: logs, sub: sub}, nil +} + +// WatchLogAddress is a free log subscription operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogAddress(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogAddress) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogAddress) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogAddress is a log parse operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogAddress(log types.Log) (*ZetaConnectorNativeTestLogAddress, error) { + event := new(ZetaConnectorNativeTestLogAddress) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogArrayIterator is returned from FilterLogArray and is used to iterate over the raw logs and unpacked data for LogArray events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogArrayIterator struct { + Event *ZetaConnectorNativeTestLogArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogArray represents a LogArray event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogArray struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray is a free log retrieval operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogArray(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogArrayIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_array") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogArrayIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_array", logs: logs, sub: sub}, nil +} + +// WatchLogArray is a free log subscription operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogArray(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogArray) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogArray) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray is a log parse operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogArray(log types.Log) (*ZetaConnectorNativeTestLogArray, error) { + event := new(ZetaConnectorNativeTestLogArray) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogArray0Iterator is returned from FilterLogArray0 and is used to iterate over the raw logs and unpacked data for LogArray0 events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogArray0Iterator struct { + Event *ZetaConnectorNativeTestLogArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogArray0 represents a LogArray0 event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogArray0 struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray0 is a free log retrieval operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogArray0(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogArray0Iterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogArray0Iterator{contract: _ZetaConnectorNativeTest.contract, event: "log_array0", logs: logs, sub: sub}, nil +} + +// WatchLogArray0 is a free log subscription operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogArray0(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogArray0) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogArray0) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray0 is a log parse operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogArray0(log types.Log) (*ZetaConnectorNativeTestLogArray0, error) { + event := new(ZetaConnectorNativeTestLogArray0) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogArray1Iterator is returned from FilterLogArray1 and is used to iterate over the raw logs and unpacked data for LogArray1 events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogArray1Iterator struct { + Event *ZetaConnectorNativeTestLogArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogArray1 represents a LogArray1 event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogArray1 struct { + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray1 is a free log retrieval operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogArray1(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogArray1Iterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogArray1Iterator{contract: _ZetaConnectorNativeTest.contract, event: "log_array1", logs: logs, sub: sub}, nil +} + +// WatchLogArray1 is a free log subscription operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogArray1(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogArray1) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogArray1) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray1 is a log parse operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogArray1(log types.Log) (*ZetaConnectorNativeTestLogArray1, error) { + event := new(ZetaConnectorNativeTestLogArray1) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogBytesIterator is returned from FilterLogBytes and is used to iterate over the raw logs and unpacked data for LogBytes events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogBytesIterator struct { + Event *ZetaConnectorNativeTestLogBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogBytes represents a LogBytes event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogBytes struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes is a free log retrieval operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogBytes(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogBytesIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogBytesIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogBytes is a free log subscription operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogBytes(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogBytes) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogBytes) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes is a log parse operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogBytes(log types.Log) (*ZetaConnectorNativeTestLogBytes, error) { + event := new(ZetaConnectorNativeTestLogBytes) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogBytes32Iterator is returned from FilterLogBytes32 and is used to iterate over the raw logs and unpacked data for LogBytes32 events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogBytes32Iterator struct { + Event *ZetaConnectorNativeTestLogBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogBytes32 represents a LogBytes32 event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogBytes32 struct { + Arg0 [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes32 is a free log retrieval operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogBytes32(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogBytes32Iterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogBytes32Iterator{contract: _ZetaConnectorNativeTest.contract, event: "log_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogBytes32 is a free log subscription operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogBytes32(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogBytes32) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogBytes32) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes32 is a log parse operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogBytes32(log types.Log) (*ZetaConnectorNativeTestLogBytes32, error) { + event := new(ZetaConnectorNativeTestLogBytes32) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogIntIterator is returned from FilterLogInt and is used to iterate over the raw logs and unpacked data for LogInt events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogIntIterator struct { + Event *ZetaConnectorNativeTestLogInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogInt represents a LogInt event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogInt struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogInt is a free log retrieval operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogInt(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogIntIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_int") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogIntIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_int", logs: logs, sub: sub}, nil +} + +// WatchLogInt is a free log subscription operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogInt(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogInt) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogInt) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogInt is a log parse operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogInt(log types.Log) (*ZetaConnectorNativeTestLogInt, error) { + event := new(ZetaConnectorNativeTestLogInt) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedAddressIterator is returned from FilterLogNamedAddress and is used to iterate over the raw logs and unpacked data for LogNamedAddress events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedAddressIterator struct { + Event *ZetaConnectorNativeTestLogNamedAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedAddress represents a LogNamedAddress event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedAddress struct { + Key string + Val common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedAddress is a free log retrieval operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedAddress(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedAddressIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedAddressIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_address", logs: logs, sub: sub}, nil +} + +// WatchLogNamedAddress is a free log subscription operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedAddress(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedAddress) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedAddress) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedAddress is a log parse operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedAddress(log types.Log) (*ZetaConnectorNativeTestLogNamedAddress, error) { + event := new(ZetaConnectorNativeTestLogNamedAddress) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedArrayIterator is returned from FilterLogNamedArray and is used to iterate over the raw logs and unpacked data for LogNamedArray events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedArrayIterator struct { + Event *ZetaConnectorNativeTestLogNamedArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedArray represents a LogNamedArray event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedArray struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray is a free log retrieval operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedArray(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedArrayIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedArrayIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_array", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray is a free log subscription operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedArray(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedArray) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedArray) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray is a log parse operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedArray(log types.Log) (*ZetaConnectorNativeTestLogNamedArray, error) { + event := new(ZetaConnectorNativeTestLogNamedArray) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedArray0Iterator is returned from FilterLogNamedArray0 and is used to iterate over the raw logs and unpacked data for LogNamedArray0 events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedArray0Iterator struct { + Event *ZetaConnectorNativeTestLogNamedArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedArray0 represents a LogNamedArray0 event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedArray0 struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray0 is a free log retrieval operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedArray0(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedArray0Iterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedArray0Iterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_array0", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray0 is a free log subscription operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedArray0(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedArray0) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedArray0) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray0 is a log parse operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedArray0(log types.Log) (*ZetaConnectorNativeTestLogNamedArray0, error) { + event := new(ZetaConnectorNativeTestLogNamedArray0) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedArray1Iterator is returned from FilterLogNamedArray1 and is used to iterate over the raw logs and unpacked data for LogNamedArray1 events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedArray1Iterator struct { + Event *ZetaConnectorNativeTestLogNamedArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedArray1 represents a LogNamedArray1 event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedArray1 struct { + Key string + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray1 is a free log retrieval operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedArray1(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedArray1Iterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedArray1Iterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_array1", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray1 is a free log subscription operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedArray1(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedArray1) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedArray1) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray1 is a log parse operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedArray1(log types.Log) (*ZetaConnectorNativeTestLogNamedArray1, error) { + event := new(ZetaConnectorNativeTestLogNamedArray1) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedBytesIterator is returned from FilterLogNamedBytes and is used to iterate over the raw logs and unpacked data for LogNamedBytes events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedBytesIterator struct { + Event *ZetaConnectorNativeTestLogNamedBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedBytes represents a LogNamedBytes event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedBytes struct { + Key string + Val []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes is a free log retrieval operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedBytes(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedBytesIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedBytesIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes is a free log subscription operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedBytes(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedBytes) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedBytes) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes is a log parse operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedBytes(log types.Log) (*ZetaConnectorNativeTestLogNamedBytes, error) { + event := new(ZetaConnectorNativeTestLogNamedBytes) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedBytes32Iterator is returned from FilterLogNamedBytes32 and is used to iterate over the raw logs and unpacked data for LogNamedBytes32 events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedBytes32Iterator struct { + Event *ZetaConnectorNativeTestLogNamedBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedBytes32 represents a LogNamedBytes32 event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedBytes32 struct { + Key string + Val [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes32 is a free log retrieval operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedBytes32(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedBytes32Iterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedBytes32Iterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes32 is a free log subscription operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedBytes32(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedBytes32) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedBytes32) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes32 is a log parse operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedBytes32(log types.Log) (*ZetaConnectorNativeTestLogNamedBytes32, error) { + event := new(ZetaConnectorNativeTestLogNamedBytes32) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedDecimalIntIterator is returned from FilterLogNamedDecimalInt and is used to iterate over the raw logs and unpacked data for LogNamedDecimalInt events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedDecimalIntIterator struct { + Event *ZetaConnectorNativeTestLogNamedDecimalInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedDecimalIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedDecimalIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedDecimalIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedDecimalInt represents a LogNamedDecimalInt event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedDecimalInt struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalInt is a free log retrieval operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedDecimalInt(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedDecimalIntIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedDecimalIntIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_decimal_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalInt is a free log subscription operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedDecimalInt(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedDecimalInt) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedDecimalInt) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalInt is a log parse operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedDecimalInt(log types.Log) (*ZetaConnectorNativeTestLogNamedDecimalInt, error) { + event := new(ZetaConnectorNativeTestLogNamedDecimalInt) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedDecimalUintIterator is returned from FilterLogNamedDecimalUint and is used to iterate over the raw logs and unpacked data for LogNamedDecimalUint events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedDecimalUintIterator struct { + Event *ZetaConnectorNativeTestLogNamedDecimalUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedDecimalUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedDecimalUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedDecimalUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedDecimalUint represents a LogNamedDecimalUint event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedDecimalUint struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalUint is a free log retrieval operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedDecimalUint(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedDecimalUintIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedDecimalUintIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_decimal_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalUint is a free log subscription operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedDecimalUint(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedDecimalUint) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedDecimalUint) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalUint is a log parse operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedDecimalUint(log types.Log) (*ZetaConnectorNativeTestLogNamedDecimalUint, error) { + event := new(ZetaConnectorNativeTestLogNamedDecimalUint) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedIntIterator is returned from FilterLogNamedInt and is used to iterate over the raw logs and unpacked data for LogNamedInt events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedIntIterator struct { + Event *ZetaConnectorNativeTestLogNamedInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedInt represents a LogNamedInt event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedInt struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedInt is a free log retrieval operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedInt(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedIntIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedIntIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedInt is a free log subscription operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedInt(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedInt) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedInt) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedInt is a log parse operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedInt(log types.Log) (*ZetaConnectorNativeTestLogNamedInt, error) { + event := new(ZetaConnectorNativeTestLogNamedInt) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedStringIterator is returned from FilterLogNamedString and is used to iterate over the raw logs and unpacked data for LogNamedString events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedStringIterator struct { + Event *ZetaConnectorNativeTestLogNamedString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedString represents a LogNamedString event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedString struct { + Key string + Val string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedString is a free log retrieval operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedString(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedStringIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedStringIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_string", logs: logs, sub: sub}, nil +} + +// WatchLogNamedString is a free log subscription operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedString(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedString) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedString) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedString is a log parse operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedString(log types.Log) (*ZetaConnectorNativeTestLogNamedString, error) { + event := new(ZetaConnectorNativeTestLogNamedString) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogNamedUintIterator is returned from FilterLogNamedUint and is used to iterate over the raw logs and unpacked data for LogNamedUint events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedUintIterator struct { + Event *ZetaConnectorNativeTestLogNamedUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogNamedUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogNamedUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogNamedUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogNamedUint represents a LogNamedUint event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogNamedUint struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedUint is a free log retrieval operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogNamedUint(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogNamedUintIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogNamedUintIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_named_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedUint is a free log subscription operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogNamedUint(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogNamedUint) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogNamedUint) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedUint is a log parse operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogNamedUint(log types.Log) (*ZetaConnectorNativeTestLogNamedUint, error) { + event := new(ZetaConnectorNativeTestLogNamedUint) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogStringIterator is returned from FilterLogString and is used to iterate over the raw logs and unpacked data for LogString events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogStringIterator struct { + Event *ZetaConnectorNativeTestLogString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogString represents a LogString event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogString struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogString is a free log retrieval operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogString(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogStringIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_string") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogStringIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_string", logs: logs, sub: sub}, nil +} + +// WatchLogString is a free log subscription operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogString(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogString) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogString) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogString is a log parse operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogString(log types.Log) (*ZetaConnectorNativeTestLogString, error) { + event := new(ZetaConnectorNativeTestLogString) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogUintIterator is returned from FilterLogUint and is used to iterate over the raw logs and unpacked data for LogUint events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogUintIterator struct { + Event *ZetaConnectorNativeTestLogUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogUint represents a LogUint event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogUint struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogUint is a free log retrieval operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogUint(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogUintIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogUintIterator{contract: _ZetaConnectorNativeTest.contract, event: "log_uint", logs: logs, sub: sub}, nil +} + +// WatchLogUint is a free log subscription operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogUint(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogUint) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogUint) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogUint is a log parse operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogUint(log types.Log) (*ZetaConnectorNativeTestLogUint, error) { + event := new(ZetaConnectorNativeTestLogUint) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeTestLogsIterator is returned from FilterLogs and is used to iterate over the raw logs and unpacked data for Logs events raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogsIterator struct { + Event *ZetaConnectorNativeTestLogs // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeTestLogsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeTestLogsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeTestLogsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeTestLogs represents a Logs event raised by the ZetaConnectorNativeTest contract. +type ZetaConnectorNativeTestLogs struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogs is a free log retrieval operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) FilterLogs(opts *bind.FilterOpts) (*ZetaConnectorNativeTestLogsIterator, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.FilterLogs(opts, "logs") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeTestLogsIterator{contract: _ZetaConnectorNativeTest.contract, event: "logs", logs: logs, sub: sub}, nil +} + +// WatchLogs is a free log subscription operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) WatchLogs(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeTestLogs) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNativeTest.contract.WatchLogs(opts, "logs") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeTestLogs) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "logs", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogs is a log parse operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestFilterer) ParseLogs(log types.Log) (*ZetaConnectorNativeTestLogs, error) { + event := new(ZetaConnectorNativeTestLogs) + if err := _ZetaConnectorNativeTest.contract.UnpackLog(event, "logs", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/zetaconnectornewbase.sol/zetaconnectornewbase.go b/v2/pkg/zetaconnectornewbase.sol/zetaconnectornewbase.go new file mode 100644 index 00000000..526da37d --- /dev/null +++ b/v2/pkg/zetaconnectornewbase.sol/zetaconnectornewbase.go @@ -0,0 +1,795 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zetaconnectornewbase + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZetaConnectorNewBaseMetaData contains all meta data concerning the ZetaConnectorNewBase contract. +var ZetaConnectorNewBaseMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"gateway\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIGatewayEVM\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveTokens\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndCall\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndRevert\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"zetaToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndCall\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndRevert\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", +} + +// ZetaConnectorNewBaseABI is the input ABI used to generate the binding from. +// Deprecated: Use ZetaConnectorNewBaseMetaData.ABI instead. +var ZetaConnectorNewBaseABI = ZetaConnectorNewBaseMetaData.ABI + +// ZetaConnectorNewBase is an auto generated Go binding around an Ethereum contract. +type ZetaConnectorNewBase struct { + ZetaConnectorNewBaseCaller // Read-only binding to the contract + ZetaConnectorNewBaseTransactor // Write-only binding to the contract + ZetaConnectorNewBaseFilterer // Log filterer for contract events +} + +// ZetaConnectorNewBaseCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZetaConnectorNewBaseCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNewBaseTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZetaConnectorNewBaseTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNewBaseFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZetaConnectorNewBaseFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNewBaseSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZetaConnectorNewBaseSession struct { + Contract *ZetaConnectorNewBase // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorNewBaseCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZetaConnectorNewBaseCallerSession struct { + Contract *ZetaConnectorNewBaseCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZetaConnectorNewBaseTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZetaConnectorNewBaseTransactorSession struct { + Contract *ZetaConnectorNewBaseTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorNewBaseRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZetaConnectorNewBaseRaw struct { + Contract *ZetaConnectorNewBase // Generic contract binding to access the raw methods on +} + +// ZetaConnectorNewBaseCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZetaConnectorNewBaseCallerRaw struct { + Contract *ZetaConnectorNewBaseCaller // Generic read-only contract binding to access the raw methods on +} + +// ZetaConnectorNewBaseTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZetaConnectorNewBaseTransactorRaw struct { + Contract *ZetaConnectorNewBaseTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZetaConnectorNewBase creates a new instance of ZetaConnectorNewBase, bound to a specific deployed contract. +func NewZetaConnectorNewBase(address common.Address, backend bind.ContractBackend) (*ZetaConnectorNewBase, error) { + contract, err := bindZetaConnectorNewBase(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZetaConnectorNewBase{ZetaConnectorNewBaseCaller: ZetaConnectorNewBaseCaller{contract: contract}, ZetaConnectorNewBaseTransactor: ZetaConnectorNewBaseTransactor{contract: contract}, ZetaConnectorNewBaseFilterer: ZetaConnectorNewBaseFilterer{contract: contract}}, nil +} + +// NewZetaConnectorNewBaseCaller creates a new read-only instance of ZetaConnectorNewBase, bound to a specific deployed contract. +func NewZetaConnectorNewBaseCaller(address common.Address, caller bind.ContractCaller) (*ZetaConnectorNewBaseCaller, error) { + contract, err := bindZetaConnectorNewBase(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorNewBaseCaller{contract: contract}, nil +} + +// NewZetaConnectorNewBaseTransactor creates a new write-only instance of ZetaConnectorNewBase, bound to a specific deployed contract. +func NewZetaConnectorNewBaseTransactor(address common.Address, transactor bind.ContractTransactor) (*ZetaConnectorNewBaseTransactor, error) { + contract, err := bindZetaConnectorNewBase(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorNewBaseTransactor{contract: contract}, nil +} + +// NewZetaConnectorNewBaseFilterer creates a new log filterer instance of ZetaConnectorNewBase, bound to a specific deployed contract. +func NewZetaConnectorNewBaseFilterer(address common.Address, filterer bind.ContractFilterer) (*ZetaConnectorNewBaseFilterer, error) { + contract, err := bindZetaConnectorNewBase(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZetaConnectorNewBaseFilterer{contract: contract}, nil +} + +// bindZetaConnectorNewBase binds a generic wrapper to an already deployed contract. +func bindZetaConnectorNewBase(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZetaConnectorNewBaseMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorNewBase.Contract.ZetaConnectorNewBaseCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.ZetaConnectorNewBaseTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.ZetaConnectorNewBaseTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorNewBase.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.contract.Transact(opts, method, params...) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseCaller) Gateway(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorNewBase.contract.Call(opts, &out, "gateway") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseSession) Gateway() (common.Address, error) { + return _ZetaConnectorNewBase.Contract.Gateway(&_ZetaConnectorNewBase.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseCallerSession) Gateway() (common.Address, error) { + return _ZetaConnectorNewBase.Contract.Gateway(&_ZetaConnectorNewBase.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorNewBase.contract.Call(opts, &out, "tssAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseSession) TssAddress() (common.Address, error) { + return _ZetaConnectorNewBase.Contract.TssAddress(&_ZetaConnectorNewBase.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseCallerSession) TssAddress() (common.Address, error) { + return _ZetaConnectorNewBase.Contract.TssAddress(&_ZetaConnectorNewBase.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseCaller) ZetaToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorNewBase.contract.Call(opts, &out, "zetaToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseSession) ZetaToken() (common.Address, error) { + return _ZetaConnectorNewBase.Contract.ZetaToken(&_ZetaConnectorNewBase.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseCallerSession) ZetaToken() (common.Address, error) { + return _ZetaConnectorNewBase.Contract.ZetaToken(&_ZetaConnectorNewBase.CallOpts) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseTransactor) ReceiveTokens(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNewBase.contract.Transact(opts, "receiveTokens", amount) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseSession) ReceiveTokens(amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.ReceiveTokens(&_ZetaConnectorNewBase.TransactOpts, amount) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseTransactorSession) ReceiveTokens(amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.ReceiveTokens(&_ZetaConnectorNewBase.TransactOpts, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x106e6290. +// +// Solidity: function withdraw(address to, uint256 amount, bytes32 internalSendHash) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseTransactor) Withdraw(opts *bind.TransactOpts, to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNewBase.contract.Transact(opts, "withdraw", to, amount, internalSendHash) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x106e6290. +// +// Solidity: function withdraw(address to, uint256 amount, bytes32 internalSendHash) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseSession) Withdraw(to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.Withdraw(&_ZetaConnectorNewBase.TransactOpts, to, amount, internalSendHash) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x106e6290. +// +// Solidity: function withdraw(address to, uint256 amount, bytes32 internalSendHash) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseTransactorSession) Withdraw(to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.Withdraw(&_ZetaConnectorNewBase.TransactOpts, to, amount, internalSendHash) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x5e3e9fef. +// +// Solidity: function withdrawAndCall(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseTransactor) WithdrawAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNewBase.contract.Transact(opts, "withdrawAndCall", to, amount, data, internalSendHash) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x5e3e9fef. +// +// Solidity: function withdrawAndCall(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseSession) WithdrawAndCall(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.WithdrawAndCall(&_ZetaConnectorNewBase.TransactOpts, to, amount, data, internalSendHash) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x5e3e9fef. +// +// Solidity: function withdrawAndCall(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseTransactorSession) WithdrawAndCall(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.WithdrawAndCall(&_ZetaConnectorNewBase.TransactOpts, to, amount, data, internalSendHash) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0x02d5c899. +// +// Solidity: function withdrawAndRevert(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseTransactor) WithdrawAndRevert(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNewBase.contract.Transact(opts, "withdrawAndRevert", to, amount, data, internalSendHash) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0x02d5c899. +// +// Solidity: function withdrawAndRevert(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseSession) WithdrawAndRevert(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.WithdrawAndRevert(&_ZetaConnectorNewBase.TransactOpts, to, amount, data, internalSendHash) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0x02d5c899. +// +// Solidity: function withdrawAndRevert(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseTransactorSession) WithdrawAndRevert(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNewBase.Contract.WithdrawAndRevert(&_ZetaConnectorNewBase.TransactOpts, to, amount, data, internalSendHash) +} + +// ZetaConnectorNewBaseWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the ZetaConnectorNewBase contract. +type ZetaConnectorNewBaseWithdrawIterator struct { + Event *ZetaConnectorNewBaseWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNewBaseWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNewBaseWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNewBaseWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNewBaseWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNewBaseWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNewBaseWithdraw represents a Withdraw event raised by the ZetaConnectorNewBase contract. +type ZetaConnectorNewBaseWithdraw struct { + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseFilterer) FilterWithdraw(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNewBaseWithdrawIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNewBase.contract.FilterLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNewBaseWithdrawIterator{contract: _ZetaConnectorNewBase.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNewBaseWithdraw, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNewBase.contract.WatchLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNewBaseWithdraw) + if err := _ZetaConnectorNewBase.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseFilterer) ParseWithdraw(log types.Log) (*ZetaConnectorNewBaseWithdraw, error) { + event := new(ZetaConnectorNewBaseWithdraw) + if err := _ZetaConnectorNewBase.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNewBaseWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the ZetaConnectorNewBase contract. +type ZetaConnectorNewBaseWithdrawAndCallIterator struct { + Event *ZetaConnectorNewBaseWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNewBaseWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNewBaseWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNewBaseWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNewBaseWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNewBaseWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNewBaseWithdrawAndCall represents a WithdrawAndCall event raised by the ZetaConnectorNewBase contract. +type ZetaConnectorNewBaseWithdrawAndCall struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndCall is a free log retrieval operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNewBaseWithdrawAndCallIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNewBase.contract.FilterLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNewBaseWithdrawAndCallIterator{contract: _ZetaConnectorNewBase.contract, event: "WithdrawAndCall", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndCall is a free log subscription operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNewBaseWithdrawAndCall, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNewBase.contract.WatchLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNewBaseWithdrawAndCall) + if err := _ZetaConnectorNewBase.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndCall is a log parse operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseFilterer) ParseWithdrawAndCall(log types.Log) (*ZetaConnectorNewBaseWithdrawAndCall, error) { + event := new(ZetaConnectorNewBaseWithdrawAndCall) + if err := _ZetaConnectorNewBase.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNewBaseWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the ZetaConnectorNewBase contract. +type ZetaConnectorNewBaseWithdrawAndRevertIterator struct { + Event *ZetaConnectorNewBaseWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNewBaseWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNewBaseWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNewBaseWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNewBaseWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNewBaseWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNewBaseWithdrawAndRevert represents a WithdrawAndRevert event raised by the ZetaConnectorNewBase contract. +type ZetaConnectorNewBaseWithdrawAndRevert struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndRevert is a free log retrieval operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNewBaseWithdrawAndRevertIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNewBase.contract.FilterLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNewBaseWithdrawAndRevertIterator{contract: _ZetaConnectorNewBase.contract, event: "WithdrawAndRevert", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndRevert is a free log subscription operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNewBaseWithdrawAndRevert, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNewBase.contract.WatchLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNewBaseWithdrawAndRevert) + if err := _ZetaConnectorNewBase.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndRevert is a log parse operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNewBase *ZetaConnectorNewBaseFilterer) ParseWithdrawAndRevert(log types.Log) (*ZetaConnectorNewBaseWithdrawAndRevert, error) { + event := new(ZetaConnectorNewBaseWithdrawAndRevert) + if err := _ZetaConnectorNewBase.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/zetaconnectornonnative.sol/zetaconnectornonnative.go b/v2/pkg/zetaconnectornonnative.sol/zetaconnectornonnative.go new file mode 100644 index 00000000..e605370e --- /dev/null +++ b/v2/pkg/zetaconnectornonnative.sol/zetaconnectornonnative.go @@ -0,0 +1,1003 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zetaconnectornonnative + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZetaConnectorNonNativeMetaData contains all meta data concerning the ZetaConnectorNonNative contract. +var ZetaConnectorNonNativeMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_gateway\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_zetaToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tssAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"gateway\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIGatewayEVM\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveTokens\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setMaxSupply\",\"inputs\":[{\"name\":\"_maxSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndCall\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawAndRevert\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"internalSendHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"zetaToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"MaxSupplyUpdated\",\"inputs\":[{\"name\":\"maxSupply\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndCall\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndRevert\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ExceedsMaxSupply\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x60c060405260001960025534801561001657600080fd5b50604051610f9a380380610f9a833981016040819052610035916100d8565b60016000558282826001600160a01b038316158061005a57506001600160a01b038216155b8061006c57506001600160a01b038116155b1561008a5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0392831660805290821660a052600180546001600160a01b031916919092161790555061011b915050565b80516001600160a01b03811681146100d357600080fd5b919050565b6000806000606084860312156100ed57600080fd5b6100f6846100bc565b9250610104602085016100bc565b9150610112604085016100bc565b90509250925092565b60805160a051610e0061019a6000396000818161012601528181610216015281816103580152818161041e01528181610541015281816106630152818161077c015281816108be015281816109840152610af101526000818160d501528181610322015281816103ef0152818161088801526109550152610e006000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80635b112591116100765780636f8b44b01161005b5780636f8b44b01461017b578063743e0c9b1461018e578063d5abeb01146101a157600080fd5b80635b112591146101485780635e3e9fef1461016857600080fd5b806302d5c899146100a8578063106e6290146100bd578063116191b6146100d057806321e093b114610121575b600080fd5b6100bb6100b6366004610bca565b6101b8565b005b6100bb6100cb366004610c5c565b6104e3565b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b6001546100f79073ffffffffffffffffffffffffffffffffffffffff1681565b6100bb610176366004610bca565b61071e565b6100bb610189366004610c8f565b610a30565b6100bb61019c366004610c8f565b610abc565b6101aa60025481565b604051908152602001610118565b6101c0610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610211576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a39190610ca8565b6102ad9086610cc1565b11156102e5576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561039c57600080fd5b505af11580156103b0573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd4915061044e907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b15801561046857600080fd5b505af115801561047c573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8585856040516104ca93929190610da7565b60405180910390a26104dc6001600055565b5050505050565b6104eb610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff16331461053c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce9190610ca8565b6105d89084610cc1565b1115610610576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161070791815260200190565b60405180910390a26107196001600055565b505050565b610726610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610777576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190610ca8565b6108139086610cc1565b111561084b576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090257600080fd5b505af1158015610916573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab5991506109b4907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b1580156109ce57600080fd5b505af11580156109e2573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8585856040516104ca93929190610da7565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a81576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a150565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610b4a57600080fd5b505af11580156104dc573d6000803e3d6000fd5b600260005403610b9a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bc557600080fd5b919050565b600080600080600060808688031215610be257600080fd5b610beb86610ba1565b945060208601359350604086013567ffffffffffffffff811115610c0e57600080fd5b8601601f81018813610c1f57600080fd5b803567ffffffffffffffff811115610c3657600080fd5b886020828401011115610c4857600080fd5b959894975060200195606001359392505050565b600080600060608486031215610c7157600080fd5b610c7a84610ba1565b95602085013595506040909401359392505050565b600060208284031215610ca157600080fd5b5035919050565b600060208284031215610cba57600080fd5b5051919050565b80820180821115610cfb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610d9c608083018486610d01565b979650505050505050565b838152604060208201526000610dc1604083018486610d01565b9594505050505056fea2646970667358221220eef04aea35a49145971cb42500074f7c44d89db08a5df2b7d071494c05cc1a2a64736f6c634300081a0033", +} + +// ZetaConnectorNonNativeABI is the input ABI used to generate the binding from. +// Deprecated: Use ZetaConnectorNonNativeMetaData.ABI instead. +var ZetaConnectorNonNativeABI = ZetaConnectorNonNativeMetaData.ABI + +// ZetaConnectorNonNativeBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ZetaConnectorNonNativeMetaData.Bin instead. +var ZetaConnectorNonNativeBin = ZetaConnectorNonNativeMetaData.Bin + +// DeployZetaConnectorNonNative deploys a new Ethereum contract, binding an instance of ZetaConnectorNonNative to it. +func DeployZetaConnectorNonNative(auth *bind.TransactOpts, backend bind.ContractBackend, _gateway common.Address, _zetaToken common.Address, _tssAddress common.Address) (common.Address, *types.Transaction, *ZetaConnectorNonNative, error) { + parsed, err := ZetaConnectorNonNativeMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ZetaConnectorNonNativeBin), backend, _gateway, _zetaToken, _tssAddress) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ZetaConnectorNonNative{ZetaConnectorNonNativeCaller: ZetaConnectorNonNativeCaller{contract: contract}, ZetaConnectorNonNativeTransactor: ZetaConnectorNonNativeTransactor{contract: contract}, ZetaConnectorNonNativeFilterer: ZetaConnectorNonNativeFilterer{contract: contract}}, nil +} + +// ZetaConnectorNonNative is an auto generated Go binding around an Ethereum contract. +type ZetaConnectorNonNative struct { + ZetaConnectorNonNativeCaller // Read-only binding to the contract + ZetaConnectorNonNativeTransactor // Write-only binding to the contract + ZetaConnectorNonNativeFilterer // Log filterer for contract events +} + +// ZetaConnectorNonNativeCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZetaConnectorNonNativeCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNonNativeTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZetaConnectorNonNativeTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNonNativeFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZetaConnectorNonNativeFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNonNativeSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZetaConnectorNonNativeSession struct { + Contract *ZetaConnectorNonNative // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorNonNativeCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZetaConnectorNonNativeCallerSession struct { + Contract *ZetaConnectorNonNativeCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZetaConnectorNonNativeTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZetaConnectorNonNativeTransactorSession struct { + Contract *ZetaConnectorNonNativeTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorNonNativeRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZetaConnectorNonNativeRaw struct { + Contract *ZetaConnectorNonNative // Generic contract binding to access the raw methods on +} + +// ZetaConnectorNonNativeCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZetaConnectorNonNativeCallerRaw struct { + Contract *ZetaConnectorNonNativeCaller // Generic read-only contract binding to access the raw methods on +} + +// ZetaConnectorNonNativeTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZetaConnectorNonNativeTransactorRaw struct { + Contract *ZetaConnectorNonNativeTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZetaConnectorNonNative creates a new instance of ZetaConnectorNonNative, bound to a specific deployed contract. +func NewZetaConnectorNonNative(address common.Address, backend bind.ContractBackend) (*ZetaConnectorNonNative, error) { + contract, err := bindZetaConnectorNonNative(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNative{ZetaConnectorNonNativeCaller: ZetaConnectorNonNativeCaller{contract: contract}, ZetaConnectorNonNativeTransactor: ZetaConnectorNonNativeTransactor{contract: contract}, ZetaConnectorNonNativeFilterer: ZetaConnectorNonNativeFilterer{contract: contract}}, nil +} + +// NewZetaConnectorNonNativeCaller creates a new read-only instance of ZetaConnectorNonNative, bound to a specific deployed contract. +func NewZetaConnectorNonNativeCaller(address common.Address, caller bind.ContractCaller) (*ZetaConnectorNonNativeCaller, error) { + contract, err := bindZetaConnectorNonNative(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeCaller{contract: contract}, nil +} + +// NewZetaConnectorNonNativeTransactor creates a new write-only instance of ZetaConnectorNonNative, bound to a specific deployed contract. +func NewZetaConnectorNonNativeTransactor(address common.Address, transactor bind.ContractTransactor) (*ZetaConnectorNonNativeTransactor, error) { + contract, err := bindZetaConnectorNonNative(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTransactor{contract: contract}, nil +} + +// NewZetaConnectorNonNativeFilterer creates a new log filterer instance of ZetaConnectorNonNative, bound to a specific deployed contract. +func NewZetaConnectorNonNativeFilterer(address common.Address, filterer bind.ContractFilterer) (*ZetaConnectorNonNativeFilterer, error) { + contract, err := bindZetaConnectorNonNative(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeFilterer{contract: contract}, nil +} + +// bindZetaConnectorNonNative binds a generic wrapper to an already deployed contract. +func bindZetaConnectorNonNative(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZetaConnectorNonNativeMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorNonNative.Contract.ZetaConnectorNonNativeCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.ZetaConnectorNonNativeTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.ZetaConnectorNonNativeTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorNonNative.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.contract.Transact(opts, method, params...) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) Gateway(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorNonNative.contract.Call(opts, &out, "gateway") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) Gateway() (common.Address, error) { + return _ZetaConnectorNonNative.Contract.Gateway(&_ZetaConnectorNonNative.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) Gateway() (common.Address, error) { + return _ZetaConnectorNonNative.Contract.Gateway(&_ZetaConnectorNonNative.CallOpts) +} + +// MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01. +// +// Solidity: function maxSupply() view returns(uint256) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) MaxSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZetaConnectorNonNative.contract.Call(opts, &out, "maxSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01. +// +// Solidity: function maxSupply() view returns(uint256) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) MaxSupply() (*big.Int, error) { + return _ZetaConnectorNonNative.Contract.MaxSupply(&_ZetaConnectorNonNative.CallOpts) +} + +// MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01. +// +// Solidity: function maxSupply() view returns(uint256) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) MaxSupply() (*big.Int, error) { + return _ZetaConnectorNonNative.Contract.MaxSupply(&_ZetaConnectorNonNative.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorNonNative.contract.Call(opts, &out, "tssAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) TssAddress() (common.Address, error) { + return _ZetaConnectorNonNative.Contract.TssAddress(&_ZetaConnectorNonNative.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) TssAddress() (common.Address, error) { + return _ZetaConnectorNonNative.Contract.TssAddress(&_ZetaConnectorNonNative.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) ZetaToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorNonNative.contract.Call(opts, &out, "zetaToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) ZetaToken() (common.Address, error) { + return _ZetaConnectorNonNative.Contract.ZetaToken(&_ZetaConnectorNonNative.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) ZetaToken() (common.Address, error) { + return _ZetaConnectorNonNative.Contract.ZetaToken(&_ZetaConnectorNonNative.CallOpts) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactor) ReceiveTokens(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNonNative.contract.Transact(opts, "receiveTokens", amount) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) ReceiveTokens(amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.ReceiveTokens(&_ZetaConnectorNonNative.TransactOpts, amount) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorSession) ReceiveTokens(amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.ReceiveTokens(&_ZetaConnectorNonNative.TransactOpts, amount) +} + +// SetMaxSupply is a paid mutator transaction binding the contract method 0x6f8b44b0. +// +// Solidity: function setMaxSupply(uint256 _maxSupply) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactor) SetMaxSupply(opts *bind.TransactOpts, _maxSupply *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNonNative.contract.Transact(opts, "setMaxSupply", _maxSupply) +} + +// SetMaxSupply is a paid mutator transaction binding the contract method 0x6f8b44b0. +// +// Solidity: function setMaxSupply(uint256 _maxSupply) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) SetMaxSupply(_maxSupply *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.SetMaxSupply(&_ZetaConnectorNonNative.TransactOpts, _maxSupply) +} + +// SetMaxSupply is a paid mutator transaction binding the contract method 0x6f8b44b0. +// +// Solidity: function setMaxSupply(uint256 _maxSupply) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorSession) SetMaxSupply(_maxSupply *big.Int) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.SetMaxSupply(&_ZetaConnectorNonNative.TransactOpts, _maxSupply) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x106e6290. +// +// Solidity: function withdraw(address to, uint256 amount, bytes32 internalSendHash) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactor) Withdraw(opts *bind.TransactOpts, to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNonNative.contract.Transact(opts, "withdraw", to, amount, internalSendHash) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x106e6290. +// +// Solidity: function withdraw(address to, uint256 amount, bytes32 internalSendHash) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) Withdraw(to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.Withdraw(&_ZetaConnectorNonNative.TransactOpts, to, amount, internalSendHash) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x106e6290. +// +// Solidity: function withdraw(address to, uint256 amount, bytes32 internalSendHash) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorSession) Withdraw(to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.Withdraw(&_ZetaConnectorNonNative.TransactOpts, to, amount, internalSendHash) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x5e3e9fef. +// +// Solidity: function withdrawAndCall(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactor) WithdrawAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNonNative.contract.Transact(opts, "withdrawAndCall", to, amount, data, internalSendHash) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x5e3e9fef. +// +// Solidity: function withdrawAndCall(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) WithdrawAndCall(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.WithdrawAndCall(&_ZetaConnectorNonNative.TransactOpts, to, amount, data, internalSendHash) +} + +// WithdrawAndCall is a paid mutator transaction binding the contract method 0x5e3e9fef. +// +// Solidity: function withdrawAndCall(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorSession) WithdrawAndCall(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.WithdrawAndCall(&_ZetaConnectorNonNative.TransactOpts, to, amount, data, internalSendHash) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0x02d5c899. +// +// Solidity: function withdrawAndRevert(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactor) WithdrawAndRevert(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNonNative.contract.Transact(opts, "withdrawAndRevert", to, amount, data, internalSendHash) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0x02d5c899. +// +// Solidity: function withdrawAndRevert(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) WithdrawAndRevert(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.WithdrawAndRevert(&_ZetaConnectorNonNative.TransactOpts, to, amount, data, internalSendHash) +} + +// WithdrawAndRevert is a paid mutator transaction binding the contract method 0x02d5c899. +// +// Solidity: function withdrawAndRevert(address to, uint256 amount, bytes data, bytes32 internalSendHash) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorSession) WithdrawAndRevert(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.WithdrawAndRevert(&_ZetaConnectorNonNative.TransactOpts, to, amount, data, internalSendHash) +} + +// ZetaConnectorNonNativeMaxSupplyUpdatedIterator is returned from FilterMaxSupplyUpdated and is used to iterate over the raw logs and unpacked data for MaxSupplyUpdated events raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeMaxSupplyUpdatedIterator struct { + Event *ZetaConnectorNonNativeMaxSupplyUpdated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeMaxSupplyUpdatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeMaxSupplyUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeMaxSupplyUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeMaxSupplyUpdatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeMaxSupplyUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeMaxSupplyUpdated represents a MaxSupplyUpdated event raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeMaxSupplyUpdated struct { + MaxSupply *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMaxSupplyUpdated is a free log retrieval operation binding the contract event 0x7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c. +// +// Solidity: event MaxSupplyUpdated(uint256 maxSupply) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) FilterMaxSupplyUpdated(opts *bind.FilterOpts) (*ZetaConnectorNonNativeMaxSupplyUpdatedIterator, error) { + + logs, sub, err := _ZetaConnectorNonNative.contract.FilterLogs(opts, "MaxSupplyUpdated") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeMaxSupplyUpdatedIterator{contract: _ZetaConnectorNonNative.contract, event: "MaxSupplyUpdated", logs: logs, sub: sub}, nil +} + +// WatchMaxSupplyUpdated is a free log subscription operation binding the contract event 0x7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c. +// +// Solidity: event MaxSupplyUpdated(uint256 maxSupply) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) WatchMaxSupplyUpdated(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeMaxSupplyUpdated) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNative.contract.WatchLogs(opts, "MaxSupplyUpdated") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeMaxSupplyUpdated) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "MaxSupplyUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMaxSupplyUpdated is a log parse operation binding the contract event 0x7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c. +// +// Solidity: event MaxSupplyUpdated(uint256 maxSupply) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) ParseMaxSupplyUpdated(log types.Log) (*ZetaConnectorNonNativeMaxSupplyUpdated, error) { + event := new(ZetaConnectorNonNativeMaxSupplyUpdated) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "MaxSupplyUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeWithdrawIterator struct { + Event *ZetaConnectorNonNativeWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeWithdraw represents a Withdraw event raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeWithdraw struct { + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) FilterWithdraw(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNonNativeWithdrawIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.FilterLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeWithdrawIterator{contract: _ZetaConnectorNonNative.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeWithdraw, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.WatchLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeWithdraw) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) ParseWithdraw(log types.Log) (*ZetaConnectorNonNativeWithdraw, error) { + event := new(ZetaConnectorNonNativeWithdraw) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeWithdrawAndCallIterator struct { + Event *ZetaConnectorNonNativeWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeWithdrawAndCall represents a WithdrawAndCall event raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeWithdrawAndCall struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndCall is a free log retrieval operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNonNativeWithdrawAndCallIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.FilterLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeWithdrawAndCallIterator{contract: _ZetaConnectorNonNative.contract, event: "WithdrawAndCall", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndCall is a free log subscription operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeWithdrawAndCall, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.WatchLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeWithdrawAndCall) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndCall is a log parse operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) ParseWithdrawAndCall(log types.Log) (*ZetaConnectorNonNativeWithdrawAndCall, error) { + event := new(ZetaConnectorNonNativeWithdrawAndCall) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeWithdrawAndRevertIterator struct { + Event *ZetaConnectorNonNativeWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeWithdrawAndRevert represents a WithdrawAndRevert event raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeWithdrawAndRevert struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndRevert is a free log retrieval operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNonNativeWithdrawAndRevertIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.FilterLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeWithdrawAndRevertIterator{contract: _ZetaConnectorNonNative.contract, event: "WithdrawAndRevert", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndRevert is a free log subscription operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeWithdrawAndRevert, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.WatchLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeWithdrawAndRevert) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndRevert is a log parse operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) ParseWithdrawAndRevert(log types.Log) (*ZetaConnectorNonNativeWithdrawAndRevert, error) { + event := new(ZetaConnectorNonNativeWithdrawAndRevert) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/zetaconnectornonnative.t.sol/zetaconnectornonnativetest.go b/v2/pkg/zetaconnectornonnative.t.sol/zetaconnectornonnativetest.go new file mode 100644 index 00000000..39cc897c --- /dev/null +++ b/v2/pkg/zetaconnectornonnative.t.sol/zetaconnectornonnativetest.go @@ -0,0 +1,5605 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zetaconnectornonnative + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// StdInvariantFuzzArtifactSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzArtifactSelector struct { + Artifact string + Selectors [][4]byte +} + +// StdInvariantFuzzInterface is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzInterface struct { + Addr common.Address + Artifacts []string +} + +// StdInvariantFuzzSelector is an auto generated low-level Go binding around an user-defined struct. +type StdInvariantFuzzSelector struct { + Addr common.Address + Selectors [][4]byte +} + +// ZetaConnectorNonNativeTestMetaData contains all meta data concerning the ZetaConnectorNonNativeTest contract. +var ZetaConnectorNonNativeTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"IS_TEST\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"excludeSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"failed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setUp\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzArtifactSelector[]\",\"components\":[{\"name\":\"artifact\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetArtifacts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetContracts\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetInterfaces\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzInterface[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"artifacts\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSelectors\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"internalType\":\"structStdInvariant.FuzzSelector[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selectors\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetSenders\",\"inputs\":[],\"outputs\":[{\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Executed\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedERC20\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNoParams\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedNonPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strs\",\"type\":\"string[]\",\"indexed\":false,\"internalType\":\"string[]\"},{\"name\":\"nums\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedPayable\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"str\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"num\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"flag\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedRevert\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Reverted\",\"inputs\":[{\"name\":\"destination\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RevertedWithERC20\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndCall\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawAndRevert\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_address\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_array\",\"inputs\":[{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_bytes32\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_int\",\"inputs\":[{\"name\":\"\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_address\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256[]\",\"indexed\":false,\"internalType\":\"int256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_array\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_bytes32\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_decimal_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"decimals\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_int\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_string\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_named_uint\",\"inputs\":[{\"name\":\"key\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"val\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_string\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"log_uint\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"logs\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b50610f868061003c6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806385226c811161008c578063b5508aa911610066578063b5508aa9146101bb578063ba414fa6146101c3578063e20c9f71146101db578063fa7626d4146101e357600080fd5b806385226c8114610189578063916a17c61461019e578063b0464fdc146101b357600080fd5b80633e5e3c23116100bd5780633e5e3c23146101645780633f7286f41461016c57806366d9a9a01461017457600080fd5b80630a9254e4146100e45780631ed7831c146101315780632ade38801461014f575b600080fd5b61012f602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116301790915560258054821661123417905560268054909116615678179055565b005b6101396101f0565b6040516101469190610afb565b60405180910390f35b61015761025f565b6040516101469190610bb8565b6101396103ae565b61013961041b565b61017c610488565b6040516101469190610d2b565b61019161060a565b6040516101469190610dc9565b6101a66106da565b6040516101469190610e40565b6101a66107e2565b6101916108ea565b6101cb6109ba565b6040519015158152602001610146565b610139610a8e565b601f546101cb9060ff1681565b6060601680548060200260200160405190810160405280929190818152602001828054801561025557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161022a575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b828210156103a5576000848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b8282101561038e57838290600052602060002001805461030190610ee4565b80601f016020809104026020016040519081016040528092919081815260200182805461032d90610ee4565b801561037a5780601f1061034f5761010080835404028352916020019161037a565b820191906000526020600020905b81548152906001019060200180831161035d57829003601f168201915b5050505050815260200190600101906102e2565b505050508152505081526020019060010190610283565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156102555760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161022a575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156102555760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161022a575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156103a557838290600052602060002090600202016040518060400160405290816000820180546104df90610ee4565b80601f016020809104026020016040519081016040528092919081815260200182805461050b90610ee4565b80156105585780601f1061052d57610100808354040283529160200191610558565b820191906000526020600020905b81548152906001019060200180831161053b57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156105f257602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161059f5790505b505050505081525050815260200190600101906104ac565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156103a557838290600052602060002001805461064d90610ee4565b80601f016020809104026020016040519081016040528092919081815260200182805461067990610ee4565b80156106c65780601f1061069b576101008083540402835291602001916106c6565b820191906000526020600020905b8154815290600101906020018083116106a957829003601f168201915b50505050508152602001906001019061062e565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156103a557600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156107ca57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116107775790505b505050505081525050815260200190600101906106fe565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156103a557600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156108d257602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161087f5790505b50505050508152505081526020019060010190610806565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156103a557838290600052602060002001805461092d90610ee4565b80601f016020809104026020016040519081016040528092919081815260200182805461095990610ee4565b80156109a65780601f1061097b576101008083540402835291602001916109a6565b820191906000526020600020905b81548152906001019060200180831161098957829003601f168201915b50505050508152602001906001019061090e565b60085460009060ff16156109d2575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015610a63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a879190610f37565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156102555760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161022a575050505050905090565b602080825282518282018190526000918401906040840190835b81811015610b4957835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101610b15565b509095945050505050565b6000815180845260005b81811015610b7a57602081850181015186830182015201610b5e565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610cc1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805173ffffffffffffffffffffffffffffffffffffffff168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015610ca7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352610c91848651610b54565b6020958601959094509290920191600101610c57565b509197505050602094850194929092019150600101610be0565b50929695505050505050565b600081518084526020840193506020830160005b82811015610d215781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101610ce1565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610cc1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752610d976040880182610b54565b9050602082015191508681036020880152610db28183610ccd565b965050506020938401939190910190600101610d53565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610cc1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452610e2b858351610b54565b94506020938401939190910190600101610df1565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610cc1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815173ffffffffffffffffffffffffffffffffffffffff81511686526020810151905060406020870152610ece6040870182610ccd565b9550506020938401939190910190600101610e68565b600181811c90821680610ef857607f821691505b602082108103610f31577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600060208284031215610f4957600080fd5b505191905056fea2646970667358221220e6ce98b1e4db0be37c7d41156129bf2894aeb3fbfccc1ebf666e905caf87609e64736f6c634300081a0033", +} + +// ZetaConnectorNonNativeTestABI is the input ABI used to generate the binding from. +// Deprecated: Use ZetaConnectorNonNativeTestMetaData.ABI instead. +var ZetaConnectorNonNativeTestABI = ZetaConnectorNonNativeTestMetaData.ABI + +// ZetaConnectorNonNativeTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ZetaConnectorNonNativeTestMetaData.Bin instead. +var ZetaConnectorNonNativeTestBin = ZetaConnectorNonNativeTestMetaData.Bin + +// DeployZetaConnectorNonNativeTest deploys a new Ethereum contract, binding an instance of ZetaConnectorNonNativeTest to it. +func DeployZetaConnectorNonNativeTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ZetaConnectorNonNativeTest, error) { + parsed, err := ZetaConnectorNonNativeTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ZetaConnectorNonNativeTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ZetaConnectorNonNativeTest{ZetaConnectorNonNativeTestCaller: ZetaConnectorNonNativeTestCaller{contract: contract}, ZetaConnectorNonNativeTestTransactor: ZetaConnectorNonNativeTestTransactor{contract: contract}, ZetaConnectorNonNativeTestFilterer: ZetaConnectorNonNativeTestFilterer{contract: contract}}, nil +} + +// ZetaConnectorNonNativeTest is an auto generated Go binding around an Ethereum contract. +type ZetaConnectorNonNativeTest struct { + ZetaConnectorNonNativeTestCaller // Read-only binding to the contract + ZetaConnectorNonNativeTestTransactor // Write-only binding to the contract + ZetaConnectorNonNativeTestFilterer // Log filterer for contract events +} + +// ZetaConnectorNonNativeTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZetaConnectorNonNativeTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNonNativeTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZetaConnectorNonNativeTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNonNativeTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZetaConnectorNonNativeTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorNonNativeTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZetaConnectorNonNativeTestSession struct { + Contract *ZetaConnectorNonNativeTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorNonNativeTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZetaConnectorNonNativeTestCallerSession struct { + Contract *ZetaConnectorNonNativeTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZetaConnectorNonNativeTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZetaConnectorNonNativeTestTransactorSession struct { + Contract *ZetaConnectorNonNativeTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorNonNativeTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZetaConnectorNonNativeTestRaw struct { + Contract *ZetaConnectorNonNativeTest // Generic contract binding to access the raw methods on +} + +// ZetaConnectorNonNativeTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZetaConnectorNonNativeTestCallerRaw struct { + Contract *ZetaConnectorNonNativeTestCaller // Generic read-only contract binding to access the raw methods on +} + +// ZetaConnectorNonNativeTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZetaConnectorNonNativeTestTransactorRaw struct { + Contract *ZetaConnectorNonNativeTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZetaConnectorNonNativeTest creates a new instance of ZetaConnectorNonNativeTest, bound to a specific deployed contract. +func NewZetaConnectorNonNativeTest(address common.Address, backend bind.ContractBackend) (*ZetaConnectorNonNativeTest, error) { + contract, err := bindZetaConnectorNonNativeTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTest{ZetaConnectorNonNativeTestCaller: ZetaConnectorNonNativeTestCaller{contract: contract}, ZetaConnectorNonNativeTestTransactor: ZetaConnectorNonNativeTestTransactor{contract: contract}, ZetaConnectorNonNativeTestFilterer: ZetaConnectorNonNativeTestFilterer{contract: contract}}, nil +} + +// NewZetaConnectorNonNativeTestCaller creates a new read-only instance of ZetaConnectorNonNativeTest, bound to a specific deployed contract. +func NewZetaConnectorNonNativeTestCaller(address common.Address, caller bind.ContractCaller) (*ZetaConnectorNonNativeTestCaller, error) { + contract, err := bindZetaConnectorNonNativeTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestCaller{contract: contract}, nil +} + +// NewZetaConnectorNonNativeTestTransactor creates a new write-only instance of ZetaConnectorNonNativeTest, bound to a specific deployed contract. +func NewZetaConnectorNonNativeTestTransactor(address common.Address, transactor bind.ContractTransactor) (*ZetaConnectorNonNativeTestTransactor, error) { + contract, err := bindZetaConnectorNonNativeTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestTransactor{contract: contract}, nil +} + +// NewZetaConnectorNonNativeTestFilterer creates a new log filterer instance of ZetaConnectorNonNativeTest, bound to a specific deployed contract. +func NewZetaConnectorNonNativeTestFilterer(address common.Address, filterer bind.ContractFilterer) (*ZetaConnectorNonNativeTestFilterer, error) { + contract, err := bindZetaConnectorNonNativeTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestFilterer{contract: contract}, nil +} + +// bindZetaConnectorNonNativeTest binds a generic wrapper to an already deployed contract. +func bindZetaConnectorNonNativeTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZetaConnectorNonNativeTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorNonNativeTest.Contract.ZetaConnectorNonNativeTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.ZetaConnectorNonNativeTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.ZetaConnectorNonNativeTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorNonNativeTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.contract.Transact(opts, method, params...) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) ISTEST(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "IS_TEST") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) ISTEST() (bool, error) { + return _ZetaConnectorNonNativeTest.Contract.ISTEST(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// ISTEST is a free data retrieval call binding the contract method 0xfa7626d4. +// +// Solidity: function IS_TEST() view returns(bool) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) ISTEST() (bool, error) { + return _ZetaConnectorNonNativeTest.Contract.ISTEST(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) ExcludeArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "excludeArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) ExcludeArtifacts() ([]string, error) { + return _ZetaConnectorNonNativeTest.Contract.ExcludeArtifacts(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// ExcludeArtifacts is a free data retrieval call binding the contract method 0xb5508aa9. +// +// Solidity: function excludeArtifacts() view returns(string[] excludedArtifacts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) ExcludeArtifacts() ([]string, error) { + return _ZetaConnectorNonNativeTest.Contract.ExcludeArtifacts(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) ExcludeContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "excludeContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) ExcludeContracts() ([]common.Address, error) { + return _ZetaConnectorNonNativeTest.Contract.ExcludeContracts(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// ExcludeContracts is a free data retrieval call binding the contract method 0xe20c9f71. +// +// Solidity: function excludeContracts() view returns(address[] excludedContracts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) ExcludeContracts() ([]common.Address, error) { + return _ZetaConnectorNonNativeTest.Contract.ExcludeContracts(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) ExcludeSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "excludeSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _ZetaConnectorNonNativeTest.Contract.ExcludeSelectors(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// ExcludeSelectors is a free data retrieval call binding the contract method 0xb0464fdc. +// +// Solidity: function excludeSelectors() view returns((address,bytes4[])[] excludedSelectors_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) ExcludeSelectors() ([]StdInvariantFuzzSelector, error) { + return _ZetaConnectorNonNativeTest.Contract.ExcludeSelectors(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) ExcludeSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "excludeSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) ExcludeSenders() ([]common.Address, error) { + return _ZetaConnectorNonNativeTest.Contract.ExcludeSenders(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// ExcludeSenders is a free data retrieval call binding the contract method 0x1ed7831c. +// +// Solidity: function excludeSenders() view returns(address[] excludedSenders_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) ExcludeSenders() ([]common.Address, error) { + return _ZetaConnectorNonNativeTest.Contract.ExcludeSenders(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) Failed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "failed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) Failed() (bool, error) { + return _ZetaConnectorNonNativeTest.Contract.Failed(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// Failed is a free data retrieval call binding the contract method 0xba414fa6. +// +// Solidity: function failed() view returns(bool) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) Failed() (bool, error) { + return _ZetaConnectorNonNativeTest.Contract.Failed(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) TargetArtifactSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzArtifactSelector, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "targetArtifactSelectors") + + if err != nil { + return *new([]StdInvariantFuzzArtifactSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzArtifactSelector)).(*[]StdInvariantFuzzArtifactSelector) + + return out0, err + +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetArtifactSelectors(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetArtifactSelectors is a free data retrieval call binding the contract method 0x66d9a9a0. +// +// Solidity: function targetArtifactSelectors() view returns((string,bytes4[])[] targetedArtifactSelectors_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) TargetArtifactSelectors() ([]StdInvariantFuzzArtifactSelector, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetArtifactSelectors(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) TargetArtifacts(opts *bind.CallOpts) ([]string, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "targetArtifacts") + + if err != nil { + return *new([]string), err + } + + out0 := *abi.ConvertType(out[0], new([]string)).(*[]string) + + return out0, err + +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TargetArtifacts() ([]string, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetArtifacts(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetArtifacts is a free data retrieval call binding the contract method 0x85226c81. +// +// Solidity: function targetArtifacts() view returns(string[] targetedArtifacts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) TargetArtifacts() ([]string, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetArtifacts(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) TargetContracts(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "targetContracts") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TargetContracts() ([]common.Address, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetContracts(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetContracts is a free data retrieval call binding the contract method 0x3f7286f4. +// +// Solidity: function targetContracts() view returns(address[] targetedContracts_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) TargetContracts() ([]common.Address, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetContracts(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) TargetInterfaces(opts *bind.CallOpts) ([]StdInvariantFuzzInterface, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "targetInterfaces") + + if err != nil { + return *new([]StdInvariantFuzzInterface), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzInterface)).(*[]StdInvariantFuzzInterface) + + return out0, err + +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetInterfaces(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetInterfaces is a free data retrieval call binding the contract method 0x2ade3880. +// +// Solidity: function targetInterfaces() view returns((address,string[])[] targetedInterfaces_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) TargetInterfaces() ([]StdInvariantFuzzInterface, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetInterfaces(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) TargetSelectors(opts *bind.CallOpts) ([]StdInvariantFuzzSelector, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "targetSelectors") + + if err != nil { + return *new([]StdInvariantFuzzSelector), err + } + + out0 := *abi.ConvertType(out[0], new([]StdInvariantFuzzSelector)).(*[]StdInvariantFuzzSelector) + + return out0, err + +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetSelectors(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetSelectors is a free data retrieval call binding the contract method 0x916a17c6. +// +// Solidity: function targetSelectors() view returns((address,bytes4[])[] targetedSelectors_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) TargetSelectors() ([]StdInvariantFuzzSelector, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetSelectors(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) TargetSenders(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "targetSenders") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TargetSenders() ([]common.Address, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetSenders(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// TargetSenders is a free data retrieval call binding the contract method 0x3e5e3c23. +// +// Solidity: function targetSenders() view returns(address[] targetedSenders_) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) TargetSenders() ([]common.Address, error) { + return _ZetaConnectorNonNativeTest.Contract.TargetSenders(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactor) SetUp(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.contract.Transact(opts, "setUp") +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) SetUp() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.SetUp(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// SetUp is a paid mutator transaction binding the contract method 0x0a9254e4. +// +// Solidity: function setUp() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorSession) SetUp() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.SetUp(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// ZetaConnectorNonNativeTestCallIterator is returned from FilterCall and is used to iterate over the raw logs and unpacked data for Call events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestCallIterator struct { + Event *ZetaConnectorNonNativeTestCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestCall represents a Call event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestCall struct { + Sender common.Address + Receiver common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*ZetaConnectorNonNativeTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestCallIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "Call", logs: logs, sub: sub}, nil +} + +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestCall, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestCall) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "Call", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// +// Solidity: event Call(address indexed sender, address indexed receiver, bytes payload) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseCall(log types.Log) (*ZetaConnectorNonNativeTestCall, error) { + event := new(ZetaConnectorNonNativeTestCall) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "Call", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestDepositIterator struct { + Event *ZetaConnectorNonNativeTestDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestDeposit represents a Deposit event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestDeposit struct { + Sender common.Address + Receiver common.Address + Amount *big.Int + Asset common.Address + Payload []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterDeposit(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*ZetaConnectorNonNativeTestDepositIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestDepositIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestDeposit, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestDeposit) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// +// Solidity: event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseDeposit(log types.Log) (*ZetaConnectorNonNativeTestDeposit, error) { + event := new(ZetaConnectorNonNativeTestDeposit) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestExecutedIterator is returned from FilterExecuted and is used to iterate over the raw logs and unpacked data for Executed events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestExecutedIterator struct { + Event *ZetaConnectorNonNativeTestExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestExecuted represents a Executed event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestExecuted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*ZetaConnectorNonNativeTestExecutedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestExecutedIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "Executed", logs: logs, sub: sub}, nil +} + +// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchExecuted(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestExecuted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "Executed", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestExecuted) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "Executed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseExecuted(log types.Log) (*ZetaConnectorNonNativeTestExecuted, error) { + event := new(ZetaConnectorNonNativeTestExecuted) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "Executed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestExecutedWithERC20Iterator is returned from FilterExecutedWithERC20 and is used to iterate over the raw logs and unpacked data for ExecutedWithERC20 events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestExecutedWithERC20Iterator struct { + Event *ZetaConnectorNonNativeTestExecutedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestExecutedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestExecutedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestExecutedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestExecutedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestExecutedWithERC20 represents a ExecutedWithERC20 event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestExecutedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterExecutedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ZetaConnectorNonNativeTestExecutedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestExecutedWithERC20Iterator{contract: _ZetaConnectorNonNativeTest.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchExecutedWithERC20(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestExecutedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestExecutedWithERC20) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// +// Solidity: event ExecutedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseExecutedWithERC20(log types.Log) (*ZetaConnectorNonNativeTestExecutedWithERC20, error) { + event := new(ZetaConnectorNonNativeTestExecutedWithERC20) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestReceivedERC20Iterator is returned from FilterReceivedERC20 and is used to iterate over the raw logs and unpacked data for ReceivedERC20 events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReceivedERC20Iterator struct { + Event *ZetaConnectorNonNativeTestReceivedERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestReceivedERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReceivedERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestReceivedERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestReceivedERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestReceivedERC20 represents a ReceivedERC20 event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReceivedERC20 struct { + Sender common.Address + Amount *big.Int + Token common.Address + Destination common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedERC20 is a free log retrieval operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterReceivedERC20(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestReceivedERC20Iterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestReceivedERC20Iterator{contract: _ZetaConnectorNonNativeTest.contract, event: "ReceivedERC20", logs: logs, sub: sub}, nil +} + +// WatchReceivedERC20 is a free log subscription operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchReceivedERC20(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestReceivedERC20) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "ReceivedERC20") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestReceivedERC20) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedERC20 is a log parse operation binding the contract event 0x2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60. +// +// Solidity: event ReceivedERC20(address sender, uint256 amount, address token, address destination) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseReceivedERC20(log types.Log) (*ZetaConnectorNonNativeTestReceivedERC20, error) { + event := new(ZetaConnectorNonNativeTestReceivedERC20) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ReceivedERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestReceivedNoParamsIterator is returned from FilterReceivedNoParams and is used to iterate over the raw logs and unpacked data for ReceivedNoParams events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReceivedNoParamsIterator struct { + Event *ZetaConnectorNonNativeTestReceivedNoParams // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestReceivedNoParamsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReceivedNoParams) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestReceivedNoParamsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestReceivedNoParamsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestReceivedNoParams represents a ReceivedNoParams event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReceivedNoParams struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNoParams is a free log retrieval operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterReceivedNoParams(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestReceivedNoParamsIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestReceivedNoParamsIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "ReceivedNoParams", logs: logs, sub: sub}, nil +} + +// WatchReceivedNoParams is a free log subscription operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchReceivedNoParams(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestReceivedNoParams) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "ReceivedNoParams") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestReceivedNoParams) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNoParams is a log parse operation binding the contract event 0xbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0. +// +// Solidity: event ReceivedNoParams(address sender) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseReceivedNoParams(log types.Log) (*ZetaConnectorNonNativeTestReceivedNoParams, error) { + event := new(ZetaConnectorNonNativeTestReceivedNoParams) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ReceivedNoParams", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestReceivedNonPayableIterator is returned from FilterReceivedNonPayable and is used to iterate over the raw logs and unpacked data for ReceivedNonPayable events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReceivedNonPayableIterator struct { + Event *ZetaConnectorNonNativeTestReceivedNonPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestReceivedNonPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReceivedNonPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestReceivedNonPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestReceivedNonPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestReceivedNonPayable represents a ReceivedNonPayable event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReceivedNonPayable struct { + Sender common.Address + Strs []string + Nums []*big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedNonPayable is a free log retrieval operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterReceivedNonPayable(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestReceivedNonPayableIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestReceivedNonPayableIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "ReceivedNonPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedNonPayable is a free log subscription operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchReceivedNonPayable(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestReceivedNonPayable) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "ReceivedNonPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestReceivedNonPayable) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedNonPayable is a log parse operation binding the contract event 0x74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146. +// +// Solidity: event ReceivedNonPayable(address sender, string[] strs, uint256[] nums, bool flag) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseReceivedNonPayable(log types.Log) (*ZetaConnectorNonNativeTestReceivedNonPayable, error) { + event := new(ZetaConnectorNonNativeTestReceivedNonPayable) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ReceivedNonPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestReceivedPayableIterator is returned from FilterReceivedPayable and is used to iterate over the raw logs and unpacked data for ReceivedPayable events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReceivedPayableIterator struct { + Event *ZetaConnectorNonNativeTestReceivedPayable // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestReceivedPayableIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReceivedPayable) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestReceivedPayableIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestReceivedPayableIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestReceivedPayable represents a ReceivedPayable event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReceivedPayable struct { + Sender common.Address + Value *big.Int + Str string + Num *big.Int + Flag bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedPayable is a free log retrieval operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterReceivedPayable(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestReceivedPayableIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestReceivedPayableIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "ReceivedPayable", logs: logs, sub: sub}, nil +} + +// WatchReceivedPayable is a free log subscription operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchReceivedPayable(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestReceivedPayable) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "ReceivedPayable") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestReceivedPayable) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedPayable is a log parse operation binding the contract event 0x1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa. +// +// Solidity: event ReceivedPayable(address sender, uint256 value, string str, uint256 num, bool flag) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseReceivedPayable(log types.Log) (*ZetaConnectorNonNativeTestReceivedPayable, error) { + event := new(ZetaConnectorNonNativeTestReceivedPayable) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ReceivedPayable", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestReceivedRevertIterator is returned from FilterReceivedRevert and is used to iterate over the raw logs and unpacked data for ReceivedRevert events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReceivedRevertIterator struct { + Event *ZetaConnectorNonNativeTestReceivedRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestReceivedRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReceivedRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestReceivedRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestReceivedRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestReceivedRevert represents a ReceivedRevert event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReceivedRevert struct { + Sender common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceivedRevert is a free log retrieval operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterReceivedRevert(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestReceivedRevertIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestReceivedRevertIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "ReceivedRevert", logs: logs, sub: sub}, nil +} + +// WatchReceivedRevert is a free log subscription operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchReceivedRevert(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestReceivedRevert) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "ReceivedRevert") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestReceivedRevert) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceivedRevert is a log parse operation binding the contract event 0x0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa. +// +// Solidity: event ReceivedRevert(address sender, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseReceivedRevert(log types.Log) (*ZetaConnectorNonNativeTestReceivedRevert, error) { + event := new(ZetaConnectorNonNativeTestReceivedRevert) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "ReceivedRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestRevertedIterator is returned from FilterReverted and is used to iterate over the raw logs and unpacked data for Reverted events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestRevertedIterator struct { + Event *ZetaConnectorNonNativeTestReverted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestRevertedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestReverted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestRevertedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestRevertedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestReverted represents a Reverted event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestReverted struct { + Destination common.Address + Value *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*ZetaConnectorNonNativeTestRevertedIterator, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestRevertedIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "Reverted", logs: logs, sub: sub}, nil +} + +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchReverted(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestReverted, destination []common.Address) (event.Subscription, error) { + + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "Reverted", destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestReverted) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// +// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseReverted(log types.Log) (*ZetaConnectorNonNativeTestReverted, error) { + event := new(ZetaConnectorNonNativeTestReverted) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "Reverted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestRevertedWithERC20Iterator is returned from FilterRevertedWithERC20 and is used to iterate over the raw logs and unpacked data for RevertedWithERC20 events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestRevertedWithERC20Iterator struct { + Event *ZetaConnectorNonNativeTestRevertedWithERC20 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestRevertedWithERC20Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestRevertedWithERC20) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestRevertedWithERC20Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestRevertedWithERC20Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestRevertedWithERC20 represents a RevertedWithERC20 event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestRevertedWithERC20 struct { + Token common.Address + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterRevertedWithERC20(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ZetaConnectorNonNativeTestRevertedWithERC20Iterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestRevertedWithERC20Iterator{contract: _ZetaConnectorNonNativeTest.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil +} + +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchRevertedWithERC20(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestRevertedWithERC20, token []common.Address, to []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestRevertedWithERC20) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// +// Solidity: event RevertedWithERC20(address indexed token, address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseRevertedWithERC20(log types.Log) (*ZetaConnectorNonNativeTestRevertedWithERC20, error) { + event := new(ZetaConnectorNonNativeTestRevertedWithERC20) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestWithdrawIterator struct { + Event *ZetaConnectorNonNativeTestWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestWithdraw represents a Withdraw event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestWithdraw struct { + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterWithdraw(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNonNativeTestWithdrawIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestWithdrawIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestWithdraw, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestWithdraw) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed to, uint256 amount) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseWithdraw(log types.Log) (*ZetaConnectorNonNativeTestWithdraw, error) { + event := new(ZetaConnectorNonNativeTestWithdraw) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestWithdrawAndCallIterator struct { + Event *ZetaConnectorNonNativeTestWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestWithdrawAndCall represents a WithdrawAndCall event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestWithdrawAndCall struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndCall is a free log retrieval operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNonNativeTestWithdrawAndCallIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestWithdrawAndCallIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "WithdrawAndCall", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndCall is a free log subscription operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestWithdrawAndCall, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestWithdrawAndCall) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndCall is a log parse operation binding the contract event 0x7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced. +// +// Solidity: event WithdrawAndCall(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseWithdrawAndCall(log types.Log) (*ZetaConnectorNonNativeTestWithdrawAndCall, error) { + event := new(ZetaConnectorNonNativeTestWithdrawAndCall) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestWithdrawAndRevertIterator struct { + Event *ZetaConnectorNonNativeTestWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestWithdrawAndRevert represents a WithdrawAndRevert event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestWithdrawAndRevert struct { + To common.Address + Amount *big.Int + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawAndRevert is a free log retrieval operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorNonNativeTestWithdrawAndRevertIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestWithdrawAndRevertIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "WithdrawAndRevert", logs: logs, sub: sub}, nil +} + +// WatchWithdrawAndRevert is a free log subscription operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestWithdrawAndRevert, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestWithdrawAndRevert) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawAndRevert is a log parse operation binding the contract event 0xba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe. +// +// Solidity: event WithdrawAndRevert(address indexed to, uint256 amount, bytes data) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseWithdrawAndRevert(log types.Log) (*ZetaConnectorNonNativeTestWithdrawAndRevert, error) { + event := new(ZetaConnectorNonNativeTestWithdrawAndRevert) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogIterator is returned from FilterLog and is used to iterate over the raw logs and unpacked data for Log events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogIterator struct { + Event *ZetaConnectorNonNativeTestLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLog represents a Log event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLog struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLog is a free log retrieval operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLog(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log", logs: logs, sub: sub}, nil +} + +// WatchLog is a free log subscription operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLog(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLog) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLog) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLog is a log parse operation binding the contract event 0x41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50. +// +// Solidity: event log(string arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLog(log types.Log) (*ZetaConnectorNonNativeTestLog, error) { + event := new(ZetaConnectorNonNativeTestLog) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogAddressIterator is returned from FilterLogAddress and is used to iterate over the raw logs and unpacked data for LogAddress events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogAddressIterator struct { + Event *ZetaConnectorNonNativeTestLogAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogAddress represents a LogAddress event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogAddress struct { + Arg0 common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAddress is a free log retrieval operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogAddress(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogAddressIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_address") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogAddressIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_address", logs: logs, sub: sub}, nil +} + +// WatchLogAddress is a free log subscription operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogAddress(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogAddress) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogAddress) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogAddress is a log parse operation binding the contract event 0x7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3. +// +// Solidity: event log_address(address arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogAddress(log types.Log) (*ZetaConnectorNonNativeTestLogAddress, error) { + event := new(ZetaConnectorNonNativeTestLogAddress) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogArrayIterator is returned from FilterLogArray and is used to iterate over the raw logs and unpacked data for LogArray events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogArrayIterator struct { + Event *ZetaConnectorNonNativeTestLogArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogArray represents a LogArray event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogArray struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray is a free log retrieval operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogArray(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogArrayIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_array") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogArrayIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_array", logs: logs, sub: sub}, nil +} + +// WatchLogArray is a free log subscription operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogArray(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogArray) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogArray) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray is a log parse operation binding the contract event 0xfb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1. +// +// Solidity: event log_array(uint256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogArray(log types.Log) (*ZetaConnectorNonNativeTestLogArray, error) { + event := new(ZetaConnectorNonNativeTestLogArray) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogArray0Iterator is returned from FilterLogArray0 and is used to iterate over the raw logs and unpacked data for LogArray0 events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogArray0Iterator struct { + Event *ZetaConnectorNonNativeTestLogArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogArray0 represents a LogArray0 event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogArray0 struct { + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray0 is a free log retrieval operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogArray0(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogArray0Iterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogArray0Iterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_array0", logs: logs, sub: sub}, nil +} + +// WatchLogArray0 is a free log subscription operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogArray0(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogArray0) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogArray0) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray0 is a log parse operation binding the contract event 0x890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5. +// +// Solidity: event log_array(int256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogArray0(log types.Log) (*ZetaConnectorNonNativeTestLogArray0, error) { + event := new(ZetaConnectorNonNativeTestLogArray0) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogArray1Iterator is returned from FilterLogArray1 and is used to iterate over the raw logs and unpacked data for LogArray1 events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogArray1Iterator struct { + Event *ZetaConnectorNonNativeTestLogArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogArray1 represents a LogArray1 event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogArray1 struct { + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogArray1 is a free log retrieval operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogArray1(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogArray1Iterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogArray1Iterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_array1", logs: logs, sub: sub}, nil +} + +// WatchLogArray1 is a free log subscription operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogArray1(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogArray1) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogArray1) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogArray1 is a log parse operation binding the contract event 0x40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2. +// +// Solidity: event log_array(address[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogArray1(log types.Log) (*ZetaConnectorNonNativeTestLogArray1, error) { + event := new(ZetaConnectorNonNativeTestLogArray1) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogBytesIterator is returned from FilterLogBytes and is used to iterate over the raw logs and unpacked data for LogBytes events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogBytesIterator struct { + Event *ZetaConnectorNonNativeTestLogBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogBytes represents a LogBytes event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogBytes struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes is a free log retrieval operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogBytes(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogBytesIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogBytesIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogBytes is a free log subscription operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogBytes(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogBytes) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogBytes) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes is a log parse operation binding the contract event 0x23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20. +// +// Solidity: event log_bytes(bytes arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogBytes(log types.Log) (*ZetaConnectorNonNativeTestLogBytes, error) { + event := new(ZetaConnectorNonNativeTestLogBytes) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogBytes32Iterator is returned from FilterLogBytes32 and is used to iterate over the raw logs and unpacked data for LogBytes32 events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogBytes32Iterator struct { + Event *ZetaConnectorNonNativeTestLogBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogBytes32 represents a LogBytes32 event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogBytes32 struct { + Arg0 [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogBytes32 is a free log retrieval operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogBytes32(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogBytes32Iterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogBytes32Iterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogBytes32 is a free log subscription operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogBytes32(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogBytes32) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogBytes32) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogBytes32 is a log parse operation binding the contract event 0xe81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3. +// +// Solidity: event log_bytes32(bytes32 arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogBytes32(log types.Log) (*ZetaConnectorNonNativeTestLogBytes32, error) { + event := new(ZetaConnectorNonNativeTestLogBytes32) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogIntIterator is returned from FilterLogInt and is used to iterate over the raw logs and unpacked data for LogInt events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogIntIterator struct { + Event *ZetaConnectorNonNativeTestLogInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogInt represents a LogInt event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogInt struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogInt is a free log retrieval operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogInt(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogIntIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_int") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogIntIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_int", logs: logs, sub: sub}, nil +} + +// WatchLogInt is a free log subscription operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogInt(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogInt) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogInt) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogInt is a log parse operation binding the contract event 0x0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8. +// +// Solidity: event log_int(int256 arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogInt(log types.Log) (*ZetaConnectorNonNativeTestLogInt, error) { + event := new(ZetaConnectorNonNativeTestLogInt) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedAddressIterator is returned from FilterLogNamedAddress and is used to iterate over the raw logs and unpacked data for LogNamedAddress events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedAddressIterator struct { + Event *ZetaConnectorNonNativeTestLogNamedAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedAddress represents a LogNamedAddress event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedAddress struct { + Key string + Val common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedAddress is a free log retrieval operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedAddress(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedAddressIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedAddressIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_address", logs: logs, sub: sub}, nil +} + +// WatchLogNamedAddress is a free log subscription operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedAddress(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedAddress) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_address") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedAddress) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedAddress is a log parse operation binding the contract event 0x9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f. +// +// Solidity: event log_named_address(string key, address val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedAddress(log types.Log) (*ZetaConnectorNonNativeTestLogNamedAddress, error) { + event := new(ZetaConnectorNonNativeTestLogNamedAddress) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_address", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedArrayIterator is returned from FilterLogNamedArray and is used to iterate over the raw logs and unpacked data for LogNamedArray events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedArrayIterator struct { + Event *ZetaConnectorNonNativeTestLogNamedArray // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedArrayIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedArray) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedArrayIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedArrayIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedArray represents a LogNamedArray event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedArray struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray is a free log retrieval operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedArray(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedArrayIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedArrayIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_array", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray is a free log subscription operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedArray(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedArray) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_array") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedArray) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray is a log parse operation binding the contract event 0x00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb. +// +// Solidity: event log_named_array(string key, uint256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedArray(log types.Log) (*ZetaConnectorNonNativeTestLogNamedArray, error) { + event := new(ZetaConnectorNonNativeTestLogNamedArray) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_array", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedArray0Iterator is returned from FilterLogNamedArray0 and is used to iterate over the raw logs and unpacked data for LogNamedArray0 events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedArray0Iterator struct { + Event *ZetaConnectorNonNativeTestLogNamedArray0 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedArray0Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedArray0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedArray0Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedArray0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedArray0 represents a LogNamedArray0 event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedArray0 struct { + Key string + Val []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray0 is a free log retrieval operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedArray0(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedArray0Iterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedArray0Iterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_array0", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray0 is a free log subscription operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedArray0(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedArray0) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_array0") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedArray0) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray0 is a log parse operation binding the contract event 0xa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57. +// +// Solidity: event log_named_array(string key, int256[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedArray0(log types.Log) (*ZetaConnectorNonNativeTestLogNamedArray0, error) { + event := new(ZetaConnectorNonNativeTestLogNamedArray0) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_array0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedArray1Iterator is returned from FilterLogNamedArray1 and is used to iterate over the raw logs and unpacked data for LogNamedArray1 events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedArray1Iterator struct { + Event *ZetaConnectorNonNativeTestLogNamedArray1 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedArray1Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedArray1) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedArray1Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedArray1Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedArray1 represents a LogNamedArray1 event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedArray1 struct { + Key string + Val []common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedArray1 is a free log retrieval operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedArray1(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedArray1Iterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedArray1Iterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_array1", logs: logs, sub: sub}, nil +} + +// WatchLogNamedArray1 is a free log subscription operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedArray1(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedArray1) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_array1") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedArray1) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedArray1 is a log parse operation binding the contract event 0x3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd. +// +// Solidity: event log_named_array(string key, address[] val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedArray1(log types.Log) (*ZetaConnectorNonNativeTestLogNamedArray1, error) { + event := new(ZetaConnectorNonNativeTestLogNamedArray1) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_array1", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedBytesIterator is returned from FilterLogNamedBytes and is used to iterate over the raw logs and unpacked data for LogNamedBytes events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedBytesIterator struct { + Event *ZetaConnectorNonNativeTestLogNamedBytes // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedBytesIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedBytes) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedBytesIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedBytesIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedBytes represents a LogNamedBytes event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedBytes struct { + Key string + Val []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes is a free log retrieval operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedBytes(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedBytesIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedBytesIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_bytes", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes is a free log subscription operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedBytes(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedBytes) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_bytes") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedBytes) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes is a log parse operation binding the contract event 0xd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18. +// +// Solidity: event log_named_bytes(string key, bytes val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedBytes(log types.Log) (*ZetaConnectorNonNativeTestLogNamedBytes, error) { + event := new(ZetaConnectorNonNativeTestLogNamedBytes) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_bytes", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedBytes32Iterator is returned from FilterLogNamedBytes32 and is used to iterate over the raw logs and unpacked data for LogNamedBytes32 events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedBytes32Iterator struct { + Event *ZetaConnectorNonNativeTestLogNamedBytes32 // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedBytes32Iterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedBytes32) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedBytes32Iterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedBytes32Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedBytes32 represents a LogNamedBytes32 event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedBytes32 struct { + Key string + Val [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedBytes32 is a free log retrieval operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedBytes32(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedBytes32Iterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedBytes32Iterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_bytes32", logs: logs, sub: sub}, nil +} + +// WatchLogNamedBytes32 is a free log subscription operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedBytes32(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedBytes32) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_bytes32") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedBytes32) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedBytes32 is a log parse operation binding the contract event 0xafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99. +// +// Solidity: event log_named_bytes32(string key, bytes32 val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedBytes32(log types.Log) (*ZetaConnectorNonNativeTestLogNamedBytes32, error) { + event := new(ZetaConnectorNonNativeTestLogNamedBytes32) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_bytes32", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedDecimalIntIterator is returned from FilterLogNamedDecimalInt and is used to iterate over the raw logs and unpacked data for LogNamedDecimalInt events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedDecimalIntIterator struct { + Event *ZetaConnectorNonNativeTestLogNamedDecimalInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedDecimalIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedDecimalInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedDecimalIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedDecimalIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedDecimalInt represents a LogNamedDecimalInt event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedDecimalInt struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalInt is a free log retrieval operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedDecimalInt(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedDecimalIntIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedDecimalIntIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_decimal_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalInt is a free log subscription operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedDecimalInt(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedDecimalInt) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_decimal_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedDecimalInt) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalInt is a log parse operation binding the contract event 0x5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95. +// +// Solidity: event log_named_decimal_int(string key, int256 val, uint256 decimals) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedDecimalInt(log types.Log) (*ZetaConnectorNonNativeTestLogNamedDecimalInt, error) { + event := new(ZetaConnectorNonNativeTestLogNamedDecimalInt) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_decimal_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedDecimalUintIterator is returned from FilterLogNamedDecimalUint and is used to iterate over the raw logs and unpacked data for LogNamedDecimalUint events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedDecimalUintIterator struct { + Event *ZetaConnectorNonNativeTestLogNamedDecimalUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedDecimalUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedDecimalUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedDecimalUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedDecimalUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedDecimalUint represents a LogNamedDecimalUint event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedDecimalUint struct { + Key string + Val *big.Int + Decimals *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedDecimalUint is a free log retrieval operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedDecimalUint(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedDecimalUintIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedDecimalUintIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_decimal_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedDecimalUint is a free log subscription operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedDecimalUint(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedDecimalUint) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_decimal_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedDecimalUint) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedDecimalUint is a log parse operation binding the contract event 0xeb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b. +// +// Solidity: event log_named_decimal_uint(string key, uint256 val, uint256 decimals) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedDecimalUint(log types.Log) (*ZetaConnectorNonNativeTestLogNamedDecimalUint, error) { + event := new(ZetaConnectorNonNativeTestLogNamedDecimalUint) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_decimal_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedIntIterator is returned from FilterLogNamedInt and is used to iterate over the raw logs and unpacked data for LogNamedInt events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedIntIterator struct { + Event *ZetaConnectorNonNativeTestLogNamedInt // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedIntIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedInt) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedIntIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedIntIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedInt represents a LogNamedInt event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedInt struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedInt is a free log retrieval operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedInt(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedIntIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedIntIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_int", logs: logs, sub: sub}, nil +} + +// WatchLogNamedInt is a free log subscription operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedInt(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedInt) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_int") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedInt) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedInt is a log parse operation binding the contract event 0x2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168. +// +// Solidity: event log_named_int(string key, int256 val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedInt(log types.Log) (*ZetaConnectorNonNativeTestLogNamedInt, error) { + event := new(ZetaConnectorNonNativeTestLogNamedInt) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_int", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedStringIterator is returned from FilterLogNamedString and is used to iterate over the raw logs and unpacked data for LogNamedString events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedStringIterator struct { + Event *ZetaConnectorNonNativeTestLogNamedString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedString represents a LogNamedString event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedString struct { + Key string + Val string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedString is a free log retrieval operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedString(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedStringIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedStringIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_string", logs: logs, sub: sub}, nil +} + +// WatchLogNamedString is a free log subscription operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedString(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedString) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedString) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedString is a log parse operation binding the contract event 0x280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583. +// +// Solidity: event log_named_string(string key, string val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedString(log types.Log) (*ZetaConnectorNonNativeTestLogNamedString, error) { + event := new(ZetaConnectorNonNativeTestLogNamedString) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogNamedUintIterator is returned from FilterLogNamedUint and is used to iterate over the raw logs and unpacked data for LogNamedUint events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedUintIterator struct { + Event *ZetaConnectorNonNativeTestLogNamedUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogNamedUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogNamedUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogNamedUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogNamedUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogNamedUint represents a LogNamedUint event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogNamedUint struct { + Key string + Val *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogNamedUint is a free log retrieval operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogNamedUint(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogNamedUintIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogNamedUintIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_named_uint", logs: logs, sub: sub}, nil +} + +// WatchLogNamedUint is a free log subscription operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogNamedUint(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogNamedUint) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_named_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogNamedUint) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogNamedUint is a log parse operation binding the contract event 0xb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8. +// +// Solidity: event log_named_uint(string key, uint256 val) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogNamedUint(log types.Log) (*ZetaConnectorNonNativeTestLogNamedUint, error) { + event := new(ZetaConnectorNonNativeTestLogNamedUint) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_named_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogStringIterator is returned from FilterLogString and is used to iterate over the raw logs and unpacked data for LogString events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogStringIterator struct { + Event *ZetaConnectorNonNativeTestLogString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogString represents a LogString event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogString struct { + Arg0 string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogString is a free log retrieval operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogString(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogStringIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_string") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogStringIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_string", logs: logs, sub: sub}, nil +} + +// WatchLogString is a free log subscription operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogString(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogString) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_string") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogString) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_string", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogString is a log parse operation binding the contract event 0x0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b. +// +// Solidity: event log_string(string arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogString(log types.Log) (*ZetaConnectorNonNativeTestLogString, error) { + event := new(ZetaConnectorNonNativeTestLogString) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_string", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogUintIterator is returned from FilterLogUint and is used to iterate over the raw logs and unpacked data for LogUint events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogUintIterator struct { + Event *ZetaConnectorNonNativeTestLogUint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogUintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogUint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogUintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogUintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogUint represents a LogUint event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogUint struct { + Arg0 *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogUint is a free log retrieval operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogUint(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogUintIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogUintIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "log_uint", logs: logs, sub: sub}, nil +} + +// WatchLogUint is a free log subscription operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogUint(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogUint) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "log_uint") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogUint) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogUint is a log parse operation binding the contract event 0x2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755. +// +// Solidity: event log_uint(uint256 arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogUint(log types.Log) (*ZetaConnectorNonNativeTestLogUint, error) { + event := new(ZetaConnectorNonNativeTestLogUint) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "log_uint", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeTestLogsIterator is returned from FilterLogs and is used to iterate over the raw logs and unpacked data for Logs events raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogsIterator struct { + Event *ZetaConnectorNonNativeTestLogs // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeTestLogsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeTestLogs) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeTestLogsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeTestLogsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeTestLogs represents a Logs event raised by the ZetaConnectorNonNativeTest contract. +type ZetaConnectorNonNativeTestLogs struct { + Arg0 []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogs is a free log retrieval operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) FilterLogs(opts *bind.FilterOpts) (*ZetaConnectorNonNativeTestLogsIterator, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.FilterLogs(opts, "logs") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeTestLogsIterator{contract: _ZetaConnectorNonNativeTest.contract, event: "logs", logs: logs, sub: sub}, nil +} + +// WatchLogs is a free log subscription operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) WatchLogs(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeTestLogs) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNativeTest.contract.WatchLogs(opts, "logs") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeTestLogs) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "logs", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseLogs is a log parse operation binding the contract event 0xe7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4. +// +// Solidity: event logs(bytes arg0) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestFilterer) ParseLogs(log types.Log) (*ZetaConnectorNonNativeTestLogs, error) { + event := new(ZetaConnectorNonNativeTestLogs) + if err := _ZetaConnectorNonNativeTest.contract.UnpackLog(event, "logs", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/zrc20new.sol/zrc20errors.go b/v2/pkg/zrc20new.sol/zrc20errors.go new file mode 100644 index 00000000..0e2f5b87 --- /dev/null +++ b/v2/pkg/zrc20new.sol/zrc20errors.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zrc20new + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZRC20ErrorsMetaData contains all meta data concerning the ZRC20Errors contract. +var ZRC20ErrorsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GasFeeTransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"LowAllowance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"LowBalance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroGasCoin\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroGasPrice\",\"inputs\":[]}]", +} + +// ZRC20ErrorsABI is the input ABI used to generate the binding from. +// Deprecated: Use ZRC20ErrorsMetaData.ABI instead. +var ZRC20ErrorsABI = ZRC20ErrorsMetaData.ABI + +// ZRC20Errors is an auto generated Go binding around an Ethereum contract. +type ZRC20Errors struct { + ZRC20ErrorsCaller // Read-only binding to the contract + ZRC20ErrorsTransactor // Write-only binding to the contract + ZRC20ErrorsFilterer // Log filterer for contract events +} + +// ZRC20ErrorsCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZRC20ErrorsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20ErrorsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZRC20ErrorsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20ErrorsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZRC20ErrorsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20ErrorsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZRC20ErrorsSession struct { + Contract *ZRC20Errors // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZRC20ErrorsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZRC20ErrorsCallerSession struct { + Contract *ZRC20ErrorsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZRC20ErrorsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZRC20ErrorsTransactorSession struct { + Contract *ZRC20ErrorsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZRC20ErrorsRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZRC20ErrorsRaw struct { + Contract *ZRC20Errors // Generic contract binding to access the raw methods on +} + +// ZRC20ErrorsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZRC20ErrorsCallerRaw struct { + Contract *ZRC20ErrorsCaller // Generic read-only contract binding to access the raw methods on +} + +// ZRC20ErrorsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZRC20ErrorsTransactorRaw struct { + Contract *ZRC20ErrorsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZRC20Errors creates a new instance of ZRC20Errors, bound to a specific deployed contract. +func NewZRC20Errors(address common.Address, backend bind.ContractBackend) (*ZRC20Errors, error) { + contract, err := bindZRC20Errors(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZRC20Errors{ZRC20ErrorsCaller: ZRC20ErrorsCaller{contract: contract}, ZRC20ErrorsTransactor: ZRC20ErrorsTransactor{contract: contract}, ZRC20ErrorsFilterer: ZRC20ErrorsFilterer{contract: contract}}, nil +} + +// NewZRC20ErrorsCaller creates a new read-only instance of ZRC20Errors, bound to a specific deployed contract. +func NewZRC20ErrorsCaller(address common.Address, caller bind.ContractCaller) (*ZRC20ErrorsCaller, error) { + contract, err := bindZRC20Errors(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZRC20ErrorsCaller{contract: contract}, nil +} + +// NewZRC20ErrorsTransactor creates a new write-only instance of ZRC20Errors, bound to a specific deployed contract. +func NewZRC20ErrorsTransactor(address common.Address, transactor bind.ContractTransactor) (*ZRC20ErrorsTransactor, error) { + contract, err := bindZRC20Errors(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZRC20ErrorsTransactor{contract: contract}, nil +} + +// NewZRC20ErrorsFilterer creates a new log filterer instance of ZRC20Errors, bound to a specific deployed contract. +func NewZRC20ErrorsFilterer(address common.Address, filterer bind.ContractFilterer) (*ZRC20ErrorsFilterer, error) { + contract, err := bindZRC20Errors(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZRC20ErrorsFilterer{contract: contract}, nil +} + +// bindZRC20Errors binds a generic wrapper to an already deployed contract. +func bindZRC20Errors(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZRC20ErrorsMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZRC20Errors *ZRC20ErrorsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZRC20Errors.Contract.ZRC20ErrorsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZRC20Errors *ZRC20ErrorsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZRC20Errors.Contract.ZRC20ErrorsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZRC20Errors *ZRC20ErrorsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZRC20Errors.Contract.ZRC20ErrorsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZRC20Errors *ZRC20ErrorsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZRC20Errors.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZRC20Errors *ZRC20ErrorsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZRC20Errors.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZRC20Errors *ZRC20ErrorsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZRC20Errors.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/zrc20new.sol/zrc20new.go b/v2/pkg/zrc20new.sol/zrc20new.go new file mode 100644 index 00000000..aceb41d1 --- /dev/null +++ b/v2/pkg/zrc20new.sol/zrc20new.go @@ -0,0 +1,1831 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zrc20new + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ZRC20NewMetaData contains all meta data concerning the ZRC20New contract. +var ZRC20NewMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"name_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"symbol_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"decimals_\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"chainid_\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"coinType_\",\"type\":\"uint8\",\"internalType\":\"enumCoinType\"},{\"name\":\"gasLimit_\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"systemContractAddress_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"gatewayContractAddress_\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"CHAIN_ID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"COIN_TYPE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumCoinType\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"FUNGIBLE_MODULE_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"GAS_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"GATEWAY_CONTRACT_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PROTOCOL_FLAT_FEE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"SYSTEM_CONTRACT_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateGasLimit\",\"inputs\":[{\"name\":\"gasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateProtocolFlatFee\",\"inputs\":[{\"name\":\"protocolFlatFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateSystemContractAddress\",\"inputs\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawGasFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"from\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UpdatedGasLimit\",\"inputs\":[{\"name\":\"gasLimit\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UpdatedProtocolFlatFee\",\"inputs\":[{\"name\":\"protocolFlatFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UpdatedSystemContract\",\"inputs\":[{\"name\":\"systemContract\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"gasFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"protocolFlatFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GasFeeTransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"LowAllowance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"LowBalance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroGasCoin\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroGasPrice\",\"inputs\":[]}]", + Bin: "0x60c060405234801561001057600080fd5b506040516119e83803806119e883398101604081905261002f916101db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600761006f898261032d565b50600861007c888261032d565b506009805460ff191660ff881617905560808590528360028111156100a3576100a36103eb565b60a08160028111156100b7576100b76103eb565b905250600292909255600080546001600160a01b039283166001600160a01b03199182161790915560018054929093169116179055506104019350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011e57600080fd5b81516001600160401b03811115610137576101376100f7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610165576101656100f7565b60405281815283820160200185101561017d57600080fd5b60005b8281101561019c57602081860181015183830182015201610180565b506000918101602001919091529392505050565b8051600381106101bf57600080fd5b919050565b80516001600160a01b03811681146101bf57600080fd5b600080600080600080600080610100898b0312156101f857600080fd5b88516001600160401b0381111561020e57600080fd5b61021a8b828c0161010d565b60208b015190995090506001600160401b0381111561023857600080fd5b6102448b828c0161010d565b975050604089015160ff8116811461025b57600080fd5b60608a0151909650945061027160808a016101b0565b60a08a0151909450925061028760c08a016101c4565b915061029560e08a016101c4565b90509295985092959890939650565b600181811c908216806102b857607f821691505b6020821081036102d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561032857806000526020600020601f840160051c810160208510156103055750805b601f840160051c820191505b818110156103255760008155600101610311565b50505b505050565b81516001600160401b03811115610346576103466100f7565b61035a8161035484546102a4565b846102de565b6020601f82116001811461038e57600083156103765750848201515b600019600385901b1c1916600184901b178455610325565b600084815260208120601f198516915b828110156103be578785015182556020948501946001909201910161039e565b50848210156103dc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805160a0516115b461043460003960006102f30152600081816102c4015281816109430152610a4901526115b46000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806385e1f4d0116100e3578063d9eeebed1161008c578063eddeb12311610066578063eddeb123146103f7578063f2441b321461040a578063f687d12a1461042a57600080fd5b8063d9eeebed1461035d578063dd62ed3e14610391578063e2f535b8146103d757600080fd5b8063a9059cbb116100bd578063a9059cbb14610322578063c701262614610335578063c835d7cc1461034857600080fd5b806385e1f4d0146102bf57806395d89b41146102e6578063a3413d03146102ee57600080fd5b8063313ce5671161014557806347e7ef241161011f57806347e7ef241461026d5780634d8943bb1461028057806370a082311461028957600080fd5b8063313ce567146102055780633ce4a5bc1461021a57806342966c681461025a57600080fd5b8063095ea7b311610176578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101f257600080fd5b806306fdde0314610192578063091d2788146101b0575b600080fd5b61019a61043d565b6040516101a79190611193565b60405180910390f35b6101b960025481565b6040519081526020016101a7565b6101da6101d53660046111d2565b6104cf565b60405190151581526020016101a7565b6006546101b9565b6101da6102003660046111fe565b6104e6565b60095460405160ff90911681526020016101a7565b61023573735b14bb79463307aacbed86daf3322b1e6226ab81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101da61026836600461123f565b61057d565b6101da61027b3660046111d2565b610591565b6101b960035481565b6101b9610297366004611258565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61019a6106e5565b6103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a79190611275565b6101da6103303660046111d2565b6106f4565b6101da6103433660046112e5565b610701565b61035b610356366004611258565b610850565b005b610365610917565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6101b961039f3660046113dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b6001546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61040536600461123f565b610b35565b6000546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61043836600461123f565b610bb7565b60606007805461044c90611416565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611416565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc338484610c39565b5060015b92915050565b60006104f3848484610d42565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083203384529091529020548281101561055e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610572853361056d8685611498565b610c39565b506001949350505050565b60006105893383610efd565b506001919050565b60003373735b14bb79463307aacbed86daf3322b1e6226ab148015906105cf575060005473ffffffffffffffffffffffffffffffffffffffff163314155b80156105f3575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561062a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610634838361103f565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8416907f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab390603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526106d49186906114ab565b60405180910390a250600192915050565b60606008805461044c90611416565b60006104dc338484610d42565b600080600061070e610917565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab602482015260448101829052919350915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906064016020604051808303816000875af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906114cd565b6107fa576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108043385610efd565b60035460405133917f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161083d918991899187916114ef565b60405180910390a2506001949350505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461089d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae906020015b60405180910390a150565b600080546040517f0be155470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201528291829173ffffffffffffffffffffffffffffffffffffffff90911690630be1554790602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce919061151e565b905073ffffffffffffffffffffffffffffffffffffffff8116610a1d576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517fd7fd7afb0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff9091169063d7fd7afb90602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061153b565b905080600003610b0c576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610b1f9190611554565b610b29919061156b565b92959294509192505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610b82576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f9060200161090c565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610c04576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a9060200161090c565b73ffffffffffffffffffffffffffffffffffffffff8316610c86576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cd3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d8f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ddc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205481811015610e3c576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e468282611498565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600460205260408082209390935590851681529081208054849290610e8990849061156b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eef91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610f4a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481811015610faa576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb48282611498565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081209190915560068054849290610fef908490611498565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d35565b73ffffffffffffffffffffffffffffffffffffffff821661108c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806006600082825461109e919061156b565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906110d890849061156b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000815180845260005b8181101561115557602081850181015186830182015201611139565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111a6602083018461112f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b60008060006060848603121561121357600080fd5b833561121e816111ad565b9250602084013561122e816111ad565b929592945050506040919091013590565b60006020828403121561125157600080fd5b5035919050565b60006020828403121561126a57600080fd5b81356111a6816111ad565b60208101600383106112b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156112f857600080fd5b823567ffffffffffffffff81111561130f57600080fd5b8301601f8101851361132057600080fd5b803567ffffffffffffffff81111561133a5761133a6112b6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113a6576113a66112b6565b6040528181528282016020018710156113be57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600080604083850312156113f057600080fd5b82356113fb816111ad565b9150602083013561140b816111ad565b809150509250929050565b600181811c9082168061142a57607f821691505b602082108103611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104e0576104e0611469565b6040815260006114be604083018561112f565b90508260208301529392505050565b6000602082840312156114df57600080fd5b815180151581146111a657600080fd5b608081526000611502608083018761112f565b6020830195909552506040810192909252606090910152919050565b60006020828403121561153057600080fd5b81516111a6816111ad565b60006020828403121561154d57600080fd5b5051919050565b80820281158282048414176104e0576104e0611469565b808201808211156104e0576104e061146956fea26469706673582212207bc62dfdede7c005315010b4244c5d1661fb65fbf23259603e26342f3a5148c464736f6c634300081a0033", +} + +// ZRC20NewABI is the input ABI used to generate the binding from. +// Deprecated: Use ZRC20NewMetaData.ABI instead. +var ZRC20NewABI = ZRC20NewMetaData.ABI + +// ZRC20NewBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ZRC20NewMetaData.Bin instead. +var ZRC20NewBin = ZRC20NewMetaData.Bin + +// DeployZRC20New deploys a new Ethereum contract, binding an instance of ZRC20New to it. +func DeployZRC20New(auth *bind.TransactOpts, backend bind.ContractBackend, name_ string, symbol_ string, decimals_ uint8, chainid_ *big.Int, coinType_ uint8, gasLimit_ *big.Int, systemContractAddress_ common.Address, gatewayContractAddress_ common.Address) (common.Address, *types.Transaction, *ZRC20New, error) { + parsed, err := ZRC20NewMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ZRC20NewBin), backend, name_, symbol_, decimals_, chainid_, coinType_, gasLimit_, systemContractAddress_, gatewayContractAddress_) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ZRC20New{ZRC20NewCaller: ZRC20NewCaller{contract: contract}, ZRC20NewTransactor: ZRC20NewTransactor{contract: contract}, ZRC20NewFilterer: ZRC20NewFilterer{contract: contract}}, nil +} + +// ZRC20New is an auto generated Go binding around an Ethereum contract. +type ZRC20New struct { + ZRC20NewCaller // Read-only binding to the contract + ZRC20NewTransactor // Write-only binding to the contract + ZRC20NewFilterer // Log filterer for contract events +} + +// ZRC20NewCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZRC20NewCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20NewTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZRC20NewTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20NewFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZRC20NewFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20NewSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZRC20NewSession struct { + Contract *ZRC20New // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZRC20NewCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZRC20NewCallerSession struct { + Contract *ZRC20NewCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZRC20NewTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZRC20NewTransactorSession struct { + Contract *ZRC20NewTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZRC20NewRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZRC20NewRaw struct { + Contract *ZRC20New // Generic contract binding to access the raw methods on +} + +// ZRC20NewCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZRC20NewCallerRaw struct { + Contract *ZRC20NewCaller // Generic read-only contract binding to access the raw methods on +} + +// ZRC20NewTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZRC20NewTransactorRaw struct { + Contract *ZRC20NewTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZRC20New creates a new instance of ZRC20New, bound to a specific deployed contract. +func NewZRC20New(address common.Address, backend bind.ContractBackend) (*ZRC20New, error) { + contract, err := bindZRC20New(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZRC20New{ZRC20NewCaller: ZRC20NewCaller{contract: contract}, ZRC20NewTransactor: ZRC20NewTransactor{contract: contract}, ZRC20NewFilterer: ZRC20NewFilterer{contract: contract}}, nil +} + +// NewZRC20NewCaller creates a new read-only instance of ZRC20New, bound to a specific deployed contract. +func NewZRC20NewCaller(address common.Address, caller bind.ContractCaller) (*ZRC20NewCaller, error) { + contract, err := bindZRC20New(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZRC20NewCaller{contract: contract}, nil +} + +// NewZRC20NewTransactor creates a new write-only instance of ZRC20New, bound to a specific deployed contract. +func NewZRC20NewTransactor(address common.Address, transactor bind.ContractTransactor) (*ZRC20NewTransactor, error) { + contract, err := bindZRC20New(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZRC20NewTransactor{contract: contract}, nil +} + +// NewZRC20NewFilterer creates a new log filterer instance of ZRC20New, bound to a specific deployed contract. +func NewZRC20NewFilterer(address common.Address, filterer bind.ContractFilterer) (*ZRC20NewFilterer, error) { + contract, err := bindZRC20New(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZRC20NewFilterer{contract: contract}, nil +} + +// bindZRC20New binds a generic wrapper to an already deployed contract. +func bindZRC20New(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZRC20NewMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZRC20New *ZRC20NewRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZRC20New.Contract.ZRC20NewCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZRC20New *ZRC20NewRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZRC20New.Contract.ZRC20NewTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZRC20New *ZRC20NewRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZRC20New.Contract.ZRC20NewTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ZRC20New *ZRC20NewCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZRC20New.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ZRC20New *ZRC20NewTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZRC20New.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZRC20New *ZRC20NewTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZRC20New.Contract.contract.Transact(opts, method, params...) +} + +// CHAINID is a free data retrieval call binding the contract method 0x85e1f4d0. +// +// Solidity: function CHAIN_ID() view returns(uint256) +func (_ZRC20New *ZRC20NewCaller) CHAINID(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "CHAIN_ID") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CHAINID is a free data retrieval call binding the contract method 0x85e1f4d0. +// +// Solidity: function CHAIN_ID() view returns(uint256) +func (_ZRC20New *ZRC20NewSession) CHAINID() (*big.Int, error) { + return _ZRC20New.Contract.CHAINID(&_ZRC20New.CallOpts) +} + +// CHAINID is a free data retrieval call binding the contract method 0x85e1f4d0. +// +// Solidity: function CHAIN_ID() view returns(uint256) +func (_ZRC20New *ZRC20NewCallerSession) CHAINID() (*big.Int, error) { + return _ZRC20New.Contract.CHAINID(&_ZRC20New.CallOpts) +} + +// COINTYPE is a free data retrieval call binding the contract method 0xa3413d03. +// +// Solidity: function COIN_TYPE() view returns(uint8) +func (_ZRC20New *ZRC20NewCaller) COINTYPE(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "COIN_TYPE") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// COINTYPE is a free data retrieval call binding the contract method 0xa3413d03. +// +// Solidity: function COIN_TYPE() view returns(uint8) +func (_ZRC20New *ZRC20NewSession) COINTYPE() (uint8, error) { + return _ZRC20New.Contract.COINTYPE(&_ZRC20New.CallOpts) +} + +// COINTYPE is a free data retrieval call binding the contract method 0xa3413d03. +// +// Solidity: function COIN_TYPE() view returns(uint8) +func (_ZRC20New *ZRC20NewCallerSession) COINTYPE() (uint8, error) { + return _ZRC20New.Contract.COINTYPE(&_ZRC20New.CallOpts) +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_ZRC20New *ZRC20NewCaller) FUNGIBLEMODULEADDRESS(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "FUNGIBLE_MODULE_ADDRESS") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_ZRC20New *ZRC20NewSession) FUNGIBLEMODULEADDRESS() (common.Address, error) { + return _ZRC20New.Contract.FUNGIBLEMODULEADDRESS(&_ZRC20New.CallOpts) +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_ZRC20New *ZRC20NewCallerSession) FUNGIBLEMODULEADDRESS() (common.Address, error) { + return _ZRC20New.Contract.FUNGIBLEMODULEADDRESS(&_ZRC20New.CallOpts) +} + +// GASLIMIT is a free data retrieval call binding the contract method 0x091d2788. +// +// Solidity: function GAS_LIMIT() view returns(uint256) +func (_ZRC20New *ZRC20NewCaller) GASLIMIT(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "GAS_LIMIT") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GASLIMIT is a free data retrieval call binding the contract method 0x091d2788. +// +// Solidity: function GAS_LIMIT() view returns(uint256) +func (_ZRC20New *ZRC20NewSession) GASLIMIT() (*big.Int, error) { + return _ZRC20New.Contract.GASLIMIT(&_ZRC20New.CallOpts) +} + +// GASLIMIT is a free data retrieval call binding the contract method 0x091d2788. +// +// Solidity: function GAS_LIMIT() view returns(uint256) +func (_ZRC20New *ZRC20NewCallerSession) GASLIMIT() (*big.Int, error) { + return _ZRC20New.Contract.GASLIMIT(&_ZRC20New.CallOpts) +} + +// GATEWAYCONTRACTADDRESS is a free data retrieval call binding the contract method 0xe2f535b8. +// +// Solidity: function GATEWAY_CONTRACT_ADDRESS() view returns(address) +func (_ZRC20New *ZRC20NewCaller) GATEWAYCONTRACTADDRESS(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "GATEWAY_CONTRACT_ADDRESS") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GATEWAYCONTRACTADDRESS is a free data retrieval call binding the contract method 0xe2f535b8. +// +// Solidity: function GATEWAY_CONTRACT_ADDRESS() view returns(address) +func (_ZRC20New *ZRC20NewSession) GATEWAYCONTRACTADDRESS() (common.Address, error) { + return _ZRC20New.Contract.GATEWAYCONTRACTADDRESS(&_ZRC20New.CallOpts) +} + +// GATEWAYCONTRACTADDRESS is a free data retrieval call binding the contract method 0xe2f535b8. +// +// Solidity: function GATEWAY_CONTRACT_ADDRESS() view returns(address) +func (_ZRC20New *ZRC20NewCallerSession) GATEWAYCONTRACTADDRESS() (common.Address, error) { + return _ZRC20New.Contract.GATEWAYCONTRACTADDRESS(&_ZRC20New.CallOpts) +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_ZRC20New *ZRC20NewCaller) PROTOCOLFLATFEE(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "PROTOCOL_FLAT_FEE") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_ZRC20New *ZRC20NewSession) PROTOCOLFLATFEE() (*big.Int, error) { + return _ZRC20New.Contract.PROTOCOLFLATFEE(&_ZRC20New.CallOpts) +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_ZRC20New *ZRC20NewCallerSession) PROTOCOLFLATFEE() (*big.Int, error) { + return _ZRC20New.Contract.PROTOCOLFLATFEE(&_ZRC20New.CallOpts) +} + +// SYSTEMCONTRACTADDRESS is a free data retrieval call binding the contract method 0xf2441b32. +// +// Solidity: function SYSTEM_CONTRACT_ADDRESS() view returns(address) +func (_ZRC20New *ZRC20NewCaller) SYSTEMCONTRACTADDRESS(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "SYSTEM_CONTRACT_ADDRESS") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// SYSTEMCONTRACTADDRESS is a free data retrieval call binding the contract method 0xf2441b32. +// +// Solidity: function SYSTEM_CONTRACT_ADDRESS() view returns(address) +func (_ZRC20New *ZRC20NewSession) SYSTEMCONTRACTADDRESS() (common.Address, error) { + return _ZRC20New.Contract.SYSTEMCONTRACTADDRESS(&_ZRC20New.CallOpts) +} + +// SYSTEMCONTRACTADDRESS is a free data retrieval call binding the contract method 0xf2441b32. +// +// Solidity: function SYSTEM_CONTRACT_ADDRESS() view returns(address) +func (_ZRC20New *ZRC20NewCallerSession) SYSTEMCONTRACTADDRESS() (common.Address, error) { + return _ZRC20New.Contract.SYSTEMCONTRACTADDRESS(&_ZRC20New.CallOpts) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ZRC20New *ZRC20NewCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ZRC20New *ZRC20NewSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ZRC20New.Contract.Allowance(&_ZRC20New.CallOpts, owner, spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ZRC20New *ZRC20NewCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ZRC20New.Contract.Allowance(&_ZRC20New.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZRC20New *ZRC20NewCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZRC20New *ZRC20NewSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ZRC20New.Contract.BalanceOf(&_ZRC20New.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZRC20New *ZRC20NewCallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ZRC20New.Contract.BalanceOf(&_ZRC20New.CallOpts, account) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ZRC20New *ZRC20NewCaller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ZRC20New *ZRC20NewSession) Decimals() (uint8, error) { + return _ZRC20New.Contract.Decimals(&_ZRC20New.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ZRC20New *ZRC20NewCallerSession) Decimals() (uint8, error) { + return _ZRC20New.Contract.Decimals(&_ZRC20New.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ZRC20New *ZRC20NewCaller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ZRC20New *ZRC20NewSession) Name() (string, error) { + return _ZRC20New.Contract.Name(&_ZRC20New.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ZRC20New *ZRC20NewCallerSession) Name() (string, error) { + return _ZRC20New.Contract.Name(&_ZRC20New.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ZRC20New *ZRC20NewCaller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ZRC20New *ZRC20NewSession) Symbol() (string, error) { + return _ZRC20New.Contract.Symbol(&_ZRC20New.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ZRC20New *ZRC20NewCallerSession) Symbol() (string, error) { + return _ZRC20New.Contract.Symbol(&_ZRC20New.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZRC20New *ZRC20NewCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZRC20New *ZRC20NewSession) TotalSupply() (*big.Int, error) { + return _ZRC20New.Contract.TotalSupply(&_ZRC20New.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZRC20New *ZRC20NewCallerSession) TotalSupply() (*big.Int, error) { + return _ZRC20New.Contract.TotalSupply(&_ZRC20New.CallOpts) +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_ZRC20New *ZRC20NewCaller) WithdrawGasFee(opts *bind.CallOpts) (common.Address, *big.Int, error) { + var out []interface{} + err := _ZRC20New.contract.Call(opts, &out, "withdrawGasFee") + + if err != nil { + return *new(common.Address), *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + out1 := *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) + + return out0, out1, err + +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_ZRC20New *ZRC20NewSession) WithdrawGasFee() (common.Address, *big.Int, error) { + return _ZRC20New.Contract.WithdrawGasFee(&_ZRC20New.CallOpts) +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_ZRC20New *ZRC20NewCallerSession) WithdrawGasFee() (common.Address, *big.Int, error) { + return _ZRC20New.Contract.WithdrawGasFee(&_ZRC20New.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.contract.Transact(opts, "approve", spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.Approve(&_ZRC20New.TransactOpts, spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.Approve(&_ZRC20New.TransactOpts, spender, amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.contract.Transact(opts, "burn", amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.Burn(&_ZRC20New.TransactOpts, amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactorSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.Burn(&_ZRC20New.TransactOpts, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactor) Deposit(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.contract.Transact(opts, "deposit", to, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewSession) Deposit(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.Deposit(&_ZRC20New.TransactOpts, to, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactorSession) Deposit(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.Deposit(&_ZRC20New.TransactOpts, to, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.contract.Transact(opts, "transfer", recipient, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.Transfer(&_ZRC20New.TransactOpts, recipient, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.Transfer(&_ZRC20New.TransactOpts, recipient, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.contract.Transact(opts, "transferFrom", sender, recipient, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.TransferFrom(&_ZRC20New.TransactOpts, sender, recipient, amount) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.TransferFrom(&_ZRC20New.TransactOpts, sender, recipient, amount) +} + +// UpdateGasLimit is a paid mutator transaction binding the contract method 0xf687d12a. +// +// Solidity: function updateGasLimit(uint256 gasLimit) returns() +func (_ZRC20New *ZRC20NewTransactor) UpdateGasLimit(opts *bind.TransactOpts, gasLimit *big.Int) (*types.Transaction, error) { + return _ZRC20New.contract.Transact(opts, "updateGasLimit", gasLimit) +} + +// UpdateGasLimit is a paid mutator transaction binding the contract method 0xf687d12a. +// +// Solidity: function updateGasLimit(uint256 gasLimit) returns() +func (_ZRC20New *ZRC20NewSession) UpdateGasLimit(gasLimit *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.UpdateGasLimit(&_ZRC20New.TransactOpts, gasLimit) +} + +// UpdateGasLimit is a paid mutator transaction binding the contract method 0xf687d12a. +// +// Solidity: function updateGasLimit(uint256 gasLimit) returns() +func (_ZRC20New *ZRC20NewTransactorSession) UpdateGasLimit(gasLimit *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.UpdateGasLimit(&_ZRC20New.TransactOpts, gasLimit) +} + +// UpdateProtocolFlatFee is a paid mutator transaction binding the contract method 0xeddeb123. +// +// Solidity: function updateProtocolFlatFee(uint256 protocolFlatFee) returns() +func (_ZRC20New *ZRC20NewTransactor) UpdateProtocolFlatFee(opts *bind.TransactOpts, protocolFlatFee *big.Int) (*types.Transaction, error) { + return _ZRC20New.contract.Transact(opts, "updateProtocolFlatFee", protocolFlatFee) +} + +// UpdateProtocolFlatFee is a paid mutator transaction binding the contract method 0xeddeb123. +// +// Solidity: function updateProtocolFlatFee(uint256 protocolFlatFee) returns() +func (_ZRC20New *ZRC20NewSession) UpdateProtocolFlatFee(protocolFlatFee *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.UpdateProtocolFlatFee(&_ZRC20New.TransactOpts, protocolFlatFee) +} + +// UpdateProtocolFlatFee is a paid mutator transaction binding the contract method 0xeddeb123. +// +// Solidity: function updateProtocolFlatFee(uint256 protocolFlatFee) returns() +func (_ZRC20New *ZRC20NewTransactorSession) UpdateProtocolFlatFee(protocolFlatFee *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.UpdateProtocolFlatFee(&_ZRC20New.TransactOpts, protocolFlatFee) +} + +// UpdateSystemContractAddress is a paid mutator transaction binding the contract method 0xc835d7cc. +// +// Solidity: function updateSystemContractAddress(address addr) returns() +func (_ZRC20New *ZRC20NewTransactor) UpdateSystemContractAddress(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { + return _ZRC20New.contract.Transact(opts, "updateSystemContractAddress", addr) +} + +// UpdateSystemContractAddress is a paid mutator transaction binding the contract method 0xc835d7cc. +// +// Solidity: function updateSystemContractAddress(address addr) returns() +func (_ZRC20New *ZRC20NewSession) UpdateSystemContractAddress(addr common.Address) (*types.Transaction, error) { + return _ZRC20New.Contract.UpdateSystemContractAddress(&_ZRC20New.TransactOpts, addr) +} + +// UpdateSystemContractAddress is a paid mutator transaction binding the contract method 0xc835d7cc. +// +// Solidity: function updateSystemContractAddress(address addr) returns() +func (_ZRC20New *ZRC20NewTransactorSession) UpdateSystemContractAddress(addr common.Address) (*types.Transaction, error) { + return _ZRC20New.Contract.UpdateSystemContractAddress(&_ZRC20New.TransactOpts, addr) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactor) Withdraw(opts *bind.TransactOpts, to []byte, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.contract.Transact(opts, "withdraw", to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewSession) Withdraw(to []byte, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.Withdraw(&_ZRC20New.TransactOpts, to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_ZRC20New *ZRC20NewTransactorSession) Withdraw(to []byte, amount *big.Int) (*types.Transaction, error) { + return _ZRC20New.Contract.Withdraw(&_ZRC20New.TransactOpts, to, amount) +} + +// ZRC20NewApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ZRC20New contract. +type ZRC20NewApprovalIterator struct { + Event *ZRC20NewApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20NewApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20NewApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20NewApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20NewApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20NewApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20NewApproval represents a Approval event raised by the ZRC20New contract. +type ZRC20NewApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZRC20New *ZRC20NewFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ZRC20NewApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ZRC20New.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &ZRC20NewApprovalIterator{contract: _ZRC20New.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZRC20New *ZRC20NewFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ZRC20NewApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ZRC20New.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20NewApproval) + if err := _ZRC20New.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_ZRC20New *ZRC20NewFilterer) ParseApproval(log types.Log) (*ZRC20NewApproval, error) { + event := new(ZRC20NewApproval) + if err := _ZRC20New.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20NewDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the ZRC20New contract. +type ZRC20NewDepositIterator struct { + Event *ZRC20NewDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20NewDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20NewDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20NewDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20NewDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20NewDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20NewDeposit represents a Deposit event raised by the ZRC20New contract. +type ZRC20NewDeposit struct { + From []byte + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3. +// +// Solidity: event Deposit(bytes from, address indexed to, uint256 value) +func (_ZRC20New *ZRC20NewFilterer) FilterDeposit(opts *bind.FilterOpts, to []common.Address) (*ZRC20NewDepositIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZRC20New.contract.FilterLogs(opts, "Deposit", toRule) + if err != nil { + return nil, err + } + return &ZRC20NewDepositIterator{contract: _ZRC20New.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3. +// +// Solidity: event Deposit(bytes from, address indexed to, uint256 value) +func (_ZRC20New *ZRC20NewFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *ZRC20NewDeposit, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZRC20New.contract.WatchLogs(opts, "Deposit", toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20NewDeposit) + if err := _ZRC20New.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3. +// +// Solidity: event Deposit(bytes from, address indexed to, uint256 value) +func (_ZRC20New *ZRC20NewFilterer) ParseDeposit(log types.Log) (*ZRC20NewDeposit, error) { + event := new(ZRC20NewDeposit) + if err := _ZRC20New.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20NewTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ZRC20New contract. +type ZRC20NewTransferIterator struct { + Event *ZRC20NewTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20NewTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20NewTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20NewTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20NewTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20NewTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20NewTransfer represents a Transfer event raised by the ZRC20New contract. +type ZRC20NewTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZRC20New *ZRC20NewFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ZRC20NewTransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZRC20New.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &ZRC20NewTransferIterator{contract: _ZRC20New.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZRC20New *ZRC20NewFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ZRC20NewTransfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZRC20New.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20NewTransfer) + if err := _ZRC20New.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed from, address indexed to, uint256 value) +func (_ZRC20New *ZRC20NewFilterer) ParseTransfer(log types.Log) (*ZRC20NewTransfer, error) { + event := new(ZRC20NewTransfer) + if err := _ZRC20New.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20NewUpdatedGasLimitIterator is returned from FilterUpdatedGasLimit and is used to iterate over the raw logs and unpacked data for UpdatedGasLimit events raised by the ZRC20New contract. +type ZRC20NewUpdatedGasLimitIterator struct { + Event *ZRC20NewUpdatedGasLimit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20NewUpdatedGasLimitIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20NewUpdatedGasLimit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20NewUpdatedGasLimit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20NewUpdatedGasLimitIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20NewUpdatedGasLimitIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20NewUpdatedGasLimit represents a UpdatedGasLimit event raised by the ZRC20New contract. +type ZRC20NewUpdatedGasLimit struct { + GasLimit *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpdatedGasLimit is a free log retrieval operation binding the contract event 0xff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a. +// +// Solidity: event UpdatedGasLimit(uint256 gasLimit) +func (_ZRC20New *ZRC20NewFilterer) FilterUpdatedGasLimit(opts *bind.FilterOpts) (*ZRC20NewUpdatedGasLimitIterator, error) { + + logs, sub, err := _ZRC20New.contract.FilterLogs(opts, "UpdatedGasLimit") + if err != nil { + return nil, err + } + return &ZRC20NewUpdatedGasLimitIterator{contract: _ZRC20New.contract, event: "UpdatedGasLimit", logs: logs, sub: sub}, nil +} + +// WatchUpdatedGasLimit is a free log subscription operation binding the contract event 0xff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a. +// +// Solidity: event UpdatedGasLimit(uint256 gasLimit) +func (_ZRC20New *ZRC20NewFilterer) WatchUpdatedGasLimit(opts *bind.WatchOpts, sink chan<- *ZRC20NewUpdatedGasLimit) (event.Subscription, error) { + + logs, sub, err := _ZRC20New.contract.WatchLogs(opts, "UpdatedGasLimit") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20NewUpdatedGasLimit) + if err := _ZRC20New.contract.UnpackLog(event, "UpdatedGasLimit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpdatedGasLimit is a log parse operation binding the contract event 0xff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a. +// +// Solidity: event UpdatedGasLimit(uint256 gasLimit) +func (_ZRC20New *ZRC20NewFilterer) ParseUpdatedGasLimit(log types.Log) (*ZRC20NewUpdatedGasLimit, error) { + event := new(ZRC20NewUpdatedGasLimit) + if err := _ZRC20New.contract.UnpackLog(event, "UpdatedGasLimit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20NewUpdatedProtocolFlatFeeIterator is returned from FilterUpdatedProtocolFlatFee and is used to iterate over the raw logs and unpacked data for UpdatedProtocolFlatFee events raised by the ZRC20New contract. +type ZRC20NewUpdatedProtocolFlatFeeIterator struct { + Event *ZRC20NewUpdatedProtocolFlatFee // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20NewUpdatedProtocolFlatFeeIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20NewUpdatedProtocolFlatFee) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20NewUpdatedProtocolFlatFee) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20NewUpdatedProtocolFlatFeeIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20NewUpdatedProtocolFlatFeeIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20NewUpdatedProtocolFlatFee represents a UpdatedProtocolFlatFee event raised by the ZRC20New contract. +type ZRC20NewUpdatedProtocolFlatFee struct { + ProtocolFlatFee *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpdatedProtocolFlatFee is a free log retrieval operation binding the contract event 0xef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f. +// +// Solidity: event UpdatedProtocolFlatFee(uint256 protocolFlatFee) +func (_ZRC20New *ZRC20NewFilterer) FilterUpdatedProtocolFlatFee(opts *bind.FilterOpts) (*ZRC20NewUpdatedProtocolFlatFeeIterator, error) { + + logs, sub, err := _ZRC20New.contract.FilterLogs(opts, "UpdatedProtocolFlatFee") + if err != nil { + return nil, err + } + return &ZRC20NewUpdatedProtocolFlatFeeIterator{contract: _ZRC20New.contract, event: "UpdatedProtocolFlatFee", logs: logs, sub: sub}, nil +} + +// WatchUpdatedProtocolFlatFee is a free log subscription operation binding the contract event 0xef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f. +// +// Solidity: event UpdatedProtocolFlatFee(uint256 protocolFlatFee) +func (_ZRC20New *ZRC20NewFilterer) WatchUpdatedProtocolFlatFee(opts *bind.WatchOpts, sink chan<- *ZRC20NewUpdatedProtocolFlatFee) (event.Subscription, error) { + + logs, sub, err := _ZRC20New.contract.WatchLogs(opts, "UpdatedProtocolFlatFee") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20NewUpdatedProtocolFlatFee) + if err := _ZRC20New.contract.UnpackLog(event, "UpdatedProtocolFlatFee", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpdatedProtocolFlatFee is a log parse operation binding the contract event 0xef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f. +// +// Solidity: event UpdatedProtocolFlatFee(uint256 protocolFlatFee) +func (_ZRC20New *ZRC20NewFilterer) ParseUpdatedProtocolFlatFee(log types.Log) (*ZRC20NewUpdatedProtocolFlatFee, error) { + event := new(ZRC20NewUpdatedProtocolFlatFee) + if err := _ZRC20New.contract.UnpackLog(event, "UpdatedProtocolFlatFee", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20NewUpdatedSystemContractIterator is returned from FilterUpdatedSystemContract and is used to iterate over the raw logs and unpacked data for UpdatedSystemContract events raised by the ZRC20New contract. +type ZRC20NewUpdatedSystemContractIterator struct { + Event *ZRC20NewUpdatedSystemContract // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20NewUpdatedSystemContractIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20NewUpdatedSystemContract) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20NewUpdatedSystemContract) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20NewUpdatedSystemContractIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20NewUpdatedSystemContractIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20NewUpdatedSystemContract represents a UpdatedSystemContract event raised by the ZRC20New contract. +type ZRC20NewUpdatedSystemContract struct { + SystemContract common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpdatedSystemContract is a free log retrieval operation binding the contract event 0xd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae. +// +// Solidity: event UpdatedSystemContract(address systemContract) +func (_ZRC20New *ZRC20NewFilterer) FilterUpdatedSystemContract(opts *bind.FilterOpts) (*ZRC20NewUpdatedSystemContractIterator, error) { + + logs, sub, err := _ZRC20New.contract.FilterLogs(opts, "UpdatedSystemContract") + if err != nil { + return nil, err + } + return &ZRC20NewUpdatedSystemContractIterator{contract: _ZRC20New.contract, event: "UpdatedSystemContract", logs: logs, sub: sub}, nil +} + +// WatchUpdatedSystemContract is a free log subscription operation binding the contract event 0xd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae. +// +// Solidity: event UpdatedSystemContract(address systemContract) +func (_ZRC20New *ZRC20NewFilterer) WatchUpdatedSystemContract(opts *bind.WatchOpts, sink chan<- *ZRC20NewUpdatedSystemContract) (event.Subscription, error) { + + logs, sub, err := _ZRC20New.contract.WatchLogs(opts, "UpdatedSystemContract") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20NewUpdatedSystemContract) + if err := _ZRC20New.contract.UnpackLog(event, "UpdatedSystemContract", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpdatedSystemContract is a log parse operation binding the contract event 0xd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae. +// +// Solidity: event UpdatedSystemContract(address systemContract) +func (_ZRC20New *ZRC20NewFilterer) ParseUpdatedSystemContract(log types.Log) (*ZRC20NewUpdatedSystemContract, error) { + event := new(ZRC20NewUpdatedSystemContract) + if err := _ZRC20New.contract.UnpackLog(event, "UpdatedSystemContract", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20NewWithdrawalIterator is returned from FilterWithdrawal and is used to iterate over the raw logs and unpacked data for Withdrawal events raised by the ZRC20New contract. +type ZRC20NewWithdrawalIterator struct { + Event *ZRC20NewWithdrawal // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20NewWithdrawalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20NewWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20NewWithdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20NewWithdrawalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20NewWithdrawalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20NewWithdrawal represents a Withdrawal event raised by the ZRC20New contract. +type ZRC20NewWithdrawal struct { + From common.Address + To []byte + Value *big.Int + GasFee *big.Int + ProtocolFlatFee *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawal is a free log retrieval operation binding the contract event 0x9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955. +// +// Solidity: event Withdrawal(address indexed from, bytes to, uint256 value, uint256 gasFee, uint256 protocolFlatFee) +func (_ZRC20New *ZRC20NewFilterer) FilterWithdrawal(opts *bind.FilterOpts, from []common.Address) (*ZRC20NewWithdrawalIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _ZRC20New.contract.FilterLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return &ZRC20NewWithdrawalIterator{contract: _ZRC20New.contract, event: "Withdrawal", logs: logs, sub: sub}, nil +} + +// WatchWithdrawal is a free log subscription operation binding the contract event 0x9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955. +// +// Solidity: event Withdrawal(address indexed from, bytes to, uint256 value, uint256 gasFee, uint256 protocolFlatFee) +func (_ZRC20New *ZRC20NewFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *ZRC20NewWithdrawal, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _ZRC20New.contract.WatchLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZRC20NewWithdrawal) + if err := _ZRC20New.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawal is a log parse operation binding the contract event 0x9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955. +// +// Solidity: event Withdrawal(address indexed from, bytes to, uint256 value, uint256 gasFee, uint256 protocolFlatFee) +func (_ZRC20New *ZRC20NewFilterer) ParseWithdrawal(log types.Log) (*ZRC20NewWithdrawal, error) { + event := new(ZRC20NewWithdrawal) + if err := _ZRC20New.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/scripts/generate_go.sh b/v2/scripts/generate_go.sh new file mode 100755 index 00000000..f896618f --- /dev/null +++ b/v2/scripts/generate_go.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +# Define the input and output directories +ARTIFACTS_DIR="./out" +OUTPUT_DIR="./pkg" + +rm -rf $OUTPUT_DIR + +# Create the output directory if it doesn't exist +mkdir -p $OUTPUT_DIR + +# Initialize error counter +errors=0 + +# Function to process JSON files and generate Go bindings +process_file() { + local contract="$1" + local subdir="$2" + + # Check if the JSON file contains "abi" and "bytecode" properties + if ! jq 'has("abi") and has("bytecode")' "$contract" | grep -q 'true'; then + return + fi + + # Extract the contract name from the file name (without the .json extension) + contract_name=$(basename "$contract" .json) + contract_name_lowercase=$(echo "$contract_name" | tr '[:upper:]' '[:lower:]') + + # Define output subdirectory and create it if it doesn't exist + output_subdir="$OUTPUT_DIR/${subdir/@/}" + output_subdir_lowercase=$(echo "$output_subdir" | tr '[:upper:]' '[:lower:]') + mkdir -p "$output_subdir_lowercase" + + package_name=$(basename "${subdir/@/}" | cut -d'.' -f1 | tr '[:upper:]' '[:lower:]') + + # Generate the Go binding for the contract + echo "Compiling $contract_name..." + cat "$contract" | jq .abi > "$output_subdir_lowercase/$contract_name.abi" + cat "$contract" | jq .bytecode.object | tr -d '\"' > "$output_subdir_lowercase/$contract_name.bin" + abigen --abi "$output_subdir_lowercase/$contract_name.abi" --bin "$output_subdir_lowercase/$contract_name.bin" --pkg "$package_name" --type "$contract_name" --out "$output_subdir_lowercase/$contract_name_lowercase.go" > /dev/null 2>&1 + # Check if there were errors during the compilation + if [ $? -ne 0 ]; then + echo "Error: Failed to compile $contract_name" + errors=$((errors + 1)) + fi + + # Remove temporary .abi and .bin files + rm "$output_subdir_lowercase/$contract_name.abi" "$output_subdir_lowercase/$contract_name.bin" +} + +# Function to iterate through the artifacts directory +iterate_directory() { + local parent="$1" + local subdir="$2" + + for entry in "$parent"/*; do + if [ -d "$entry" ]; then + local new_subdir + if [ -z "$subdir" ]; then + new_subdir=$(basename "$entry") + else + new_subdir="$subdir/$(basename "$entry")" + fi + iterate_directory "$entry" "$new_subdir" + elif [ -f "$entry" ] && [ "${entry##*.}" = "json" ]; then + process_file "$entry" "$subdir" + fi + done +} + +echo -e "" + +iterate_directory "$ARTIFACTS_DIR" + +echo -e "" + +if [ $errors -eq 0 ]; then + echo "All contracts have been compiled successfully." +else + echo "There were $errors error(s) during the compilation process." +fi + +echo -e "" \ No newline at end of file diff --git a/v2/scripts/localnet/EvmCall.s.sol b/v2/scripts/localnet/EvmCall.s.sol index c8b142be..85a4fb70 100644 --- a/v2/scripts/localnet/EvmCall.s.sol +++ b/v2/scripts/localnet/EvmCall.s.sol @@ -1,5 +1,5 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.20; +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; import "forge-std/Script.sol"; import "src/evm/GatewayEVM.sol"; diff --git a/v2/scripts/localnet/EvmDepositAndCall.s.sol b/v2/scripts/localnet/EvmDepositAndCall.s.sol index 284b010e..e44c3e88 100644 --- a/v2/scripts/localnet/EvmDepositAndCall.s.sol +++ b/v2/scripts/localnet/EvmDepositAndCall.s.sol @@ -1,5 +1,5 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.20; +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; import "forge-std/Script.sol"; import "src/evm/GatewayEVM.sol"; diff --git a/v2/scripts/localnet/ZevmCall.s.sol b/v2/scripts/localnet/ZevmCall.s.sol index 544b90d6..f787f0b9 100644 --- a/v2/scripts/localnet/ZevmCall.s.sol +++ b/v2/scripts/localnet/ZevmCall.s.sol @@ -1,5 +1,5 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.20; +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; import "forge-std/Script.sol"; import "src/zevm/GatewayZEVM.sol"; diff --git a/v2/scripts/localnet/ZevmWithdrawAndCall.s.sol b/v2/scripts/localnet/ZevmWithdrawAndCall.s.sol index 2cec8a66..2db54f6d 100644 --- a/v2/scripts/localnet/ZevmWithdrawAndCall.s.sol +++ b/v2/scripts/localnet/ZevmWithdrawAndCall.s.sol @@ -1,5 +1,5 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.20; +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; import "forge-std/Script.sol"; import "src/zevm/GatewayZEVM.sol"; diff --git a/v2/src/evm/ERC20CustodyNew.sol b/v2/src/evm/ERC20CustodyNew.sol index 963afa3d..66580925 100644 --- a/v2/src/evm/ERC20CustodyNew.sol +++ b/v2/src/evm/ERC20CustodyNew.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "./interfaces//IGatewayEVM.sol"; import "./interfaces/IERC20CustodyNew.sol"; diff --git a/v2/src/evm/GatewayEVM.sol b/v2/src/evm/GatewayEVM.sol index e69abb1b..b064154f 100644 --- a/v2/src/evm/GatewayEVM.sol +++ b/v2/src/evm/GatewayEVM.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "./ZetaConnectorNewBase.sol"; import "./interfaces/IGatewayEVM.sol"; diff --git a/v2/src/evm/ZetaConnectorNative.sol b/v2/src/evm/ZetaConnectorNative.sol index 860c4f6d..38291ba1 100644 --- a/v2/src/evm/ZetaConnectorNative.sol +++ b/v2/src/evm/ZetaConnectorNative.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "./ZetaConnectorNewBase.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; diff --git a/v2/src/evm/ZetaConnectorNewBase.sol b/v2/src/evm/ZetaConnectorNewBase.sol index 7295ecde..62be9d83 100644 --- a/v2/src/evm/ZetaConnectorNewBase.sol +++ b/v2/src/evm/ZetaConnectorNewBase.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; diff --git a/v2/src/evm/ZetaConnectorNonNative.sol b/v2/src/evm/ZetaConnectorNonNative.sol index a9870e18..b16544d1 100644 --- a/v2/src/evm/ZetaConnectorNonNative.sol +++ b/v2/src/evm/ZetaConnectorNonNative.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "./ZetaConnectorNewBase.sol"; import "./interfaces/IZetaNonEthNew.sol"; diff --git a/v2/src/evm/interfaces/IERC20CustodyNew.sol b/v2/src/evm/interfaces/IERC20CustodyNew.sol index e4015f98..27978071 100644 --- a/v2/src/evm/interfaces/IERC20CustodyNew.sol +++ b/v2/src/evm/interfaces/IERC20CustodyNew.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; /// @title IERC20CustodyNewEvents /// @notice Interface for the events emitted by the ERC20 custody contract. diff --git a/v2/src/evm/interfaces/IGatewayEVM.sol b/v2/src/evm/interfaces/IGatewayEVM.sol index 424dbba7..75c41562 100644 --- a/v2/src/evm/interfaces/IGatewayEVM.sol +++ b/v2/src/evm/interfaces/IGatewayEVM.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; /// @title IGatewayEVMEvents /// @notice Interface for the events emitted by the GatewayEVM contract. diff --git a/v2/src/evm/interfaces/IZetaConnector.sol b/v2/src/evm/interfaces/IZetaConnector.sol index b53a1eb7..0e7794df 100644 --- a/v2/src/evm/interfaces/IZetaConnector.sol +++ b/v2/src/evm/interfaces/IZetaConnector.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; /// @title IZetaConnectorEvents /// @notice Interface for the events emitted by the ZetaConnector contracts. diff --git a/v2/src/evm/interfaces/IZetaNonEthNew.sol b/v2/src/evm/interfaces/IZetaNonEthNew.sol index 094debdf..11b9ee3c 100644 --- a/v2/src/evm/interfaces/IZetaNonEthNew.sol +++ b/v2/src/evm/interfaces/IZetaNonEthNew.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; diff --git a/v2/src/zevm/GatewayZEVM.sol b/v2/src/zevm/GatewayZEVM.sol index 426475d8..834d4743 100644 --- a/v2/src/zevm/GatewayZEVM.sol +++ b/v2/src/zevm/GatewayZEVM.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "./interfaces/IGatewayZEVM.sol"; import "./interfaces/IWZETA.sol"; diff --git a/v2/src/zevm/interfaces/IGatewayZEVM.sol b/v2/src/zevm/interfaces/IGatewayZEVM.sol index 2b9a7ff6..307c07a2 100644 --- a/v2/src/zevm/interfaces/IGatewayZEVM.sol +++ b/v2/src/zevm/interfaces/IGatewayZEVM.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "./zContract.sol"; diff --git a/v2/src/zevm/interfaces/ISystem.sol b/v2/src/zevm/interfaces/ISystem.sol index 6a9e4585..c91f2b4c 100644 --- a/v2/src/zevm/interfaces/ISystem.sol +++ b/v2/src/zevm/interfaces/ISystem.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; /// @title ISystem /// @notice Interface for the System contract. diff --git a/v2/src/zevm/interfaces/IWZETA.sol b/v2/src/zevm/interfaces/IWZETA.sol index 5c5c4b73..1e0ada56 100644 --- a/v2/src/zevm/interfaces/IWZETA.sol +++ b/v2/src/zevm/interfaces/IWZETA.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; /// @title IWETH9 /// @notice Interface for the Weth9 contract. diff --git a/v2/src/zevm/interfaces/IZRC20.sol b/v2/src/zevm/interfaces/IZRC20.sol index bb383621..8987c6ea 100644 --- a/v2/src/zevm/interfaces/IZRC20.sol +++ b/v2/src/zevm/interfaces/IZRC20.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; /// @title IZRC20 /// @notice Interface for the ZRC20 token contract. diff --git a/v2/src/zevm/interfaces/zContract.sol b/v2/src/zevm/interfaces/zContract.sol index 4470994f..45013a93 100644 --- a/v2/src/zevm/interfaces/zContract.sol +++ b/v2/src/zevm/interfaces/zContract.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; struct zContext { bytes origin; diff --git a/v2/test/GatewayEVM.t.sol b/v2/test/GatewayEVM.t.sol index b1b6c5c0..b18bc34a 100644 --- a/v2/test/GatewayEVM.t.sol +++ b/v2/test/GatewayEVM.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; diff --git a/v2/test/GatewayEVMUpgrade.t.sol b/v2/test/GatewayEVMUpgrade.t.sol index c9581dc6..bc447638 100644 --- a/v2/test/GatewayEVMUpgrade.t.sol +++ b/v2/test/GatewayEVMUpgrade.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; diff --git a/v2/test/GatewayEVMZEVM.t.sol b/v2/test/GatewayEVMZEVM.t.sol index cb62da47..4a9b84c6 100644 --- a/v2/test/GatewayEVMZEVM.t.sol +++ b/v2/test/GatewayEVMZEVM.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; diff --git a/v2/test/GatewayZEVM.t.sol b/v2/test/GatewayZEVM.t.sol index a19e0546..f6132b90 100644 --- a/v2/test/GatewayZEVM.t.sol +++ b/v2/test/GatewayZEVM.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; diff --git a/v2/test/ZetaConnectorNative.t.sol b/v2/test/ZetaConnectorNative.t.sol index 9960da26..f03e4a81 100644 --- a/v2/test/ZetaConnectorNative.t.sol +++ b/v2/test/ZetaConnectorNative.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; diff --git a/v2/test/ZetaConnectorNonNative.t.sol b/v2/test/ZetaConnectorNonNative.t.sol index 5aac070a..bc993b2d 100644 --- a/v2/test/ZetaConnectorNonNative.t.sol +++ b/v2/test/ZetaConnectorNonNative.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; diff --git a/v2/test/fuzz/ERC20CustodyNewEchidnaTest.sol b/v2/test/fuzz/ERC20CustodyNewEchidnaTest.sol index f0d8b686..f44728ee 100644 --- a/v2/test/fuzz/ERC20CustodyNewEchidnaTest.sol +++ b/v2/test/fuzz/ERC20CustodyNewEchidnaTest.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; diff --git a/v2/test/fuzz/GatewayEVMEchidnaTest.sol b/v2/test/fuzz/GatewayEVMEchidnaTest.sol index 684c4d21..3cc8e56b 100644 --- a/v2/test/fuzz/GatewayEVMEchidnaTest.sol +++ b/v2/test/fuzz/GatewayEVMEchidnaTest.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; diff --git a/v2/test/utils/GatewayEVMUpgradeTest.sol b/v2/test/utils/GatewayEVMUpgradeTest.sol index 7e910379..a56b941a 100644 --- a/v2/test/utils/GatewayEVMUpgradeTest.sol +++ b/v2/test/utils/GatewayEVMUpgradeTest.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; diff --git a/v2/test/utils/IReceiverEVM.sol b/v2/test/utils/IReceiverEVM.sol index 3d053d5e..3ed300f8 100644 --- a/v2/test/utils/IReceiverEVM.sol +++ b/v2/test/utils/IReceiverEVM.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; /// @title IReceiverEVMEvents /// @notice Interface for the events emitted by the ReceiverEVM contract. diff --git a/v2/test/utils/ReceiverEVM.sol b/v2/test/utils/ReceiverEVM.sol index a0d49a4e..76d1272a 100644 --- a/v2/test/utils/ReceiverEVM.sol +++ b/v2/test/utils/ReceiverEVM.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "./IReceiverEVM.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; diff --git a/v2/test/utils/SenderZEVM.sol b/v2/test/utils/SenderZEVM.sol index 5398647c..4af26ed1 100644 --- a/v2/test/utils/SenderZEVM.sol +++ b/v2/test/utils/SenderZEVM.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "src/zevm/interfaces/IGatewayZEVM.sol"; diff --git a/v2/test/utils/SystemContract.sol b/v2/test/utils/SystemContract.sol index 59027a1e..f11e2af1 100644 --- a/v2/test/utils/SystemContract.sol +++ b/v2/test/utils/SystemContract.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "src/zevm/interfaces/IZRC20.sol"; import "src/zevm/interfaces/zContract.sol"; diff --git a/v2/test/utils/SystemContractMock.sol b/v2/test/utils/SystemContractMock.sol index 423f2502..446429e8 100644 --- a/v2/test/utils/SystemContractMock.sol +++ b/v2/test/utils/SystemContractMock.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "src/zevm/interfaces/IZRC20.sol"; import "src/zevm/interfaces/zContract.sol"; diff --git a/v2/test/utils/TestERC20.sol b/v2/test/utils/TestERC20.sol index 8bca78de..5712f7fb 100644 --- a/v2/test/utils/TestERC20.sol +++ b/v2/test/utils/TestERC20.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; diff --git a/v2/test/utils/TestZContract.sol b/v2/test/utils/TestZContract.sol index c3f0837e..62003285 100644 --- a/v2/test/utils/TestZContract.sol +++ b/v2/test/utils/TestZContract.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "src/zevm/interfaces/zContract.sol"; diff --git a/v2/test/utils/WZETA.sol b/v2/test/utils/WZETA.sol index 21626b93..2ecb7047 100644 --- a/v2/test/utils/WZETA.sol +++ b/v2/test/utils/WZETA.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; contract WETH9 { string public name = "Wrapped Ether"; diff --git a/v2/test/utils/ZRC20New.sol b/v2/test/utils/ZRC20New.sol index 7ff4cad8..f720db56 100644 --- a/v2/test/utils/ZRC20New.sol +++ b/v2/test/utils/ZRC20New.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.26; import "src/zevm/interfaces/ISystem.sol"; import "src/zevm/interfaces/IZRC20.sol"; diff --git a/v2/test/utils/Zeta.non-eth.sol b/v2/test/utils/Zeta.non-eth.sol index a420890d..31414d7c 100644 --- a/v2/test/utils/Zeta.non-eth.sol +++ b/v2/test/utils/Zeta.non-eth.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; diff --git a/v2/typechain-types/Address.ts b/v2/typechain-types/Address.ts new file mode 100644 index 00000000..7e78a495 --- /dev/null +++ b/v2/typechain-types/Address.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "./common"; + +export interface AddressInterface extends Interface {} + +export interface Address extends BaseContract { + connect(runner?: ContractRunner | null): Address; + waitForDeployment(): Promise; + + interface: AddressInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/BeaconProxy.ts b/v2/typechain-types/BeaconProxy.ts new file mode 100644 index 00000000..4341e6c0 --- /dev/null +++ b/v2/typechain-types/BeaconProxy.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "./common"; + +export interface BeaconProxyInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; +} + +export namespace BeaconUpgradedEvent { + export type InputTuple = [beacon: AddressLike]; + export type OutputTuple = [beacon: string]; + export interface OutputObject { + beacon: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface BeaconProxy extends BaseContract { + connect(runner?: ContractRunner | null): BeaconProxy; + waitForDeployment(): Promise; + + interface: BeaconProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "BeaconUpgraded" + ): TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + + filters: { + "BeaconUpgraded(address)": TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + BeaconUpgraded: TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ContextUpgradeable.ts b/v2/typechain-types/ContextUpgradeable.ts new file mode 100644 index 00000000..bcdd7d0c --- /dev/null +++ b/v2/typechain-types/ContextUpgradeable.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + FunctionFragment, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "./common"; + +export interface ContextUpgradeableInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ContextUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): ContextUpgradeable; + waitForDeployment(): Promise; + + interface: ContextUpgradeableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ERC1967Proxy.ts b/v2/typechain-types/ERC1967Proxy.ts new file mode 100644 index 00000000..22888274 --- /dev/null +++ b/v2/typechain-types/ERC1967Proxy.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "./common"; + +export interface ERC1967ProxyInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC1967Proxy extends BaseContract { + connect(runner?: ContractRunner | null): ERC1967Proxy; + waitForDeployment(): Promise; + + interface: ERC1967ProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ERC1967Utils.ts b/v2/typechain-types/ERC1967Utils.ts new file mode 100644 index 00000000..3913b11a --- /dev/null +++ b/v2/typechain-types/ERC1967Utils.ts @@ -0,0 +1,168 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "./common"; + +export interface ERC1967UtilsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: "AdminChanged" | "BeaconUpgraded" | "Upgraded" + ): EventFragment; +} + +export namespace AdminChangedEvent { + export type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [previousAdmin: string, newAdmin: string]; + export interface OutputObject { + previousAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace BeaconUpgradedEvent { + export type InputTuple = [beacon: AddressLike]; + export type OutputTuple = [beacon: string]; + export interface OutputObject { + beacon: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC1967Utils extends BaseContract { + connect(runner?: ContractRunner | null): ERC1967Utils; + waitForDeployment(): Promise; + + interface: ERC1967UtilsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "BeaconUpgraded" + ): TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "BeaconUpgraded(address)": TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + BeaconUpgraded: TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ERC20.ts b/v2/typechain-types/ERC20.ts new file mode 100644 index 00000000..9d53a66f --- /dev/null +++ b/v2/typechain-types/ERC20.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20 extends BaseContract { + connect(runner?: ContractRunner | null): ERC20; + waitForDeployment(): Promise; + + interface: ERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ERC20/IERC20.ts b/v2/typechain-types/ERC20/IERC20.ts new file mode 100644 index 00000000..21742c4d --- /dev/null +++ b/v2/typechain-types/ERC20/IERC20.ts @@ -0,0 +1,262 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface IERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20 extends BaseContract { + connect(runner?: ContractRunner | null): IERC20; + waitForDeployment(): Promise; + + interface: IERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ERC20/index.ts b/v2/typechain-types/ERC20/index.ts new file mode 100644 index 00000000..8312ccd9 --- /dev/null +++ b/v2/typechain-types/ERC20/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC20 } from "./IERC20"; diff --git a/v2/typechain-types/ERC20Burnable.ts b/v2/typechain-types/ERC20Burnable.ts new file mode 100644 index 00000000..e46049bc --- /dev/null +++ b/v2/typechain-types/ERC20Burnable.ts @@ -0,0 +1,313 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ERC20BurnableInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "burnFrom" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "burnFrom", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20Burnable extends BaseContract { + connect(runner?: ContractRunner | null): ERC20Burnable; + waitForDeployment(): Promise; + + interface: ERC20BurnableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; + + burnFrom: TypedContractMethod< + [account: AddressLike, value: BigNumberish], + [void], + "nonpayable" + >; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "burnFrom" + ): TypedContractMethod< + [account: AddressLike, value: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ERC20CustodyNew.ts b/v2/typechain-types/ERC20CustodyNew.ts new file mode 100644 index 00000000..1edff18a --- /dev/null +++ b/v2/typechain-types/ERC20CustodyNew.ts @@ -0,0 +1,312 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ERC20CustodyNewInterface extends Interface { + getFunction( + nameOrSignature: + | "gateway" + | "tssAddress" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Withdraw" | "WithdrawAndCall" | "WithdrawAndRevert" + ): EventFragment; + + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndRevert", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; +} + +export namespace WithdrawEvent { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish + ]; + export type OutputTuple = [token: string, to: string, amount: bigint]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndCallEvent { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndRevertEvent { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20CustodyNew extends BaseContract { + connect(runner?: ContractRunner | null): ERC20CustodyNew; + waitForDeployment(): Promise; + + interface: ERC20CustodyNewInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + gateway: TypedContractMethod<[], [string], "view">; + + tssAddress: TypedContractMethod<[], [string], "view">; + + withdraw: TypedContractMethod< + [token: AddressLike, to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + withdrawAndRevert: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [token: AddressLike, to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndRevert" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + getEvent( + key: "Withdraw" + ): TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + getEvent( + key: "WithdrawAndCall" + ): TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + getEvent( + key: "WithdrawAndRevert" + ): TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + + filters: { + "Withdraw(address,address,uint256)": TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + Withdraw: TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + + "WithdrawAndCall(address,address,uint256,bytes)": TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + WithdrawAndCall: TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + + "WithdrawAndRevert(address,address,uint256,bytes)": TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + WithdrawAndRevert: TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ERC20CustodyNewEchidnaTest.ts b/v2/typechain-types/ERC20CustodyNewEchidnaTest.ts new file mode 100644 index 00000000..57327a20 --- /dev/null +++ b/v2/typechain-types/ERC20CustodyNewEchidnaTest.ts @@ -0,0 +1,356 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ERC20CustodyNewEchidnaTestInterface extends Interface { + getFunction( + nameOrSignature: + | "echidnaCaller" + | "gateway" + | "testERC20" + | "testWithdrawAndCall" + | "tssAddress" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Withdraw" | "WithdrawAndCall" | "WithdrawAndRevert" + ): EventFragment; + + encodeFunctionData( + functionFragment: "echidnaCaller", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData(functionFragment: "testERC20", values?: undefined): string; + encodeFunctionData( + functionFragment: "testWithdrawAndCall", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndRevert", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "echidnaCaller", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "testERC20", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "testWithdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; +} + +export namespace WithdrawEvent { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish + ]; + export type OutputTuple = [token: string, to: string, amount: bigint]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndCallEvent { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndRevertEvent { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20CustodyNewEchidnaTest extends BaseContract { + connect(runner?: ContractRunner | null): ERC20CustodyNewEchidnaTest; + waitForDeployment(): Promise; + + interface: ERC20CustodyNewEchidnaTestInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + echidnaCaller: TypedContractMethod<[], [string], "view">; + + gateway: TypedContractMethod<[], [string], "view">; + + testERC20: TypedContractMethod<[], [string], "view">; + + testWithdrawAndCall: TypedContractMethod< + [to: AddressLike, amount: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + withdraw: TypedContractMethod< + [token: AddressLike, to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + withdrawAndRevert: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "echidnaCaller" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "testERC20" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "testWithdrawAndCall" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [token: AddressLike, to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndRevert" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + getEvent( + key: "Withdraw" + ): TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + getEvent( + key: "WithdrawAndCall" + ): TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + getEvent( + key: "WithdrawAndRevert" + ): TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + + filters: { + "Withdraw(address,address,uint256)": TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + Withdraw: TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + + "WithdrawAndCall(address,address,uint256,bytes)": TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + WithdrawAndCall: TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + + "WithdrawAndRevert(address,address,uint256,bytes)": TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + WithdrawAndRevert: TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/GatewayEVM.ts b/v2/typechain-types/GatewayEVM.ts new file mode 100644 index 00000000..7ab5fc9d --- /dev/null +++ b/v2/typechain-types/GatewayEVM.ts @@ -0,0 +1,829 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface GatewayEVMInterface extends Interface { + getFunction( + nameOrSignature: + | "UPGRADE_INTERFACE_VERSION" + | "call" + | "custody" + | "deposit(address)" + | "deposit(address,uint256,address)" + | "depositAndCall(address,bytes)" + | "depositAndCall(address,uint256,address,bytes)" + | "execute" + | "executeRevert" + | "executeWithERC20" + | "initialize" + | "owner" + | "proxiableUUID" + | "renounceOwnership" + | "revertWithERC20" + | "setConnector" + | "setCustody" + | "transferOwnership" + | "tssAddress" + | "upgradeToAndCall" + | "zetaConnector" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Call" + | "Deposit" + | "Executed" + | "ExecutedWithERC20" + | "Initialized" + | "OwnershipTransferred" + | "Reverted" + | "RevertedWithERC20" + | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "call", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "custody", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "deposit(address,uint256,address)", + values: [AddressLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall(address,bytes)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall(address,uint256,address,bytes)", + values: [AddressLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "execute", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeRevert", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "revertWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setConnector", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setCustody", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "zetaConnector", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "deposit(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deposit(address,uint256,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall(address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall(address,uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "executeRevert", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "executeWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "zetaConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace CallEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + payload: BytesLike + ]; + export type OutputTuple = [sender: string, receiver: string, payload: string]; + export interface OutputObject { + sender: string; + receiver: string; + payload: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + amount: bigint, + asset: string, + payload: string + ]; + export interface OutputObject { + sender: string; + receiver: string; + amount: bigint; + asset: string; + payload: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface GatewayEVM extends BaseContract { + connect(runner?: ContractRunner | null): GatewayEVM; + waitForDeployment(): Promise; + + interface: GatewayEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + call: TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "nonpayable" + >; + + custody: TypedContractMethod<[], [string], "view">; + + "deposit(address)": TypedContractMethod< + [receiver: AddressLike], + [void], + "payable" + >; + + "deposit(address,uint256,address)": TypedContractMethod< + [receiver: AddressLike, amount: BigNumberish, asset: AddressLike], + [void], + "nonpayable" + >; + + "depositAndCall(address,bytes)": TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "payable" + >; + + "depositAndCall(address,uint256,address,bytes)": TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike + ], + [void], + "nonpayable" + >; + + execute: TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [string], + "payable" + >; + + executeRevert: TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [void], + "payable" + >; + + executeWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + initialize: TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike], + [void], + "nonpayable" + >; + + owner: TypedContractMethod<[], [string], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + revertWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + setConnector: TypedContractMethod< + [_zetaConnector: AddressLike], + [void], + "nonpayable" + >; + + setCustody: TypedContractMethod< + [_custody: AddressLike], + [void], + "nonpayable" + >; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + zetaConnector: TypedContractMethod<[], [string], "view">; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "custody" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "deposit(address)" + ): TypedContractMethod<[receiver: AddressLike], [void], "payable">; + getFunction( + nameOrSignature: "deposit(address,uint256,address)" + ): TypedContractMethod< + [receiver: AddressLike, amount: BigNumberish, asset: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndCall(address,bytes)" + ): TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "depositAndCall(address,uint256,address,bytes)" + ): TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "execute" + ): TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [string], + "payable" + >; + getFunction( + nameOrSignature: "executeRevert" + ): TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "executeWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "revertWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setConnector" + ): TypedContractMethod<[_zetaConnector: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setCustody" + ): TypedContractMethod<[_custody: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "zetaConnector" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Call" + ): TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Executed" + ): TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + getEvent( + key: "ExecutedWithERC20" + ): TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + getEvent( + key: "Reverted" + ): TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + getEvent( + key: "RevertedWithERC20" + ): TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "Call(address,address,bytes)": TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + Call: TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + + "Deposit(address,address,uint256,address,bytes)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Executed(address,uint256,bytes)": TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + Executed: TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + + "ExecutedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + ExecutedWithERC20: TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + "Reverted(address,uint256,bytes)": TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + Reverted: TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + + "RevertedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + RevertedWithERC20: TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/GatewayEVMEchidnaTest.ts b/v2/typechain-types/GatewayEVMEchidnaTest.ts new file mode 100644 index 00000000..a79f5e1b --- /dev/null +++ b/v2/typechain-types/GatewayEVMEchidnaTest.ts @@ -0,0 +1,873 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface GatewayEVMEchidnaTestInterface extends Interface { + getFunction( + nameOrSignature: + | "UPGRADE_INTERFACE_VERSION" + | "call" + | "custody" + | "deposit(address)" + | "deposit(address,uint256,address)" + | "depositAndCall(address,bytes)" + | "depositAndCall(address,uint256,address,bytes)" + | "echidnaCaller" + | "execute" + | "executeRevert" + | "executeWithERC20" + | "initialize" + | "owner" + | "proxiableUUID" + | "renounceOwnership" + | "revertWithERC20" + | "setConnector" + | "setCustody" + | "testERC20" + | "testExecuteWithERC20" + | "transferOwnership" + | "tssAddress" + | "upgradeToAndCall" + | "zetaConnector" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Call" + | "Deposit" + | "Executed" + | "ExecutedWithERC20" + | "Initialized" + | "OwnershipTransferred" + | "Reverted" + | "RevertedWithERC20" + | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "call", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "custody", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "deposit(address,uint256,address)", + values: [AddressLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall(address,bytes)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall(address,uint256,address,bytes)", + values: [AddressLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "echidnaCaller", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "execute", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeRevert", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "revertWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setConnector", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setCustody", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "testERC20", values?: undefined): string; + encodeFunctionData( + functionFragment: "testExecuteWithERC20", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "zetaConnector", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "deposit(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deposit(address,uint256,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall(address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall(address,uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "echidnaCaller", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "executeRevert", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "executeWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "testERC20", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "testExecuteWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "zetaConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace CallEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + payload: BytesLike + ]; + export type OutputTuple = [sender: string, receiver: string, payload: string]; + export interface OutputObject { + sender: string; + receiver: string; + payload: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + amount: bigint, + asset: string, + payload: string + ]; + export interface OutputObject { + sender: string; + receiver: string; + amount: bigint; + asset: string; + payload: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface GatewayEVMEchidnaTest extends BaseContract { + connect(runner?: ContractRunner | null): GatewayEVMEchidnaTest; + waitForDeployment(): Promise; + + interface: GatewayEVMEchidnaTestInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + call: TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "nonpayable" + >; + + custody: TypedContractMethod<[], [string], "view">; + + "deposit(address)": TypedContractMethod< + [receiver: AddressLike], + [void], + "payable" + >; + + "deposit(address,uint256,address)": TypedContractMethod< + [receiver: AddressLike, amount: BigNumberish, asset: AddressLike], + [void], + "nonpayable" + >; + + "depositAndCall(address,bytes)": TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "payable" + >; + + "depositAndCall(address,uint256,address,bytes)": TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike + ], + [void], + "nonpayable" + >; + + echidnaCaller: TypedContractMethod<[], [string], "view">; + + execute: TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [string], + "payable" + >; + + executeRevert: TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [void], + "payable" + >; + + executeWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + initialize: TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike], + [void], + "nonpayable" + >; + + owner: TypedContractMethod<[], [string], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + revertWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + setConnector: TypedContractMethod< + [_zetaConnector: AddressLike], + [void], + "nonpayable" + >; + + setCustody: TypedContractMethod< + [_custody: AddressLike], + [void], + "nonpayable" + >; + + testERC20: TypedContractMethod<[], [string], "view">; + + testExecuteWithERC20: TypedContractMethod< + [to: AddressLike, amount: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + zetaConnector: TypedContractMethod<[], [string], "view">; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "custody" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "deposit(address)" + ): TypedContractMethod<[receiver: AddressLike], [void], "payable">; + getFunction( + nameOrSignature: "deposit(address,uint256,address)" + ): TypedContractMethod< + [receiver: AddressLike, amount: BigNumberish, asset: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndCall(address,bytes)" + ): TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "depositAndCall(address,uint256,address,bytes)" + ): TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "echidnaCaller" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "execute" + ): TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [string], + "payable" + >; + getFunction( + nameOrSignature: "executeRevert" + ): TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "executeWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "revertWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setConnector" + ): TypedContractMethod<[_zetaConnector: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setCustody" + ): TypedContractMethod<[_custody: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "testERC20" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "testExecuteWithERC20" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "zetaConnector" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Call" + ): TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Executed" + ): TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + getEvent( + key: "ExecutedWithERC20" + ): TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + getEvent( + key: "Reverted" + ): TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + getEvent( + key: "RevertedWithERC20" + ): TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "Call(address,address,bytes)": TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + Call: TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + + "Deposit(address,address,uint256,address,bytes)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Executed(address,uint256,bytes)": TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + Executed: TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + + "ExecutedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + ExecutedWithERC20: TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + "Reverted(address,uint256,bytes)": TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + Reverted: TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + + "RevertedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + RevertedWithERC20: TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/GatewayEVMUpgradeTest.ts b/v2/typechain-types/GatewayEVMUpgradeTest.ts new file mode 100644 index 00000000..2f62b00b --- /dev/null +++ b/v2/typechain-types/GatewayEVMUpgradeTest.ts @@ -0,0 +1,866 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface GatewayEVMUpgradeTestInterface extends Interface { + getFunction( + nameOrSignature: + | "UPGRADE_INTERFACE_VERSION" + | "call" + | "custody" + | "deposit(address)" + | "deposit(address,uint256,address)" + | "depositAndCall(address,bytes)" + | "depositAndCall(address,uint256,address,bytes)" + | "execute" + | "executeRevert" + | "executeWithERC20" + | "initialize" + | "owner" + | "proxiableUUID" + | "renounceOwnership" + | "revertWithERC20" + | "setConnector" + | "setCustody" + | "transferOwnership" + | "tssAddress" + | "upgradeToAndCall" + | "zetaConnector" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Call" + | "Deposit" + | "Executed" + | "ExecutedV2" + | "ExecutedWithERC20" + | "Initialized" + | "OwnershipTransferred" + | "Reverted" + | "RevertedWithERC20" + | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "call", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "custody", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "deposit(address,uint256,address)", + values: [AddressLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall(address,bytes)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall(address,uint256,address,bytes)", + values: [AddressLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "execute", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeRevert", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "revertWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setConnector", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setCustody", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "zetaConnector", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "deposit(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deposit(address,uint256,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall(address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall(address,uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "executeRevert", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "executeWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "zetaConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace CallEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + payload: BytesLike + ]; + export type OutputTuple = [sender: string, receiver: string, payload: string]; + export interface OutputObject { + sender: string; + receiver: string; + payload: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + amount: bigint, + asset: string, + payload: string + ]; + export interface OutputObject { + sender: string; + receiver: string; + amount: bigint; + asset: string; + payload: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedV2Event { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface GatewayEVMUpgradeTest extends BaseContract { + connect(runner?: ContractRunner | null): GatewayEVMUpgradeTest; + waitForDeployment(): Promise; + + interface: GatewayEVMUpgradeTestInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + call: TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "nonpayable" + >; + + custody: TypedContractMethod<[], [string], "view">; + + "deposit(address)": TypedContractMethod< + [receiver: AddressLike], + [void], + "payable" + >; + + "deposit(address,uint256,address)": TypedContractMethod< + [receiver: AddressLike, amount: BigNumberish, asset: AddressLike], + [void], + "nonpayable" + >; + + "depositAndCall(address,bytes)": TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "payable" + >; + + "depositAndCall(address,uint256,address,bytes)": TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike + ], + [void], + "nonpayable" + >; + + execute: TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [string], + "payable" + >; + + executeRevert: TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [void], + "payable" + >; + + executeWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + initialize: TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike], + [void], + "nonpayable" + >; + + owner: TypedContractMethod<[], [string], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + revertWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + setConnector: TypedContractMethod< + [_zetaConnector: AddressLike], + [void], + "nonpayable" + >; + + setCustody: TypedContractMethod< + [_custody: AddressLike], + [void], + "nonpayable" + >; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + zetaConnector: TypedContractMethod<[], [string], "view">; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "custody" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "deposit(address)" + ): TypedContractMethod<[receiver: AddressLike], [void], "payable">; + getFunction( + nameOrSignature: "deposit(address,uint256,address)" + ): TypedContractMethod< + [receiver: AddressLike, amount: BigNumberish, asset: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndCall(address,bytes)" + ): TypedContractMethod< + [receiver: AddressLike, payload: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "depositAndCall(address,uint256,address,bytes)" + ): TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "execute" + ): TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [string], + "payable" + >; + getFunction( + nameOrSignature: "executeRevert" + ): TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "executeWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "revertWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setConnector" + ): TypedContractMethod<[_zetaConnector: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setCustody" + ): TypedContractMethod<[_custody: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "zetaConnector" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Call" + ): TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Executed" + ): TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + getEvent( + key: "ExecutedV2" + ): TypedContractEvent< + ExecutedV2Event.InputTuple, + ExecutedV2Event.OutputTuple, + ExecutedV2Event.OutputObject + >; + getEvent( + key: "ExecutedWithERC20" + ): TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + getEvent( + key: "Reverted" + ): TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + getEvent( + key: "RevertedWithERC20" + ): TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "Call(address,address,bytes)": TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + Call: TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + + "Deposit(address,address,uint256,address,bytes)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Executed(address,uint256,bytes)": TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + Executed: TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + + "ExecutedV2(address,uint256,bytes)": TypedContractEvent< + ExecutedV2Event.InputTuple, + ExecutedV2Event.OutputTuple, + ExecutedV2Event.OutputObject + >; + ExecutedV2: TypedContractEvent< + ExecutedV2Event.InputTuple, + ExecutedV2Event.OutputTuple, + ExecutedV2Event.OutputObject + >; + + "ExecutedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + ExecutedWithERC20: TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + "Reverted(address,uint256,bytes)": TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + Reverted: TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + + "RevertedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + RevertedWithERC20: TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/GatewayZEVM.ts b/v2/typechain-types/GatewayZEVM.ts new file mode 100644 index 00000000..80069cc1 --- /dev/null +++ b/v2/typechain-types/GatewayZEVM.ts @@ -0,0 +1,732 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export type RevertContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type RevertContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export interface GatewayZEVMInterface extends Interface { + getFunction( + nameOrSignature: + | "FUNGIBLE_MODULE_ADDRESS" + | "UPGRADE_INTERFACE_VERSION" + | "call" + | "deposit" + | "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + | "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" + | "depositAndRevert" + | "execute" + | "executeRevert" + | "initialize" + | "owner" + | "proxiableUUID" + | "renounceOwnership" + | "transferOwnership" + | "upgradeToAndCall" + | "withdraw(bytes,uint256,address)" + | "withdraw(uint256)" + | "withdrawAndCall(uint256,bytes)" + | "withdrawAndCall(bytes,uint256,address,bytes)" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Call" + | "Initialized" + | "OwnershipTransferred" + | "Upgraded" + | "Withdrawal" + ): EventFragment; + + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "call", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", + values: [ZContextStruct, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", + values: [ZContextStruct, AddressLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndRevert", + values: [ + RevertContextStruct, + AddressLike, + BigNumberish, + AddressLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "execute", + values: [ZContextStruct, AddressLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeRevert", + values: [ + RevertContextStruct, + AddressLike, + BigNumberish, + AddressLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw(bytes,uint256,address)", + values: [BytesLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall(uint256,bytes)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall(bytes,uint256,address,bytes)", + values: [BytesLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndRevert", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "executeRevert", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdraw(bytes,uint256,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdraw(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall(uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall(bytes,uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace CallEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: BytesLike, + message: BytesLike + ]; + export type OutputTuple = [sender: string, receiver: string, message: string]; + export interface OutputObject { + sender: string; + receiver: string; + message: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [ + from: AddressLike, + zrc20: AddressLike, + to: BytesLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish, + message: BytesLike + ]; + export type OutputTuple = [ + from: string, + zrc20: string, + to: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint, + message: string + ]; + export interface OutputObject { + from: string; + zrc20: string; + to: string; + value: bigint; + gasfee: bigint; + protocolFlatFee: bigint; + message: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface GatewayZEVM extends BaseContract { + connect(runner?: ContractRunner | null): GatewayZEVM; + waitForDeployment(): Promise; + + interface: GatewayZEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + call: TypedContractMethod< + [receiver: BytesLike, message: BytesLike], + [void], + "nonpayable" + >; + + deposit: TypedContractMethod< + [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], + [void], + "nonpayable" + >; + + "depositAndCall((bytes,address,uint256),uint256,address,bytes)": TypedContractMethod< + [ + context: ZContextStruct, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)": TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + depositAndRevert: TypedContractMethod< + [ + context: RevertContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + execute: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + executeRevert: TypedContractMethod< + [ + context: RevertContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + initialize: TypedContractMethod< + [_zetaToken: AddressLike], + [void], + "nonpayable" + >; + + owner: TypedContractMethod<[], [string], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + "withdraw(bytes,uint256,address)": TypedContractMethod< + [receiver: BytesLike, amount: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + + "withdraw(uint256)": TypedContractMethod< + [amount: BigNumberish], + [void], + "nonpayable" + >; + + "withdrawAndCall(uint256,bytes)": TypedContractMethod< + [amount: BigNumberish, message: BytesLike], + [void], + "nonpayable" + >; + + "withdrawAndCall(bytes,uint256,address,bytes)": TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [receiver: BytesLike, message: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + ): TypedContractMethod< + [ + context: ZContextStruct, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndRevert" + ): TypedContractMethod< + [ + context: RevertContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "execute" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "executeRevert" + ): TypedContractMethod< + [ + context: RevertContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod<[_zetaToken: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "withdraw(bytes,uint256,address)" + ): TypedContractMethod< + [receiver: BytesLike, amount: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw(uint256)" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "withdrawAndCall(uint256,bytes)" + ): TypedContractMethod< + [amount: BigNumberish, message: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall(bytes,uint256,address,bytes)" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Call" + ): TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Call(address,bytes,bytes)": TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + Call: TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + "Withdrawal(address,address,bytes,uint256,uint256,uint256,bytes)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IBeacon.ts b/v2/typechain-types/IBeacon.ts new file mode 100644 index 00000000..225d2cdc --- /dev/null +++ b/v2/typechain-types/IBeacon.ts @@ -0,0 +1,90 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface IBeaconInterface extends Interface { + getFunction(nameOrSignature: "implementation"): FunctionFragment; + + encodeFunctionData( + functionFragment: "implementation", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "implementation", + data: BytesLike + ): Result; +} + +export interface IBeacon extends BaseContract { + connect(runner?: ContractRunner | null): IBeacon; + waitForDeployment(): Promise; + + interface: IBeaconInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + implementation: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "implementation" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/v2/typechain-types/IERC165.ts b/v2/typechain-types/IERC165.ts new file mode 100644 index 00000000..f51bc2de --- /dev/null +++ b/v2/typechain-types/IERC165.ts @@ -0,0 +1,94 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface IERC165Interface extends Interface { + getFunction(nameOrSignature: "supportsInterface"): FunctionFragment; + + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; +} + +export interface IERC165 extends BaseContract { + connect(runner?: ContractRunner | null): IERC165; + waitForDeployment(): Promise; + + interface: IERC165Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + supportsInterface: TypedContractMethod< + [interfaceID: BytesLike], + [boolean], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceID: BytesLike], [boolean], "view">; + + filters: {}; +} diff --git a/v2/typechain-types/IERC1967.ts b/v2/typechain-types/IERC1967.ts new file mode 100644 index 00000000..9000613f --- /dev/null +++ b/v2/typechain-types/IERC1967.ts @@ -0,0 +1,168 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "./common"; + +export interface IERC1967Interface extends Interface { + getEvent( + nameOrSignatureOrTopic: "AdminChanged" | "BeaconUpgraded" | "Upgraded" + ): EventFragment; +} + +export namespace AdminChangedEvent { + export type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [previousAdmin: string, newAdmin: string]; + export interface OutputObject { + previousAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace BeaconUpgradedEvent { + export type InputTuple = [beacon: AddressLike]; + export type OutputTuple = [beacon: string]; + export interface OutputObject { + beacon: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC1967 extends BaseContract { + connect(runner?: ContractRunner | null): IERC1967; + waitForDeployment(): Promise; + + interface: IERC1967Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "BeaconUpgraded" + ): TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "BeaconUpgraded(address)": TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + BeaconUpgraded: TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IERC20.ts b/v2/typechain-types/IERC20.ts new file mode 100644 index 00000000..783ad436 --- /dev/null +++ b/v2/typechain-types/IERC20.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface IERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20 extends BaseContract { + connect(runner?: ContractRunner | null): IERC20; + waitForDeployment(): Promise; + + interface: IERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IERC20CustodyNew.sol/IERC20CustodyNewErrors.ts b/v2/typechain-types/IERC20CustodyNew.sol/IERC20CustodyNewErrors.ts new file mode 100644 index 00000000..3abacff5 --- /dev/null +++ b/v2/typechain-types/IERC20CustodyNew.sol/IERC20CustodyNewErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface IERC20CustodyNewErrorsInterface extends Interface {} + +export interface IERC20CustodyNewErrors extends BaseContract { + connect(runner?: ContractRunner | null): IERC20CustodyNewErrors; + waitForDeployment(): Promise; + + interface: IERC20CustodyNewErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/IERC20CustodyNew.sol/IERC20CustodyNewEvents.ts b/v2/typechain-types/IERC20CustodyNew.sol/IERC20CustodyNewEvents.ts new file mode 100644 index 00000000..60ffe056 --- /dev/null +++ b/v2/typechain-types/IERC20CustodyNew.sol/IERC20CustodyNewEvents.ts @@ -0,0 +1,201 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../common"; + +export interface IERC20CustodyNewEventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: "Withdraw" | "WithdrawAndCall" | "WithdrawAndRevert" + ): EventFragment; +} + +export namespace WithdrawEvent { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish + ]; + export type OutputTuple = [token: string, to: string, amount: bigint]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndCallEvent { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndRevertEvent { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20CustodyNewEvents extends BaseContract { + connect(runner?: ContractRunner | null): IERC20CustodyNewEvents; + waitForDeployment(): Promise; + + interface: IERC20CustodyNewEventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Withdraw" + ): TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + getEvent( + key: "WithdrawAndCall" + ): TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + getEvent( + key: "WithdrawAndRevert" + ): TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + + filters: { + "Withdraw(address,address,uint256)": TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + Withdraw: TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + + "WithdrawAndCall(address,address,uint256,bytes)": TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + WithdrawAndCall: TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + + "WithdrawAndRevert(address,address,uint256,bytes)": TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + WithdrawAndRevert: TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IERC20CustodyNew.sol/index.ts b/v2/typechain-types/IERC20CustodyNew.sol/index.ts new file mode 100644 index 00000000..8106a206 --- /dev/null +++ b/v2/typechain-types/IERC20CustodyNew.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC20CustodyNewErrors } from "./IERC20CustodyNewErrors"; +export type { IERC20CustodyNewEvents } from "./IERC20CustodyNewEvents"; diff --git a/v2/typechain-types/IERC20Metadata.ts b/v2/typechain-types/IERC20Metadata.ts new file mode 100644 index 00000000..c99517a9 --- /dev/null +++ b/v2/typechain-types/IERC20Metadata.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface IERC20MetadataInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20Metadata extends BaseContract { + connect(runner?: ContractRunner | null): IERC20Metadata; + waitForDeployment(): Promise; + + interface: IERC20MetadataInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IERC20Permit.ts b/v2/typechain-types/IERC20Permit.ts new file mode 100644 index 00000000..9d1f1b3d --- /dev/null +++ b/v2/typechain-types/IERC20Permit.ts @@ -0,0 +1,143 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface IERC20PermitInterface extends Interface { + getFunction( + nameOrSignature: "DOMAIN_SEPARATOR" | "nonces" | "permit" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; +} + +export interface IERC20Permit extends BaseContract { + connect(runner?: ContractRunner | null): IERC20Permit; + waitForDeployment(): Promise; + + interface: IERC20PermitInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; + + nonces: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + permit: TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DOMAIN_SEPARATOR" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "nonces" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "permit" + ): TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/v2/typechain-types/IERC721.sol/IERC721.ts b/v2/typechain-types/IERC721.sol/IERC721.ts new file mode 100644 index 00000000..7afcd4d1 --- /dev/null +++ b/v2/typechain-types/IERC721.sol/IERC721.ts @@ -0,0 +1,397 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface IERC721Interface extends Interface { + getFunction( + nameOrSignature: + | "approve" + | "balanceOf" + | "getApproved" + | "isApprovedForAll" + | "ownerOf" + | "safeTransferFrom(address,address,uint256)" + | "safeTransferFrom(address,address,uint256,bytes)" + | "setApprovalForAll" + | "supportsInterface" + | "transferFrom" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "ApprovalForAll" | "Transfer" + ): EventFragment; + + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getApproved", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "ownerOf", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom(address,address,uint256)", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom(address,address,uint256,bytes)", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getApproved", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom(address,address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom(address,address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + _owner: AddressLike, + _approved: AddressLike, + _tokenId: BigNumberish + ]; + export type OutputTuple = [ + _owner: string, + _approved: string, + _tokenId: bigint + ]; + export interface OutputObject { + _owner: string; + _approved: string; + _tokenId: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ApprovalForAllEvent { + export type InputTuple = [ + _owner: AddressLike, + _operator: AddressLike, + _approved: boolean + ]; + export type OutputTuple = [ + _owner: string, + _operator: string, + _approved: boolean + ]; + export interface OutputObject { + _owner: string; + _operator: string; + _approved: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + _from: AddressLike, + _to: AddressLike, + _tokenId: BigNumberish + ]; + export type OutputTuple = [_from: string, _to: string, _tokenId: bigint]; + export interface OutputObject { + _from: string; + _to: string; + _tokenId: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC721 extends BaseContract { + connect(runner?: ContractRunner | null): IERC721; + waitForDeployment(): Promise; + + interface: IERC721Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + approve: TypedContractMethod< + [_approved: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + balanceOf: TypedContractMethod<[_owner: AddressLike], [bigint], "view">; + + getApproved: TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + + isApprovedForAll: TypedContractMethod< + [_owner: AddressLike, _operator: AddressLike], + [boolean], + "view" + >; + + ownerOf: TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + + "safeTransferFrom(address,address,uint256)": TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + "safeTransferFrom(address,address,uint256,bytes)": TypedContractMethod< + [ + _from: AddressLike, + _to: AddressLike, + _tokenId: BigNumberish, + data: BytesLike + ], + [void], + "payable" + >; + + setApprovalForAll: TypedContractMethod< + [_operator: AddressLike, _approved: boolean], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceID: BytesLike], + [boolean], + "view" + >; + + transferFrom: TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [_approved: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[_owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getApproved" + ): TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "isApprovedForAll" + ): TypedContractMethod< + [_owner: AddressLike, _operator: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "ownerOf" + ): TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "safeTransferFrom(address,address,uint256)" + ): TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + getFunction( + nameOrSignature: "safeTransferFrom(address,address,uint256,bytes)" + ): TypedContractMethod< + [ + _from: AddressLike, + _to: AddressLike, + _tokenId: BigNumberish, + data: BytesLike + ], + [void], + "payable" + >; + getFunction( + nameOrSignature: "setApprovalForAll" + ): TypedContractMethod< + [_operator: AddressLike, _approved: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceID: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "ApprovalForAll" + ): TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "ApprovalForAll(address,address,bool)": TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + ApprovalForAll: TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IERC721.sol/IERC721Enumerable.ts b/v2/typechain-types/IERC721.sol/IERC721Enumerable.ts new file mode 100644 index 00000000..0331b48b --- /dev/null +++ b/v2/typechain-types/IERC721.sol/IERC721Enumerable.ts @@ -0,0 +1,447 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface IERC721EnumerableInterface extends Interface { + getFunction( + nameOrSignature: + | "approve" + | "balanceOf" + | "getApproved" + | "isApprovedForAll" + | "ownerOf" + | "safeTransferFrom(address,address,uint256)" + | "safeTransferFrom(address,address,uint256,bytes)" + | "setApprovalForAll" + | "supportsInterface" + | "tokenByIndex" + | "tokenOfOwnerByIndex" + | "totalSupply" + | "transferFrom" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "ApprovalForAll" | "Transfer" + ): EventFragment; + + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getApproved", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "ownerOf", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom(address,address,uint256)", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom(address,address,uint256,bytes)", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tokenByIndex", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tokenOfOwnerByIndex", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getApproved", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom(address,address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom(address,address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tokenByIndex", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tokenOfOwnerByIndex", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + _owner: AddressLike, + _approved: AddressLike, + _tokenId: BigNumberish + ]; + export type OutputTuple = [ + _owner: string, + _approved: string, + _tokenId: bigint + ]; + export interface OutputObject { + _owner: string; + _approved: string; + _tokenId: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ApprovalForAllEvent { + export type InputTuple = [ + _owner: AddressLike, + _operator: AddressLike, + _approved: boolean + ]; + export type OutputTuple = [ + _owner: string, + _operator: string, + _approved: boolean + ]; + export interface OutputObject { + _owner: string; + _operator: string; + _approved: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + _from: AddressLike, + _to: AddressLike, + _tokenId: BigNumberish + ]; + export type OutputTuple = [_from: string, _to: string, _tokenId: bigint]; + export interface OutputObject { + _from: string; + _to: string; + _tokenId: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC721Enumerable extends BaseContract { + connect(runner?: ContractRunner | null): IERC721Enumerable; + waitForDeployment(): Promise; + + interface: IERC721EnumerableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + approve: TypedContractMethod< + [_approved: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + balanceOf: TypedContractMethod<[_owner: AddressLike], [bigint], "view">; + + getApproved: TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + + isApprovedForAll: TypedContractMethod< + [_owner: AddressLike, _operator: AddressLike], + [boolean], + "view" + >; + + ownerOf: TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + + "safeTransferFrom(address,address,uint256)": TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + "safeTransferFrom(address,address,uint256,bytes)": TypedContractMethod< + [ + _from: AddressLike, + _to: AddressLike, + _tokenId: BigNumberish, + data: BytesLike + ], + [void], + "payable" + >; + + setApprovalForAll: TypedContractMethod< + [_operator: AddressLike, _approved: boolean], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceID: BytesLike], + [boolean], + "view" + >; + + tokenByIndex: TypedContractMethod<[_index: BigNumberish], [bigint], "view">; + + tokenOfOwnerByIndex: TypedContractMethod< + [_owner: AddressLike, _index: BigNumberish], + [bigint], + "view" + >; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transferFrom: TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [_approved: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[_owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getApproved" + ): TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "isApprovedForAll" + ): TypedContractMethod< + [_owner: AddressLike, _operator: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "ownerOf" + ): TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "safeTransferFrom(address,address,uint256)" + ): TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + getFunction( + nameOrSignature: "safeTransferFrom(address,address,uint256,bytes)" + ): TypedContractMethod< + [ + _from: AddressLike, + _to: AddressLike, + _tokenId: BigNumberish, + data: BytesLike + ], + [void], + "payable" + >; + getFunction( + nameOrSignature: "setApprovalForAll" + ): TypedContractMethod< + [_operator: AddressLike, _approved: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceID: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tokenByIndex" + ): TypedContractMethod<[_index: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "tokenOfOwnerByIndex" + ): TypedContractMethod< + [_owner: AddressLike, _index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "ApprovalForAll" + ): TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "ApprovalForAll(address,address,bool)": TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + ApprovalForAll: TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IERC721.sol/IERC721Metadata.ts b/v2/typechain-types/IERC721.sol/IERC721Metadata.ts new file mode 100644 index 00000000..d9ccf0f0 --- /dev/null +++ b/v2/typechain-types/IERC721.sol/IERC721Metadata.ts @@ -0,0 +1,424 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface IERC721MetadataInterface extends Interface { + getFunction( + nameOrSignature: + | "approve" + | "balanceOf" + | "getApproved" + | "isApprovedForAll" + | "name" + | "ownerOf" + | "safeTransferFrom(address,address,uint256)" + | "safeTransferFrom(address,address,uint256,bytes)" + | "setApprovalForAll" + | "supportsInterface" + | "symbol" + | "tokenURI" + | "transferFrom" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "ApprovalForAll" | "Transfer" + ): EventFragment; + + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getApproved", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "ownerOf", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom(address,address,uint256)", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom(address,address,uint256,bytes)", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "tokenURI", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getApproved", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom(address,address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom(address,address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tokenURI", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + _owner: AddressLike, + _approved: AddressLike, + _tokenId: BigNumberish + ]; + export type OutputTuple = [ + _owner: string, + _approved: string, + _tokenId: bigint + ]; + export interface OutputObject { + _owner: string; + _approved: string; + _tokenId: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ApprovalForAllEvent { + export type InputTuple = [ + _owner: AddressLike, + _operator: AddressLike, + _approved: boolean + ]; + export type OutputTuple = [ + _owner: string, + _operator: string, + _approved: boolean + ]; + export interface OutputObject { + _owner: string; + _operator: string; + _approved: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + _from: AddressLike, + _to: AddressLike, + _tokenId: BigNumberish + ]; + export type OutputTuple = [_from: string, _to: string, _tokenId: bigint]; + export interface OutputObject { + _from: string; + _to: string; + _tokenId: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC721Metadata extends BaseContract { + connect(runner?: ContractRunner | null): IERC721Metadata; + waitForDeployment(): Promise; + + interface: IERC721MetadataInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + approve: TypedContractMethod< + [_approved: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + balanceOf: TypedContractMethod<[_owner: AddressLike], [bigint], "view">; + + getApproved: TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + + isApprovedForAll: TypedContractMethod< + [_owner: AddressLike, _operator: AddressLike], + [boolean], + "view" + >; + + name: TypedContractMethod<[], [string], "view">; + + ownerOf: TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + + "safeTransferFrom(address,address,uint256)": TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + "safeTransferFrom(address,address,uint256,bytes)": TypedContractMethod< + [ + _from: AddressLike, + _to: AddressLike, + _tokenId: BigNumberish, + data: BytesLike + ], + [void], + "payable" + >; + + setApprovalForAll: TypedContractMethod< + [_operator: AddressLike, _approved: boolean], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceID: BytesLike], + [boolean], + "view" + >; + + symbol: TypedContractMethod<[], [string], "view">; + + tokenURI: TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + + transferFrom: TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [_approved: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[_owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getApproved" + ): TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "isApprovedForAll" + ): TypedContractMethod< + [_owner: AddressLike, _operator: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "ownerOf" + ): TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "safeTransferFrom(address,address,uint256)" + ): TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + getFunction( + nameOrSignature: "safeTransferFrom(address,address,uint256,bytes)" + ): TypedContractMethod< + [ + _from: AddressLike, + _to: AddressLike, + _tokenId: BigNumberish, + data: BytesLike + ], + [void], + "payable" + >; + getFunction( + nameOrSignature: "setApprovalForAll" + ): TypedContractMethod< + [_operator: AddressLike, _approved: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceID: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "tokenURI" + ): TypedContractMethod<[_tokenId: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [_from: AddressLike, _to: AddressLike, _tokenId: BigNumberish], + [void], + "payable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "ApprovalForAll" + ): TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "ApprovalForAll(address,address,bool)": TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + ApprovalForAll: TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IERC721.sol/IERC721TokenReceiver.ts b/v2/typechain-types/IERC721.sol/IERC721TokenReceiver.ts new file mode 100644 index 00000000..1ae28171 --- /dev/null +++ b/v2/typechain-types/IERC721.sol/IERC721TokenReceiver.ts @@ -0,0 +1,110 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface IERC721TokenReceiverInterface extends Interface { + getFunction(nameOrSignature: "onERC721Received"): FunctionFragment; + + encodeFunctionData( + functionFragment: "onERC721Received", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "onERC721Received", + data: BytesLike + ): Result; +} + +export interface IERC721TokenReceiver extends BaseContract { + connect(runner?: ContractRunner | null): IERC721TokenReceiver; + waitForDeployment(): Promise; + + interface: IERC721TokenReceiverInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onERC721Received: TypedContractMethod< + [ + _operator: AddressLike, + _from: AddressLike, + _tokenId: BigNumberish, + _data: BytesLike + ], + [string], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onERC721Received" + ): TypedContractMethod< + [ + _operator: AddressLike, + _from: AddressLike, + _tokenId: BigNumberish, + _data: BytesLike + ], + [string], + "nonpayable" + >; + + filters: {}; +} diff --git a/v2/typechain-types/IERC721.sol/index.ts b/v2/typechain-types/IERC721.sol/index.ts new file mode 100644 index 00000000..8df44aee --- /dev/null +++ b/v2/typechain-types/IERC721.sol/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC721 } from "./IERC721"; +export type { IERC721Enumerable } from "./IERC721Enumerable"; +export type { IERC721Metadata } from "./IERC721Metadata"; +export type { IERC721TokenReceiver } from "./IERC721TokenReceiver"; diff --git a/v2/typechain-types/IGatewayEVM.sol/IGatewayEVM.ts b/v2/typechain-types/IGatewayEVM.sol/IGatewayEVM.ts new file mode 100644 index 00000000..6ee17425 --- /dev/null +++ b/v2/typechain-types/IGatewayEVM.sol/IGatewayEVM.ts @@ -0,0 +1,161 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface IGatewayEVMInterface extends Interface { + getFunction( + nameOrSignature: "execute" | "executeWithERC20" | "revertWithERC20" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "execute", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "revertWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "executeWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertWithERC20", + data: BytesLike + ): Result; +} + +export interface IGatewayEVM extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayEVM; + waitForDeployment(): Promise; + + interface: IGatewayEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + execute: TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [string], + "payable" + >; + + executeWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + revertWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "execute" + ): TypedContractMethod< + [destination: AddressLike, data: BytesLike], + [string], + "payable" + >; + getFunction( + nameOrSignature: "executeWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revertWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/v2/typechain-types/IGatewayEVM.sol/IGatewayEVMErrors.ts b/v2/typechain-types/IGatewayEVM.sol/IGatewayEVMErrors.ts new file mode 100644 index 00000000..d20bea9a --- /dev/null +++ b/v2/typechain-types/IGatewayEVM.sol/IGatewayEVMErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface IGatewayEVMErrorsInterface extends Interface {} + +export interface IGatewayEVMErrors extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayEVMErrors; + waitForDeployment(): Promise; + + interface: IGatewayEVMErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/IGatewayEVM.sol/IGatewayEVMEvents.ts b/v2/typechain-types/IGatewayEVM.sol/IGatewayEVMEvents.ts new file mode 100644 index 00000000..0dbee710 --- /dev/null +++ b/v2/typechain-types/IGatewayEVM.sol/IGatewayEVMEvents.ts @@ -0,0 +1,325 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../common"; + +export interface IGatewayEVMEventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: + | "Call" + | "Deposit" + | "Executed" + | "ExecutedWithERC20" + | "Reverted" + | "RevertedWithERC20" + ): EventFragment; +} + +export namespace CallEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + payload: BytesLike + ]; + export type OutputTuple = [sender: string, receiver: string, payload: string]; + export interface OutputObject { + sender: string; + receiver: string; + payload: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + amount: bigint, + asset: string, + payload: string + ]; + export interface OutputObject { + sender: string; + receiver: string; + amount: bigint; + asset: string; + payload: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IGatewayEVMEvents extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayEVMEvents; + waitForDeployment(): Promise; + + interface: IGatewayEVMEventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Call" + ): TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Executed" + ): TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + getEvent( + key: "ExecutedWithERC20" + ): TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + getEvent( + key: "Reverted" + ): TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + getEvent( + key: "RevertedWithERC20" + ): TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + + filters: { + "Call(address,address,bytes)": TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + Call: TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + + "Deposit(address,address,uint256,address,bytes)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Executed(address,uint256,bytes)": TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + Executed: TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + + "ExecutedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + ExecutedWithERC20: TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + + "Reverted(address,uint256,bytes)": TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + Reverted: TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + + "RevertedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + RevertedWithERC20: TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IGatewayEVM.sol/Revertable.ts b/v2/typechain-types/IGatewayEVM.sol/Revertable.ts new file mode 100644 index 00000000..c21600a5 --- /dev/null +++ b/v2/typechain-types/IGatewayEVM.sol/Revertable.ts @@ -0,0 +1,84 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface RevertableInterface extends Interface { + getFunction(nameOrSignature: "onRevert"): FunctionFragment; + + encodeFunctionData(functionFragment: "onRevert", values: [BytesLike]): string; + + decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; +} + +export interface Revertable extends BaseContract { + connect(runner?: ContractRunner | null): Revertable; + waitForDeployment(): Promise; + + interface: RevertableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onRevert: TypedContractMethod<[data: BytesLike], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onRevert" + ): TypedContractMethod<[data: BytesLike], [void], "nonpayable">; + + filters: {}; +} diff --git a/v2/typechain-types/IGatewayEVM.sol/index.ts b/v2/typechain-types/IGatewayEVM.sol/index.ts new file mode 100644 index 00000000..52962cd9 --- /dev/null +++ b/v2/typechain-types/IGatewayEVM.sol/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IGatewayEVM } from "./IGatewayEVM"; +export type { IGatewayEVMErrors } from "./IGatewayEVMErrors"; +export type { IGatewayEVMEvents } from "./IGatewayEVMEvents"; +export type { Revertable } from "./Revertable"; diff --git a/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVM.ts b/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVM.ts new file mode 100644 index 00000000..da6ceb42 --- /dev/null +++ b/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVM.ts @@ -0,0 +1,247 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export interface IGatewayZEVMInterface extends Interface { + getFunction( + nameOrSignature: + | "call" + | "deposit" + | "depositAndCall" + | "execute" + | "withdraw" + | "withdrawAndCall" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "call", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall", + values: [ZContextStruct, AddressLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "execute", + values: [ZContextStruct, AddressLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [BytesLike, BigNumberish, AddressLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "depositAndCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; +} + +export interface IGatewayZEVM extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayZEVM; + waitForDeployment(): Promise; + + interface: IGatewayZEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + call: TypedContractMethod< + [receiver: BytesLike, message: BytesLike], + [void], + "nonpayable" + >; + + deposit: TypedContractMethod< + [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], + [void], + "nonpayable" + >; + + depositAndCall: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + execute: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [receiver: BytesLike, amount: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [receiver: BytesLike, message: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndCall" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "execute" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [receiver: BytesLike, amount: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVMErrors.ts b/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVMErrors.ts new file mode 100644 index 00000000..c15ddae9 --- /dev/null +++ b/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVMErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface IGatewayZEVMErrorsInterface extends Interface {} + +export interface IGatewayZEVMErrors extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayZEVMErrors; + waitForDeployment(): Promise; + + interface: IGatewayZEVMErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVMEvents.ts b/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVMEvents.ts new file mode 100644 index 00000000..6379cc14 --- /dev/null +++ b/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVMEvents.ts @@ -0,0 +1,165 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../common"; + +export interface IGatewayZEVMEventsInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Call" | "Withdrawal"): EventFragment; +} + +export namespace CallEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: BytesLike, + message: BytesLike + ]; + export type OutputTuple = [sender: string, receiver: string, message: string]; + export interface OutputObject { + sender: string; + receiver: string; + message: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [ + from: AddressLike, + zrc20: AddressLike, + to: BytesLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish, + message: BytesLike + ]; + export type OutputTuple = [ + from: string, + zrc20: string, + to: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint, + message: string + ]; + export interface OutputObject { + from: string; + zrc20: string; + to: string; + value: bigint; + gasfee: bigint; + protocolFlatFee: bigint; + message: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IGatewayZEVMEvents extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayZEVMEvents; + waitForDeployment(): Promise; + + interface: IGatewayZEVMEventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Call" + ): TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Call(address,bytes,bytes)": TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + Call: TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + + "Withdrawal(address,address,bytes,uint256,uint256,uint256,bytes)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IGatewayZEVM.sol/index.ts b/v2/typechain-types/IGatewayZEVM.sol/index.ts new file mode 100644 index 00000000..736bdfc6 --- /dev/null +++ b/v2/typechain-types/IGatewayZEVM.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IGatewayZEVM } from "./IGatewayZEVM"; +export type { IGatewayZEVMErrors } from "./IGatewayZEVMErrors"; +export type { IGatewayZEVMEvents } from "./IGatewayZEVMEvents"; diff --git a/v2/typechain-types/IMulticall3.ts b/v2/typechain-types/IMulticall3.ts new file mode 100644 index 00000000..3624a658 --- /dev/null +++ b/v2/typechain-types/IMulticall3.ts @@ -0,0 +1,416 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "./common"; + +export declare namespace IMulticall3 { + export type CallStruct = { target: AddressLike; callData: BytesLike }; + + export type CallStructOutput = [target: string, callData: string] & { + target: string; + callData: string; + }; + + export type Call3Struct = { + target: AddressLike; + allowFailure: boolean; + callData: BytesLike; + }; + + export type Call3StructOutput = [ + target: string, + allowFailure: boolean, + callData: string + ] & { target: string; allowFailure: boolean; callData: string }; + + export type ResultStruct = { success: boolean; returnData: BytesLike }; + + export type ResultStructOutput = [success: boolean, returnData: string] & { + success: boolean; + returnData: string; + }; + + export type Call3ValueStruct = { + target: AddressLike; + allowFailure: boolean; + value: BigNumberish; + callData: BytesLike; + }; + + export type Call3ValueStructOutput = [ + target: string, + allowFailure: boolean, + value: bigint, + callData: string + ] & { + target: string; + allowFailure: boolean; + value: bigint; + callData: string; + }; +} + +export interface IMulticall3Interface extends Interface { + getFunction( + nameOrSignature: + | "aggregate" + | "aggregate3" + | "aggregate3Value" + | "blockAndAggregate" + | "getBasefee" + | "getBlockHash" + | "getBlockNumber" + | "getChainId" + | "getCurrentBlockCoinbase" + | "getCurrentBlockDifficulty" + | "getCurrentBlockGasLimit" + | "getCurrentBlockTimestamp" + | "getEthBalance" + | "getLastBlockHash" + | "tryAggregate" + | "tryBlockAndAggregate" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "aggregate", + values: [IMulticall3.CallStruct[]] + ): string; + encodeFunctionData( + functionFragment: "aggregate3", + values: [IMulticall3.Call3Struct[]] + ): string; + encodeFunctionData( + functionFragment: "aggregate3Value", + values: [IMulticall3.Call3ValueStruct[]] + ): string; + encodeFunctionData( + functionFragment: "blockAndAggregate", + values: [IMulticall3.CallStruct[]] + ): string; + encodeFunctionData( + functionFragment: "getBasefee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockHash", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getBlockNumber", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getChainId", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getCurrentBlockCoinbase", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getCurrentBlockDifficulty", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getCurrentBlockGasLimit", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getCurrentBlockTimestamp", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getEthBalance", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getLastBlockHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "tryAggregate", + values: [boolean, IMulticall3.CallStruct[]] + ): string; + encodeFunctionData( + functionFragment: "tryBlockAndAggregate", + values: [boolean, IMulticall3.CallStruct[]] + ): string; + + decodeFunctionResult(functionFragment: "aggregate", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "aggregate3", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "aggregate3Value", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "blockAndAggregate", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getBasefee", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getBlockHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockNumber", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getChainId", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getCurrentBlockCoinbase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getCurrentBlockDifficulty", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getCurrentBlockGasLimit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getCurrentBlockTimestamp", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getEthBalance", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getLastBlockHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tryAggregate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tryBlockAndAggregate", + data: BytesLike + ): Result; +} + +export interface IMulticall3 extends BaseContract { + connect(runner?: ContractRunner | null): IMulticall3; + waitForDeployment(): Promise; + + interface: IMulticall3Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + aggregate: TypedContractMethod< + [calls: IMulticall3.CallStruct[]], + [[bigint, string[]] & { blockNumber: bigint; returnData: string[] }], + "payable" + >; + + aggregate3: TypedContractMethod< + [calls: IMulticall3.Call3Struct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + + aggregate3Value: TypedContractMethod< + [calls: IMulticall3.Call3ValueStruct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + + blockAndAggregate: TypedContractMethod< + [calls: IMulticall3.CallStruct[]], + [ + [bigint, string, IMulticall3.ResultStructOutput[]] & { + blockNumber: bigint; + blockHash: string; + returnData: IMulticall3.ResultStructOutput[]; + } + ], + "payable" + >; + + getBasefee: TypedContractMethod<[], [bigint], "view">; + + getBlockHash: TypedContractMethod< + [blockNumber: BigNumberish], + [string], + "view" + >; + + getBlockNumber: TypedContractMethod<[], [bigint], "view">; + + getChainId: TypedContractMethod<[], [bigint], "view">; + + getCurrentBlockCoinbase: TypedContractMethod<[], [string], "view">; + + getCurrentBlockDifficulty: TypedContractMethod<[], [bigint], "view">; + + getCurrentBlockGasLimit: TypedContractMethod<[], [bigint], "view">; + + getCurrentBlockTimestamp: TypedContractMethod<[], [bigint], "view">; + + getEthBalance: TypedContractMethod<[addr: AddressLike], [bigint], "view">; + + getLastBlockHash: TypedContractMethod<[], [string], "view">; + + tryAggregate: TypedContractMethod< + [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + + tryBlockAndAggregate: TypedContractMethod< + [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], + [ + [bigint, string, IMulticall3.ResultStructOutput[]] & { + blockNumber: bigint; + blockHash: string; + returnData: IMulticall3.ResultStructOutput[]; + } + ], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "aggregate" + ): TypedContractMethod< + [calls: IMulticall3.CallStruct[]], + [[bigint, string[]] & { blockNumber: bigint; returnData: string[] }], + "payable" + >; + getFunction( + nameOrSignature: "aggregate3" + ): TypedContractMethod< + [calls: IMulticall3.Call3Struct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + getFunction( + nameOrSignature: "aggregate3Value" + ): TypedContractMethod< + [calls: IMulticall3.Call3ValueStruct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + getFunction( + nameOrSignature: "blockAndAggregate" + ): TypedContractMethod< + [calls: IMulticall3.CallStruct[]], + [ + [bigint, string, IMulticall3.ResultStructOutput[]] & { + blockNumber: bigint; + blockHash: string; + returnData: IMulticall3.ResultStructOutput[]; + } + ], + "payable" + >; + getFunction( + nameOrSignature: "getBasefee" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockHash" + ): TypedContractMethod<[blockNumber: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "getBlockNumber" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getChainId" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getCurrentBlockCoinbase" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getCurrentBlockDifficulty" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getCurrentBlockGasLimit" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getCurrentBlockTimestamp" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getEthBalance" + ): TypedContractMethod<[addr: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getLastBlockHash" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "tryAggregate" + ): TypedContractMethod< + [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + getFunction( + nameOrSignature: "tryBlockAndAggregate" + ): TypedContractMethod< + [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], + [ + [bigint, string, IMulticall3.ResultStructOutput[]] & { + blockNumber: bigint; + blockHash: string; + returnData: IMulticall3.ResultStructOutput[]; + } + ], + "payable" + >; + + filters: {}; +} diff --git a/v2/typechain-types/IProxyAdmin.ts b/v2/typechain-types/IProxyAdmin.ts new file mode 100644 index 00000000..515f75cf --- /dev/null +++ b/v2/typechain-types/IProxyAdmin.ts @@ -0,0 +1,117 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface IProxyAdminInterface extends Interface { + getFunction(nameOrSignature: "upgrade" | "upgradeAndCall"): FunctionFragment; + + encodeFunctionData( + functionFragment: "upgrade", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeAndCall", + values: [AddressLike, AddressLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "upgrade", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "upgradeAndCall", + data: BytesLike + ): Result; +} + +export interface IProxyAdmin extends BaseContract { + connect(runner?: ContractRunner | null): IProxyAdmin; + waitForDeployment(): Promise; + + interface: IProxyAdminInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + upgrade: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [void], + "nonpayable" + >; + + upgradeAndCall: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike, arg2: BytesLike], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "upgrade" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "upgradeAndCall" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike, arg2: BytesLike], + [void], + "payable" + >; + + filters: {}; +} diff --git a/v2/typechain-types/IReceiverEVM.sol/IReceiverEVMEvents.ts b/v2/typechain-types/IReceiverEVM.sol/IReceiverEVMEvents.ts new file mode 100644 index 00000000..16c5430e --- /dev/null +++ b/v2/typechain-types/IReceiverEVM.sol/IReceiverEVMEvents.ts @@ -0,0 +1,277 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../common"; + +export interface IReceiverEVMEventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: + | "ReceivedERC20" + | "ReceivedNoParams" + | "ReceivedNonPayable" + | "ReceivedPayable" + | "ReceivedRevert" + ): EventFragment; +} + +export namespace ReceivedERC20Event { + export type InputTuple = [ + sender: AddressLike, + amount: BigNumberish, + token: AddressLike, + destination: AddressLike + ]; + export type OutputTuple = [ + sender: string, + amount: bigint, + token: string, + destination: string + ]; + export interface OutputObject { + sender: string; + amount: bigint; + token: string; + destination: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ReceivedNoParamsEvent { + export type InputTuple = [sender: AddressLike]; + export type OutputTuple = [sender: string]; + export interface OutputObject { + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ReceivedNonPayableEvent { + export type InputTuple = [ + sender: AddressLike, + strs: string[], + nums: BigNumberish[], + flag: boolean + ]; + export type OutputTuple = [ + sender: string, + strs: string[], + nums: bigint[], + flag: boolean + ]; + export interface OutputObject { + sender: string; + strs: string[]; + nums: bigint[]; + flag: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ReceivedPayableEvent { + export type InputTuple = [ + sender: AddressLike, + value: BigNumberish, + str: string, + num: BigNumberish, + flag: boolean + ]; + export type OutputTuple = [ + sender: string, + value: bigint, + str: string, + num: bigint, + flag: boolean + ]; + export interface OutputObject { + sender: string; + value: bigint; + str: string; + num: bigint; + flag: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ReceivedRevertEvent { + export type InputTuple = [sender: AddressLike, data: BytesLike]; + export type OutputTuple = [sender: string, data: string]; + export interface OutputObject { + sender: string; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IReceiverEVMEvents extends BaseContract { + connect(runner?: ContractRunner | null): IReceiverEVMEvents; + waitForDeployment(): Promise; + + interface: IReceiverEVMEventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "ReceivedERC20" + ): TypedContractEvent< + ReceivedERC20Event.InputTuple, + ReceivedERC20Event.OutputTuple, + ReceivedERC20Event.OutputObject + >; + getEvent( + key: "ReceivedNoParams" + ): TypedContractEvent< + ReceivedNoParamsEvent.InputTuple, + ReceivedNoParamsEvent.OutputTuple, + ReceivedNoParamsEvent.OutputObject + >; + getEvent( + key: "ReceivedNonPayable" + ): TypedContractEvent< + ReceivedNonPayableEvent.InputTuple, + ReceivedNonPayableEvent.OutputTuple, + ReceivedNonPayableEvent.OutputObject + >; + getEvent( + key: "ReceivedPayable" + ): TypedContractEvent< + ReceivedPayableEvent.InputTuple, + ReceivedPayableEvent.OutputTuple, + ReceivedPayableEvent.OutputObject + >; + getEvent( + key: "ReceivedRevert" + ): TypedContractEvent< + ReceivedRevertEvent.InputTuple, + ReceivedRevertEvent.OutputTuple, + ReceivedRevertEvent.OutputObject + >; + + filters: { + "ReceivedERC20(address,uint256,address,address)": TypedContractEvent< + ReceivedERC20Event.InputTuple, + ReceivedERC20Event.OutputTuple, + ReceivedERC20Event.OutputObject + >; + ReceivedERC20: TypedContractEvent< + ReceivedERC20Event.InputTuple, + ReceivedERC20Event.OutputTuple, + ReceivedERC20Event.OutputObject + >; + + "ReceivedNoParams(address)": TypedContractEvent< + ReceivedNoParamsEvent.InputTuple, + ReceivedNoParamsEvent.OutputTuple, + ReceivedNoParamsEvent.OutputObject + >; + ReceivedNoParams: TypedContractEvent< + ReceivedNoParamsEvent.InputTuple, + ReceivedNoParamsEvent.OutputTuple, + ReceivedNoParamsEvent.OutputObject + >; + + "ReceivedNonPayable(address,string[],uint256[],bool)": TypedContractEvent< + ReceivedNonPayableEvent.InputTuple, + ReceivedNonPayableEvent.OutputTuple, + ReceivedNonPayableEvent.OutputObject + >; + ReceivedNonPayable: TypedContractEvent< + ReceivedNonPayableEvent.InputTuple, + ReceivedNonPayableEvent.OutputTuple, + ReceivedNonPayableEvent.OutputObject + >; + + "ReceivedPayable(address,uint256,string,uint256,bool)": TypedContractEvent< + ReceivedPayableEvent.InputTuple, + ReceivedPayableEvent.OutputTuple, + ReceivedPayableEvent.OutputObject + >; + ReceivedPayable: TypedContractEvent< + ReceivedPayableEvent.InputTuple, + ReceivedPayableEvent.OutputTuple, + ReceivedPayableEvent.OutputObject + >; + + "ReceivedRevert(address,bytes)": TypedContractEvent< + ReceivedRevertEvent.InputTuple, + ReceivedRevertEvent.OutputTuple, + ReceivedRevertEvent.OutputObject + >; + ReceivedRevert: TypedContractEvent< + ReceivedRevertEvent.InputTuple, + ReceivedRevertEvent.OutputTuple, + ReceivedRevertEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IReceiverEVM.sol/index.ts b/v2/typechain-types/IReceiverEVM.sol/index.ts new file mode 100644 index 00000000..6abc6179 --- /dev/null +++ b/v2/typechain-types/IReceiverEVM.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IReceiverEVMEvents } from "./IReceiverEVMEvents"; diff --git a/v2/typechain-types/ISystem.ts b/v2/typechain-types/ISystem.ts new file mode 100644 index 00000000..17e6bc29 --- /dev/null +++ b/v2/typechain-types/ISystem.ts @@ -0,0 +1,176 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ISystemInterface extends Interface { + getFunction( + nameOrSignature: + | "FUNGIBLE_MODULE_ADDRESS" + | "gasCoinZRC20ByChainId" + | "gasPriceByChainId" + | "gasZetaPoolByChainId" + | "uniswapv2FactoryAddress" + | "wZetaContractAddress" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "gasCoinZRC20ByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasPriceByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasZetaPoolByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2FactoryAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "wZetaContractAddress", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasCoinZRC20ByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasPriceByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasZetaPoolByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2FactoryAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "wZetaContractAddress", + data: BytesLike + ): Result; +} + +export interface ISystem extends BaseContract { + connect(runner?: ContractRunner | null): ISystem; + waitForDeployment(): Promise; + + interface: ISystemInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + gasCoinZRC20ByChainId: TypedContractMethod< + [chainID: BigNumberish], + [string], + "view" + >; + + gasPriceByChainId: TypedContractMethod< + [chainID: BigNumberish], + [bigint], + "view" + >; + + gasZetaPoolByChainId: TypedContractMethod< + [chainID: BigNumberish], + [string], + "view" + >; + + uniswapv2FactoryAddress: TypedContractMethod<[], [string], "view">; + + wZetaContractAddress: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gasCoinZRC20ByChainId" + ): TypedContractMethod<[chainID: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "gasPriceByChainId" + ): TypedContractMethod<[chainID: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "gasZetaPoolByChainId" + ): TypedContractMethod<[chainID: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "uniswapv2FactoryAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "wZetaContractAddress" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/v2/typechain-types/IUpgradeableBeacon.ts b/v2/typechain-types/IUpgradeableBeacon.ts new file mode 100644 index 00000000..1fd3a80c --- /dev/null +++ b/v2/typechain-types/IUpgradeableBeacon.ts @@ -0,0 +1,88 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface IUpgradeableBeaconInterface extends Interface { + getFunction(nameOrSignature: "upgradeTo"): FunctionFragment; + + encodeFunctionData( + functionFragment: "upgradeTo", + values: [AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; +} + +export interface IUpgradeableBeacon extends BaseContract { + connect(runner?: ContractRunner | null): IUpgradeableBeacon; + waitForDeployment(): Promise; + + interface: IUpgradeableBeaconInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + upgradeTo: TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "upgradeTo" + ): TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + + filters: {}; +} diff --git a/v2/typechain-types/IUpgradeableProxy.ts b/v2/typechain-types/IUpgradeableProxy.ts new file mode 100644 index 00000000..448a53db --- /dev/null +++ b/v2/typechain-types/IUpgradeableProxy.ts @@ -0,0 +1,111 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface IUpgradeableProxyInterface extends Interface { + getFunction( + nameOrSignature: "upgradeTo" | "upgradeToAndCall" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "upgradeTo", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; +} + +export interface IUpgradeableProxy extends BaseContract { + connect(runner?: ContractRunner | null): IUpgradeableProxy; + waitForDeployment(): Promise; + + interface: IUpgradeableProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + upgradeTo: TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + + upgradeToAndCall: TypedContractMethod< + [arg0: AddressLike, arg1: BytesLike], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "upgradeTo" + ): TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [arg0: AddressLike, arg1: BytesLike], + [void], + "payable" + >; + + filters: {}; +} diff --git a/v2/typechain-types/IWZETA.sol/IWETH9.ts b/v2/typechain-types/IWZETA.sol/IWETH9.ts new file mode 100644 index 00000000..5e08f529 --- /dev/null +++ b/v2/typechain-types/IWZETA.sol/IWETH9.ts @@ -0,0 +1,345 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface IWETH9Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "deposit" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "Deposit" | "Transfer" | "Withdrawal" + ): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [dst: AddressLike, wad: BigNumberish]; + export type OutputTuple = [dst: string, wad: bigint]; + export interface OutputObject { + dst: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [src: AddressLike, wad: BigNumberish]; + export type OutputTuple = [src: string, wad: bigint]; + export interface OutputObject { + src: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IWETH9 extends BaseContract { + connect(runner?: ContractRunner | null): IWETH9; + waitForDeployment(): Promise; + + interface: IWETH9Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + deposit: TypedContractMethod<[], [void], "payable">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[], [void], "payable">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "Withdrawal(address,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IWZETA.sol/index.ts b/v2/typechain-types/IWZETA.sol/index.ts new file mode 100644 index 00000000..95069327 --- /dev/null +++ b/v2/typechain-types/IWZETA.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IWETH9 } from "./IWETH9"; diff --git a/v2/typechain-types/IZRC20.sol/IZRC20.ts b/v2/typechain-types/IZRC20.sol/IZRC20.ts new file mode 100644 index 00000000..fdd91a64 --- /dev/null +++ b/v2/typechain-types/IZRC20.sol/IZRC20.ts @@ -0,0 +1,259 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface IZRC20Interface extends Interface { + getFunction( + nameOrSignature: + | "PROTOCOL_FLAT_FEE" + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "deposit" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + | "withdrawGasFee" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "PROTOCOL_FLAT_FEE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "PROTOCOL_FLAT_FEE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; +} + +export interface IZRC20 extends BaseContract { + connect(runner?: ContractRunner | null): IZRC20; + waitForDeployment(): Promise; + + interface: IZRC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "PROTOCOL_FLAT_FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + + filters: {}; +} diff --git a/v2/typechain-types/IZRC20.sol/IZRC20Metadata.ts b/v2/typechain-types/IZRC20.sol/IZRC20Metadata.ts new file mode 100644 index 00000000..38ec49b5 --- /dev/null +++ b/v2/typechain-types/IZRC20.sol/IZRC20Metadata.ts @@ -0,0 +1,283 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface IZRC20MetadataInterface extends Interface { + getFunction( + nameOrSignature: + | "PROTOCOL_FLAT_FEE" + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "decimals" + | "deposit" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + | "withdrawGasFee" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "PROTOCOL_FLAT_FEE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "PROTOCOL_FLAT_FEE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; +} + +export interface IZRC20Metadata extends BaseContract { + connect(runner?: ContractRunner | null): IZRC20Metadata; + waitForDeployment(): Promise; + + interface: IZRC20MetadataInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "PROTOCOL_FLAT_FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + + filters: {}; +} diff --git a/v2/typechain-types/IZRC20.sol/ZRC20Events.ts b/v2/typechain-types/IZRC20.sol/ZRC20Events.ts new file mode 100644 index 00000000..0754f144 --- /dev/null +++ b/v2/typechain-types/IZRC20.sol/ZRC20Events.ts @@ -0,0 +1,330 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../common"; + +export interface ZRC20EventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: + | "Approval" + | "Deposit" + | "Transfer" + | "UpdatedGasLimit" + | "UpdatedProtocolFlatFee" + | "UpdatedSystemContract" + | "Withdrawal" + ): EventFragment; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [ + from: BytesLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGasLimitEvent { + export type InputTuple = [gasLimit: BigNumberish]; + export type OutputTuple = [gasLimit: bigint]; + export interface OutputObject { + gasLimit: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedProtocolFlatFeeEvent { + export type InputTuple = [protocolFlatFee: BigNumberish]; + export type OutputTuple = [protocolFlatFee: bigint]; + export interface OutputObject { + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedSystemContractEvent { + export type InputTuple = [systemContract: AddressLike]; + export type OutputTuple = [systemContract: string]; + export interface OutputObject { + systemContract: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [ + from: AddressLike, + to: BytesLike, + value: BigNumberish, + gasFee: BigNumberish, + protocolFlatFee: BigNumberish + ]; + export type OutputTuple = [ + from: string, + to: string, + value: bigint, + gasFee: bigint, + protocolFlatFee: bigint + ]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + gasFee: bigint; + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZRC20Events extends BaseContract { + connect(runner?: ContractRunner | null): ZRC20Events; + waitForDeployment(): Promise; + + interface: ZRC20EventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "UpdatedGasLimit" + ): TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + getEvent( + key: "UpdatedProtocolFlatFee" + ): TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + getEvent( + key: "UpdatedSystemContract" + ): TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(bytes,address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "UpdatedGasLimit(uint256)": TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + UpdatedGasLimit: TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + + "UpdatedProtocolFlatFee(uint256)": TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + UpdatedProtocolFlatFee: TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + + "UpdatedSystemContract(address)": TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + UpdatedSystemContract: TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + + "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IZRC20.sol/index.ts b/v2/typechain-types/IZRC20.sol/index.ts new file mode 100644 index 00000000..603ef6e3 --- /dev/null +++ b/v2/typechain-types/IZRC20.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IZRC20 } from "./IZRC20"; +export type { IZRC20Metadata } from "./IZRC20Metadata"; +export type { ZRC20Events } from "./ZRC20Events"; diff --git a/v2/typechain-types/IZetaConnector.sol/IZetaConnectorEvents.ts b/v2/typechain-types/IZetaConnector.sol/IZetaConnectorEvents.ts new file mode 100644 index 00000000..58de4a51 --- /dev/null +++ b/v2/typechain-types/IZetaConnector.sol/IZetaConnectorEvents.ts @@ -0,0 +1,182 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../common"; + +export interface IZetaConnectorEventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: "Withdraw" | "WithdrawAndCall" | "WithdrawAndRevert" + ): EventFragment; +} + +export namespace WithdrawEvent { + export type InputTuple = [to: AddressLike, amount: BigNumberish]; + export type OutputTuple = [to: string, amount: bigint]; + export interface OutputObject { + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndCallEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndRevertEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IZetaConnectorEvents extends BaseContract { + connect(runner?: ContractRunner | null): IZetaConnectorEvents; + waitForDeployment(): Promise; + + interface: IZetaConnectorEventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Withdraw" + ): TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + getEvent( + key: "WithdrawAndCall" + ): TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + getEvent( + key: "WithdrawAndRevert" + ): TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + + filters: { + "Withdraw(address,uint256)": TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + Withdraw: TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + + "WithdrawAndCall(address,uint256,bytes)": TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + WithdrawAndCall: TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + + "WithdrawAndRevert(address,uint256,bytes)": TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + WithdrawAndRevert: TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/IZetaConnector.sol/index.ts b/v2/typechain-types/IZetaConnector.sol/index.ts new file mode 100644 index 00000000..eb97bbe0 --- /dev/null +++ b/v2/typechain-types/IZetaConnector.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IZetaConnectorEvents } from "./IZetaConnectorEvents"; diff --git a/v2/typechain-types/IZetaNonEthNew.ts b/v2/typechain-types/IZetaNonEthNew.ts new file mode 100644 index 00000000..0a306df7 --- /dev/null +++ b/v2/typechain-types/IZetaNonEthNew.ts @@ -0,0 +1,300 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface IZetaNonEthNewInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "burnFrom" + | "mint" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "burnFrom", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IZetaNonEthNew extends BaseContract { + connect(runner?: ContractRunner | null): IZetaNonEthNew; + waitForDeployment(): Promise; + + interface: IZetaNonEthNewInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burnFrom: TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + mint: TypedContractMethod< + [mintee: AddressLike, value: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burnFrom" + ): TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [mintee: AddressLike, value: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/Initializable.ts b/v2/typechain-types/Initializable.ts new file mode 100644 index 00000000..45c2e5fe --- /dev/null +++ b/v2/typechain-types/Initializable.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + FunctionFragment, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "./common"; + +export interface InitializableInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Initializable extends BaseContract { + connect(runner?: ContractRunner | null): Initializable; + waitForDeployment(): Promise; + + interface: InitializableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/Math.ts b/v2/typechain-types/Math.ts new file mode 100644 index 00000000..b3ebedb6 --- /dev/null +++ b/v2/typechain-types/Math.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "./common"; + +export interface MathInterface extends Interface {} + +export interface Math extends BaseContract { + connect(runner?: ContractRunner | null): Math; + waitForDeployment(): Promise; + + interface: MathInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/MockERC20.ts b/v2/typechain-types/MockERC20.ts new file mode 100644 index 00000000..84669ff4 --- /dev/null +++ b/v2/typechain-types/MockERC20.ts @@ -0,0 +1,370 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface MockERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "DOMAIN_SEPARATOR" + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "initialize" + | "name" + | "nonces" + | "permit" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "initialize", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface MockERC20 extends BaseContract { + connect(runner?: ContractRunner | null): MockERC20; + waitForDeployment(): Promise; + + interface: MockERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + initialize: TypedContractMethod< + [name_: string, symbol_: string, decimals_: BigNumberish], + [void], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + nonces: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + + permit: TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DOMAIN_SEPARATOR" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [name_: string, symbol_: string, decimals_: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "nonces" + ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "permit" + ): TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/MockERC721.ts b/v2/typechain-types/MockERC721.ts new file mode 100644 index 00000000..6d5df3dd --- /dev/null +++ b/v2/typechain-types/MockERC721.ts @@ -0,0 +1,433 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface MockERC721Interface extends Interface { + getFunction( + nameOrSignature: + | "approve" + | "balanceOf" + | "getApproved" + | "initialize" + | "isApprovedForAll" + | "name" + | "ownerOf" + | "safeTransferFrom(address,address,uint256)" + | "safeTransferFrom(address,address,uint256,bytes)" + | "setApprovalForAll" + | "supportsInterface" + | "symbol" + | "tokenURI" + | "transferFrom" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "ApprovalForAll" | "Transfer" + ): EventFragment; + + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getApproved", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "ownerOf", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom(address,address,uint256)", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom(address,address,uint256,bytes)", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "tokenURI", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getApproved", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom(address,address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom(address,address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tokenURI", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + _owner: AddressLike, + _approved: AddressLike, + _tokenId: BigNumberish + ]; + export type OutputTuple = [ + _owner: string, + _approved: string, + _tokenId: bigint + ]; + export interface OutputObject { + _owner: string; + _approved: string; + _tokenId: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ApprovalForAllEvent { + export type InputTuple = [ + _owner: AddressLike, + _operator: AddressLike, + _approved: boolean + ]; + export type OutputTuple = [ + _owner: string, + _operator: string, + _approved: boolean + ]; + export interface OutputObject { + _owner: string; + _operator: string; + _approved: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + _from: AddressLike, + _to: AddressLike, + _tokenId: BigNumberish + ]; + export type OutputTuple = [_from: string, _to: string, _tokenId: bigint]; + export interface OutputObject { + _from: string; + _to: string; + _tokenId: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface MockERC721 extends BaseContract { + connect(runner?: ContractRunner | null): MockERC721; + waitForDeployment(): Promise; + + interface: MockERC721Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + approve: TypedContractMethod< + [spender: AddressLike, id: BigNumberish], + [void], + "payable" + >; + + balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + getApproved: TypedContractMethod<[id: BigNumberish], [string], "view">; + + initialize: TypedContractMethod< + [name_: string, symbol_: string], + [void], + "nonpayable" + >; + + isApprovedForAll: TypedContractMethod< + [owner: AddressLike, operator: AddressLike], + [boolean], + "view" + >; + + name: TypedContractMethod<[], [string], "view">; + + ownerOf: TypedContractMethod<[id: BigNumberish], [string], "view">; + + "safeTransferFrom(address,address,uint256)": TypedContractMethod< + [from: AddressLike, to: AddressLike, id: BigNumberish], + [void], + "payable" + >; + + "safeTransferFrom(address,address,uint256,bytes)": TypedContractMethod< + [from: AddressLike, to: AddressLike, id: BigNumberish, data: BytesLike], + [void], + "payable" + >; + + setApprovalForAll: TypedContractMethod< + [operator: AddressLike, approved: boolean], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + symbol: TypedContractMethod<[], [string], "view">; + + tokenURI: TypedContractMethod<[id: BigNumberish], [string], "view">; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, id: BigNumberish], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, id: BigNumberish], + [void], + "payable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getApproved" + ): TypedContractMethod<[id: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [name_: string, symbol_: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "isApprovedForAll" + ): TypedContractMethod< + [owner: AddressLike, operator: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "ownerOf" + ): TypedContractMethod<[id: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "safeTransferFrom(address,address,uint256)" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, id: BigNumberish], + [void], + "payable" + >; + getFunction( + nameOrSignature: "safeTransferFrom(address,address,uint256,bytes)" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, id: BigNumberish, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "setApprovalForAll" + ): TypedContractMethod< + [operator: AddressLike, approved: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "tokenURI" + ): TypedContractMethod<[id: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, id: BigNumberish], + [void], + "payable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "ApprovalForAll" + ): TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "ApprovalForAll(address,address,bool)": TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + ApprovalForAll: TypedContractEvent< + ApprovalForAllEvent.InputTuple, + ApprovalForAllEvent.OutputTuple, + ApprovalForAllEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/Ownable.ts b/v2/typechain-types/Ownable.ts new file mode 100644 index 00000000..c3efc4b2 --- /dev/null +++ b/v2/typechain-types/Ownable.ts @@ -0,0 +1,153 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface OwnableInterface extends Interface { + getFunction( + nameOrSignature: "owner" | "renounceOwnership" | "transferOwnership" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Ownable extends BaseContract { + connect(runner?: ContractRunner | null): Ownable; + waitForDeployment(): Promise; + + interface: OwnableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + owner: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + filters: { + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/OwnableUpgradeable.ts b/v2/typechain-types/OwnableUpgradeable.ts new file mode 100644 index 00000000..dbbbfcd0 --- /dev/null +++ b/v2/typechain-types/OwnableUpgradeable.ts @@ -0,0 +1,186 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface OwnableUpgradeableInterface extends Interface { + getFunction( + nameOrSignature: "owner" | "renounceOwnership" | "transferOwnership" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Initialized" | "OwnershipTransferred" + ): EventFragment; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface OwnableUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): OwnableUpgradeable; + waitForDeployment(): Promise; + + interface: OwnableUpgradeableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + owner: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/Proxy.ts b/v2/typechain-types/Proxy.ts new file mode 100644 index 00000000..c06e88c6 --- /dev/null +++ b/v2/typechain-types/Proxy.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "./common"; + +export interface ProxyInterface extends Interface {} + +export interface Proxy extends BaseContract { + connect(runner?: ContractRunner | null): Proxy; + waitForDeployment(): Promise; + + interface: ProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/ProxyAdmin.ts b/v2/typechain-types/ProxyAdmin.ts new file mode 100644 index 00000000..e0ce5816 --- /dev/null +++ b/v2/typechain-types/ProxyAdmin.ts @@ -0,0 +1,192 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ProxyAdminInterface extends Interface { + getFunction( + nameOrSignature: + | "UPGRADE_INTERFACE_VERSION" + | "owner" + | "renounceOwnership" + | "transferOwnership" + | "upgradeAndCall" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeAndCall", + values: [AddressLike, AddressLike, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "upgradeAndCall", + data: BytesLike + ): Result; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ProxyAdmin extends BaseContract { + connect(runner?: ContractRunner | null): ProxyAdmin; + waitForDeployment(): Promise; + + interface: ProxyAdminInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + owner: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + upgradeAndCall: TypedContractMethod< + [proxy: AddressLike, implementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeAndCall" + ): TypedContractMethod< + [proxy: AddressLike, implementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + filters: { + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ReceiverEVM.ts b/v2/typechain-types/ReceiverEVM.ts new file mode 100644 index 00000000..1d3316e5 --- /dev/null +++ b/v2/typechain-types/ReceiverEVM.ts @@ -0,0 +1,396 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ReceiverEVMInterface extends Interface { + getFunction( + nameOrSignature: + | "onRevert" + | "receiveERC20" + | "receiveERC20Partial" + | "receiveNoParams" + | "receiveNonPayable" + | "receivePayable" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "ReceivedERC20" + | "ReceivedNoParams" + | "ReceivedNonPayable" + | "ReceivedPayable" + | "ReceivedRevert" + ): EventFragment; + + encodeFunctionData(functionFragment: "onRevert", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "receiveERC20", + values: [BigNumberish, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "receiveERC20Partial", + values: [BigNumberish, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "receiveNoParams", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "receiveNonPayable", + values: [string[], BigNumberish[], boolean] + ): string; + encodeFunctionData( + functionFragment: "receivePayable", + values: [string, BigNumberish, boolean] + ): string; + + decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "receiveERC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "receiveERC20Partial", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "receiveNoParams", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "receiveNonPayable", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "receivePayable", + data: BytesLike + ): Result; +} + +export namespace ReceivedERC20Event { + export type InputTuple = [ + sender: AddressLike, + amount: BigNumberish, + token: AddressLike, + destination: AddressLike + ]; + export type OutputTuple = [ + sender: string, + amount: bigint, + token: string, + destination: string + ]; + export interface OutputObject { + sender: string; + amount: bigint; + token: string; + destination: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ReceivedNoParamsEvent { + export type InputTuple = [sender: AddressLike]; + export type OutputTuple = [sender: string]; + export interface OutputObject { + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ReceivedNonPayableEvent { + export type InputTuple = [ + sender: AddressLike, + strs: string[], + nums: BigNumberish[], + flag: boolean + ]; + export type OutputTuple = [ + sender: string, + strs: string[], + nums: bigint[], + flag: boolean + ]; + export interface OutputObject { + sender: string; + strs: string[]; + nums: bigint[]; + flag: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ReceivedPayableEvent { + export type InputTuple = [ + sender: AddressLike, + value: BigNumberish, + str: string, + num: BigNumberish, + flag: boolean + ]; + export type OutputTuple = [ + sender: string, + value: bigint, + str: string, + num: bigint, + flag: boolean + ]; + export interface OutputObject { + sender: string; + value: bigint; + str: string; + num: bigint; + flag: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ReceivedRevertEvent { + export type InputTuple = [sender: AddressLike, data: BytesLike]; + export type OutputTuple = [sender: string, data: string]; + export interface OutputObject { + sender: string; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ReceiverEVM extends BaseContract { + connect(runner?: ContractRunner | null): ReceiverEVM; + waitForDeployment(): Promise; + + interface: ReceiverEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onRevert: TypedContractMethod<[data: BytesLike], [void], "nonpayable">; + + receiveERC20: TypedContractMethod< + [amount: BigNumberish, token: AddressLike, destination: AddressLike], + [void], + "nonpayable" + >; + + receiveERC20Partial: TypedContractMethod< + [amount: BigNumberish, token: AddressLike, destination: AddressLike], + [void], + "nonpayable" + >; + + receiveNoParams: TypedContractMethod<[], [void], "nonpayable">; + + receiveNonPayable: TypedContractMethod< + [strs: string[], nums: BigNumberish[], flag: boolean], + [void], + "nonpayable" + >; + + receivePayable: TypedContractMethod< + [str: string, num: BigNumberish, flag: boolean], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onRevert" + ): TypedContractMethod<[data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "receiveERC20" + ): TypedContractMethod< + [amount: BigNumberish, token: AddressLike, destination: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "receiveERC20Partial" + ): TypedContractMethod< + [amount: BigNumberish, token: AddressLike, destination: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "receiveNoParams" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "receiveNonPayable" + ): TypedContractMethod< + [strs: string[], nums: BigNumberish[], flag: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "receivePayable" + ): TypedContractMethod< + [str: string, num: BigNumberish, flag: boolean], + [void], + "payable" + >; + + getEvent( + key: "ReceivedERC20" + ): TypedContractEvent< + ReceivedERC20Event.InputTuple, + ReceivedERC20Event.OutputTuple, + ReceivedERC20Event.OutputObject + >; + getEvent( + key: "ReceivedNoParams" + ): TypedContractEvent< + ReceivedNoParamsEvent.InputTuple, + ReceivedNoParamsEvent.OutputTuple, + ReceivedNoParamsEvent.OutputObject + >; + getEvent( + key: "ReceivedNonPayable" + ): TypedContractEvent< + ReceivedNonPayableEvent.InputTuple, + ReceivedNonPayableEvent.OutputTuple, + ReceivedNonPayableEvent.OutputObject + >; + getEvent( + key: "ReceivedPayable" + ): TypedContractEvent< + ReceivedPayableEvent.InputTuple, + ReceivedPayableEvent.OutputTuple, + ReceivedPayableEvent.OutputObject + >; + getEvent( + key: "ReceivedRevert" + ): TypedContractEvent< + ReceivedRevertEvent.InputTuple, + ReceivedRevertEvent.OutputTuple, + ReceivedRevertEvent.OutputObject + >; + + filters: { + "ReceivedERC20(address,uint256,address,address)": TypedContractEvent< + ReceivedERC20Event.InputTuple, + ReceivedERC20Event.OutputTuple, + ReceivedERC20Event.OutputObject + >; + ReceivedERC20: TypedContractEvent< + ReceivedERC20Event.InputTuple, + ReceivedERC20Event.OutputTuple, + ReceivedERC20Event.OutputObject + >; + + "ReceivedNoParams(address)": TypedContractEvent< + ReceivedNoParamsEvent.InputTuple, + ReceivedNoParamsEvent.OutputTuple, + ReceivedNoParamsEvent.OutputObject + >; + ReceivedNoParams: TypedContractEvent< + ReceivedNoParamsEvent.InputTuple, + ReceivedNoParamsEvent.OutputTuple, + ReceivedNoParamsEvent.OutputObject + >; + + "ReceivedNonPayable(address,string[],uint256[],bool)": TypedContractEvent< + ReceivedNonPayableEvent.InputTuple, + ReceivedNonPayableEvent.OutputTuple, + ReceivedNonPayableEvent.OutputObject + >; + ReceivedNonPayable: TypedContractEvent< + ReceivedNonPayableEvent.InputTuple, + ReceivedNonPayableEvent.OutputTuple, + ReceivedNonPayableEvent.OutputObject + >; + + "ReceivedPayable(address,uint256,string,uint256,bool)": TypedContractEvent< + ReceivedPayableEvent.InputTuple, + ReceivedPayableEvent.OutputTuple, + ReceivedPayableEvent.OutputObject + >; + ReceivedPayable: TypedContractEvent< + ReceivedPayableEvent.InputTuple, + ReceivedPayableEvent.OutputTuple, + ReceivedPayableEvent.OutputObject + >; + + "ReceivedRevert(address,bytes)": TypedContractEvent< + ReceivedRevertEvent.InputTuple, + ReceivedRevertEvent.OutputTuple, + ReceivedRevertEvent.OutputObject + >; + ReceivedRevert: TypedContractEvent< + ReceivedRevertEvent.InputTuple, + ReceivedRevertEvent.OutputTuple, + ReceivedRevertEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ReentrancyGuard.ts b/v2/typechain-types/ReentrancyGuard.ts new file mode 100644 index 00000000..c6fb4446 --- /dev/null +++ b/v2/typechain-types/ReentrancyGuard.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "./common"; + +export interface ReentrancyGuardInterface extends Interface {} + +export interface ReentrancyGuard extends BaseContract { + connect(runner?: ContractRunner | null): ReentrancyGuard; + waitForDeployment(): Promise; + + interface: ReentrancyGuardInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/ReentrancyGuardUpgradeable.ts b/v2/typechain-types/ReentrancyGuardUpgradeable.ts new file mode 100644 index 00000000..827db14c --- /dev/null +++ b/v2/typechain-types/ReentrancyGuardUpgradeable.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + FunctionFragment, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "./common"; + +export interface ReentrancyGuardUpgradeableInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ReentrancyGuardUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): ReentrancyGuardUpgradeable; + waitForDeployment(): Promise; + + interface: ReentrancyGuardUpgradeableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/SafeERC20.ts b/v2/typechain-types/SafeERC20.ts new file mode 100644 index 00000000..99be3230 --- /dev/null +++ b/v2/typechain-types/SafeERC20.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "./common"; + +export interface SafeERC20Interface extends Interface {} + +export interface SafeERC20 extends BaseContract { + connect(runner?: ContractRunner | null): SafeERC20; + waitForDeployment(): Promise; + + interface: SafeERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/SenderZEVM.ts b/v2/typechain-types/SenderZEVM.ts new file mode 100644 index 00000000..02bc0828 --- /dev/null +++ b/v2/typechain-types/SenderZEVM.ts @@ -0,0 +1,151 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface SenderZEVMInterface extends Interface { + getFunction( + nameOrSignature: "callReceiver" | "gateway" | "withdrawAndCallReceiver" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "callReceiver", + values: [BytesLike, string, BigNumberish, boolean] + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "withdrawAndCallReceiver", + values: [ + BytesLike, + BigNumberish, + AddressLike, + string, + BigNumberish, + boolean + ] + ): string; + + decodeFunctionResult( + functionFragment: "callReceiver", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCallReceiver", + data: BytesLike + ): Result; +} + +export interface SenderZEVM extends BaseContract { + connect(runner?: ContractRunner | null): SenderZEVM; + waitForDeployment(): Promise; + + interface: SenderZEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + callReceiver: TypedContractMethod< + [receiver: BytesLike, str: string, num: BigNumberish, flag: boolean], + [void], + "nonpayable" + >; + + gateway: TypedContractMethod<[], [string], "view">; + + withdrawAndCallReceiver: TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + str: string, + num: BigNumberish, + flag: boolean + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "callReceiver" + ): TypedContractMethod< + [receiver: BytesLike, str: string, num: BigNumberish, flag: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "withdrawAndCallReceiver" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + str: string, + num: BigNumberish, + flag: boolean + ], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/v2/typechain-types/StdAssertions.ts b/v2/typechain-types/StdAssertions.ts new file mode 100644 index 00000000..fc9aab39 --- /dev/null +++ b/v2/typechain-types/StdAssertions.ts @@ -0,0 +1,762 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface StdAssertionsInterface extends Interface { + getFunction(nameOrSignature: "failed"): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface StdAssertions extends BaseContract { + connect(runner?: ContractRunner | null): StdAssertions; + waitForDeployment(): Promise; + + interface: StdAssertionsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + failed: TypedContractMethod<[], [boolean], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/StdError.sol/StdError.ts b/v2/typechain-types/StdError.sol/StdError.ts new file mode 100644 index 00000000..0159728c --- /dev/null +++ b/v2/typechain-types/StdError.sol/StdError.ts @@ -0,0 +1,199 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface StdErrorInterface extends Interface { + getFunction( + nameOrSignature: + | "arithmeticError" + | "assertionError" + | "divisionError" + | "encodeStorageError" + | "enumConversionError" + | "indexOOBError" + | "memOverflowError" + | "popError" + | "zeroVarError" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "arithmeticError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "assertionError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "divisionError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "encodeStorageError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "enumConversionError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "indexOOBError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "memOverflowError", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "popError", values?: undefined): string; + encodeFunctionData( + functionFragment: "zeroVarError", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "arithmeticError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertionError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "divisionError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "encodeStorageError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "enumConversionError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "indexOOBError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "memOverflowError", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "popError", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "zeroVarError", + data: BytesLike + ): Result; +} + +export interface StdError extends BaseContract { + connect(runner?: ContractRunner | null): StdError; + waitForDeployment(): Promise; + + interface: StdErrorInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + arithmeticError: TypedContractMethod<[], [string], "view">; + + assertionError: TypedContractMethod<[], [string], "view">; + + divisionError: TypedContractMethod<[], [string], "view">; + + encodeStorageError: TypedContractMethod<[], [string], "view">; + + enumConversionError: TypedContractMethod<[], [string], "view">; + + indexOOBError: TypedContractMethod<[], [string], "view">; + + memOverflowError: TypedContractMethod<[], [string], "view">; + + popError: TypedContractMethod<[], [string], "view">; + + zeroVarError: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "arithmeticError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "assertionError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "divisionError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "encodeStorageError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "enumConversionError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "indexOOBError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "memOverflowError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "popError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zeroVarError" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/v2/typechain-types/StdError.sol/index.ts b/v2/typechain-types/StdError.sol/index.ts new file mode 100644 index 00000000..011e98fa --- /dev/null +++ b/v2/typechain-types/StdError.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { StdError } from "./StdError"; diff --git a/v2/typechain-types/StdInvariant.ts b/v2/typechain-types/StdInvariant.ts new file mode 100644 index 00000000..6cbf282b --- /dev/null +++ b/v2/typechain-types/StdInvariant.ts @@ -0,0 +1,273 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "./common"; + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface StdInvariantInterface extends Interface { + getFunction( + nameOrSignature: + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; +} + +export interface StdInvariant extends BaseContract { + connect(runner?: ContractRunner | null): StdInvariant; + waitForDeployment(): Promise; + + interface: StdInvariantInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + + filters: {}; +} diff --git a/v2/typechain-types/StdStorage.sol/StdStorageSafe.ts b/v2/typechain-types/StdStorage.sol/StdStorageSafe.ts new file mode 100644 index 00000000..68c56aa9 --- /dev/null +++ b/v2/typechain-types/StdStorage.sol/StdStorageSafe.ts @@ -0,0 +1,153 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../common"; + +export interface StdStorageSafeInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: "SlotFound" | "WARNING_UninitedSlot" + ): EventFragment; +} + +export namespace SlotFoundEvent { + export type InputTuple = [ + who: AddressLike, + fsig: BytesLike, + keysHash: BytesLike, + slot: BigNumberish + ]; + export type OutputTuple = [ + who: string, + fsig: string, + keysHash: string, + slot: bigint + ]; + export interface OutputObject { + who: string; + fsig: string; + keysHash: string; + slot: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WARNING_UninitedSlotEvent { + export type InputTuple = [who: AddressLike, slot: BigNumberish]; + export type OutputTuple = [who: string, slot: bigint]; + export interface OutputObject { + who: string; + slot: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface StdStorageSafe extends BaseContract { + connect(runner?: ContractRunner | null): StdStorageSafe; + waitForDeployment(): Promise; + + interface: StdStorageSafeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "SlotFound" + ): TypedContractEvent< + SlotFoundEvent.InputTuple, + SlotFoundEvent.OutputTuple, + SlotFoundEvent.OutputObject + >; + getEvent( + key: "WARNING_UninitedSlot" + ): TypedContractEvent< + WARNING_UninitedSlotEvent.InputTuple, + WARNING_UninitedSlotEvent.OutputTuple, + WARNING_UninitedSlotEvent.OutputObject + >; + + filters: { + "SlotFound(address,bytes4,bytes32,uint256)": TypedContractEvent< + SlotFoundEvent.InputTuple, + SlotFoundEvent.OutputTuple, + SlotFoundEvent.OutputObject + >; + SlotFound: TypedContractEvent< + SlotFoundEvent.InputTuple, + SlotFoundEvent.OutputTuple, + SlotFoundEvent.OutputObject + >; + + "WARNING_UninitedSlot(address,uint256)": TypedContractEvent< + WARNING_UninitedSlotEvent.InputTuple, + WARNING_UninitedSlotEvent.OutputTuple, + WARNING_UninitedSlotEvent.OutputObject + >; + WARNING_UninitedSlot: TypedContractEvent< + WARNING_UninitedSlotEvent.InputTuple, + WARNING_UninitedSlotEvent.OutputTuple, + WARNING_UninitedSlotEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/StdStorage.sol/index.ts b/v2/typechain-types/StdStorage.sol/index.ts new file mode 100644 index 00000000..8a3fb579 --- /dev/null +++ b/v2/typechain-types/StdStorage.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { StdStorageSafe } from "./StdStorageSafe"; diff --git a/v2/typechain-types/SystemContract.sol/SystemContract.ts b/v2/typechain-types/SystemContract.sol/SystemContract.ts new file mode 100644 index 00000000..b881b237 --- /dev/null +++ b/v2/typechain-types/SystemContract.sol/SystemContract.ts @@ -0,0 +1,569 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export interface SystemContractInterface extends Interface { + getFunction( + nameOrSignature: + | "FUNGIBLE_MODULE_ADDRESS" + | "depositAndCall" + | "gasCoinZRC20ByChainId" + | "gasPriceByChainId" + | "gasZetaPoolByChainId" + | "setConnectorZEVMAddress" + | "setGasCoinZRC20" + | "setGasPrice" + | "setGasZetaPool" + | "setWZETAContractAddress" + | "uniswapv2FactoryAddress" + | "uniswapv2PairFor" + | "uniswapv2Router02Address" + | "wZetaContractAddress" + | "zetaConnectorZEVMAddress" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "SetConnectorZEVM" + | "SetGasCoin" + | "SetGasPrice" + | "SetGasZetaPool" + | "SetWZeta" + | "SystemContractDeployed" + ): EventFragment; + + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "depositAndCall", + values: [ZContextStruct, AddressLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "gasCoinZRC20ByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasPriceByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasZetaPoolByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setConnectorZEVMAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setGasCoinZRC20", + values: [BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setGasPrice", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setGasZetaPool", + values: [BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setWZETAContractAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2FactoryAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapv2PairFor", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2Router02Address", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "wZetaContractAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "zetaConnectorZEVMAddress", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasCoinZRC20ByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasPriceByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasZetaPoolByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setConnectorZEVMAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasCoinZRC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasPrice", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasZetaPool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setWZETAContractAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2FactoryAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2PairFor", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2Router02Address", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "wZetaContractAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "zetaConnectorZEVMAddress", + data: BytesLike + ): Result; +} + +export namespace SetConnectorZEVMEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasCoinEvent { + export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; + export type OutputTuple = [arg0: bigint, arg1: string]; + export interface OutputObject { + arg0: bigint; + arg1: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasPriceEvent { + export type InputTuple = [arg0: BigNumberish, arg1: BigNumberish]; + export type OutputTuple = [arg0: bigint, arg1: bigint]; + export interface OutputObject { + arg0: bigint; + arg1: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasZetaPoolEvent { + export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; + export type OutputTuple = [arg0: bigint, arg1: string]; + export interface OutputObject { + arg0: bigint; + arg1: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetWZetaEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SystemContractDeployedEvent { + export type InputTuple = []; + export type OutputTuple = []; + export interface OutputObject {} + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface SystemContract extends BaseContract { + connect(runner?: ContractRunner | null): SystemContract; + waitForDeployment(): Promise; + + interface: SystemContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + depositAndCall: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + gasCoinZRC20ByChainId: TypedContractMethod< + [arg0: BigNumberish], + [string], + "view" + >; + + gasPriceByChainId: TypedContractMethod< + [arg0: BigNumberish], + [bigint], + "view" + >; + + gasZetaPoolByChainId: TypedContractMethod< + [arg0: BigNumberish], + [string], + "view" + >; + + setConnectorZEVMAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + setGasCoinZRC20: TypedContractMethod< + [chainID: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + + setGasPrice: TypedContractMethod< + [chainID: BigNumberish, price: BigNumberish], + [void], + "nonpayable" + >; + + setGasZetaPool: TypedContractMethod< + [chainID: BigNumberish, erc20: AddressLike], + [void], + "nonpayable" + >; + + setWZETAContractAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + uniswapv2FactoryAddress: TypedContractMethod<[], [string], "view">; + + uniswapv2PairFor: TypedContractMethod< + [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + + uniswapv2Router02Address: TypedContractMethod<[], [string], "view">; + + wZetaContractAddress: TypedContractMethod<[], [string], "view">; + + zetaConnectorZEVMAddress: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "depositAndCall" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "gasCoinZRC20ByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "gasPriceByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "gasZetaPoolByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "setConnectorZEVMAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setGasCoinZRC20" + ): TypedContractMethod< + [chainID: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setGasPrice" + ): TypedContractMethod< + [chainID: BigNumberish, price: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setGasZetaPool" + ): TypedContractMethod< + [chainID: BigNumberish, erc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setWZETAContractAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "uniswapv2FactoryAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "uniswapv2PairFor" + ): TypedContractMethod< + [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "uniswapv2Router02Address" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "wZetaContractAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zetaConnectorZEVMAddress" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "SetConnectorZEVM" + ): TypedContractEvent< + SetConnectorZEVMEvent.InputTuple, + SetConnectorZEVMEvent.OutputTuple, + SetConnectorZEVMEvent.OutputObject + >; + getEvent( + key: "SetGasCoin" + ): TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + getEvent( + key: "SetGasPrice" + ): TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + getEvent( + key: "SetGasZetaPool" + ): TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + getEvent( + key: "SetWZeta" + ): TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + getEvent( + key: "SystemContractDeployed" + ): TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + + filters: { + "SetConnectorZEVM(address)": TypedContractEvent< + SetConnectorZEVMEvent.InputTuple, + SetConnectorZEVMEvent.OutputTuple, + SetConnectorZEVMEvent.OutputObject + >; + SetConnectorZEVM: TypedContractEvent< + SetConnectorZEVMEvent.InputTuple, + SetConnectorZEVMEvent.OutputTuple, + SetConnectorZEVMEvent.OutputObject + >; + + "SetGasCoin(uint256,address)": TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + SetGasCoin: TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + + "SetGasPrice(uint256,uint256)": TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + SetGasPrice: TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + + "SetGasZetaPool(uint256,address)": TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + SetGasZetaPool: TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + + "SetWZeta(address)": TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + SetWZeta: TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + + "SystemContractDeployed()": TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + SystemContractDeployed: TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/SystemContract.sol/SystemContractErrors.ts b/v2/typechain-types/SystemContract.sol/SystemContractErrors.ts new file mode 100644 index 00000000..ee048a50 --- /dev/null +++ b/v2/typechain-types/SystemContract.sol/SystemContractErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface SystemContractErrorsInterface extends Interface {} + +export interface SystemContractErrors extends BaseContract { + connect(runner?: ContractRunner | null): SystemContractErrors; + waitForDeployment(): Promise; + + interface: SystemContractErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/SystemContract.sol/index.ts b/v2/typechain-types/SystemContract.sol/index.ts new file mode 100644 index 00000000..d5591cc5 --- /dev/null +++ b/v2/typechain-types/SystemContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { SystemContract } from "./SystemContract"; +export type { SystemContractErrors } from "./SystemContractErrors"; diff --git a/v2/typechain-types/SystemContractMock.sol/SystemContractErrors.ts b/v2/typechain-types/SystemContractMock.sol/SystemContractErrors.ts new file mode 100644 index 00000000..ee048a50 --- /dev/null +++ b/v2/typechain-types/SystemContractMock.sol/SystemContractErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface SystemContractErrorsInterface extends Interface {} + +export interface SystemContractErrors extends BaseContract { + connect(runner?: ContractRunner | null): SystemContractErrors; + waitForDeployment(): Promise; + + interface: SystemContractErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/SystemContractMock.sol/SystemContractMock.ts b/v2/typechain-types/SystemContractMock.sol/SystemContractMock.ts new file mode 100644 index 00000000..7b6607c4 --- /dev/null +++ b/v2/typechain-types/SystemContractMock.sol/SystemContractMock.ts @@ -0,0 +1,456 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface SystemContractMockInterface extends Interface { + getFunction( + nameOrSignature: + | "gasCoinZRC20ByChainId" + | "gasPriceByChainId" + | "gasZetaPoolByChainId" + | "onCrossChainCall" + | "setGasCoinZRC20" + | "setGasPrice" + | "setWZETAContractAddress" + | "uniswapv2FactoryAddress" + | "uniswapv2PairFor" + | "uniswapv2Router02Address" + | "wZetaContractAddress" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "SetGasCoin" + | "SetGasPrice" + | "SetGasZetaPool" + | "SetWZeta" + | "SystemContractDeployed" + ): EventFragment; + + encodeFunctionData( + functionFragment: "gasCoinZRC20ByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasPriceByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasZetaPoolByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "onCrossChainCall", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setGasCoinZRC20", + values: [BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setGasPrice", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setWZETAContractAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2FactoryAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapv2PairFor", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2Router02Address", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "wZetaContractAddress", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "gasCoinZRC20ByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasPriceByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasZetaPoolByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "onCrossChainCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasCoinZRC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasPrice", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setWZETAContractAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2FactoryAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2PairFor", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2Router02Address", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "wZetaContractAddress", + data: BytesLike + ): Result; +} + +export namespace SetGasCoinEvent { + export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; + export type OutputTuple = [arg0: bigint, arg1: string]; + export interface OutputObject { + arg0: bigint; + arg1: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasPriceEvent { + export type InputTuple = [arg0: BigNumberish, arg1: BigNumberish]; + export type OutputTuple = [arg0: bigint, arg1: bigint]; + export interface OutputObject { + arg0: bigint; + arg1: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasZetaPoolEvent { + export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; + export type OutputTuple = [arg0: bigint, arg1: string]; + export interface OutputObject { + arg0: bigint; + arg1: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetWZetaEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SystemContractDeployedEvent { + export type InputTuple = []; + export type OutputTuple = []; + export interface OutputObject {} + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface SystemContractMock extends BaseContract { + connect(runner?: ContractRunner | null): SystemContractMock; + waitForDeployment(): Promise; + + interface: SystemContractMockInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + gasCoinZRC20ByChainId: TypedContractMethod< + [arg0: BigNumberish], + [string], + "view" + >; + + gasPriceByChainId: TypedContractMethod< + [arg0: BigNumberish], + [bigint], + "view" + >; + + gasZetaPoolByChainId: TypedContractMethod< + [arg0: BigNumberish], + [string], + "view" + >; + + onCrossChainCall: TypedContractMethod< + [ + target: AddressLike, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + setGasCoinZRC20: TypedContractMethod< + [chainID: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + + setGasPrice: TypedContractMethod< + [chainID: BigNumberish, price: BigNumberish], + [void], + "nonpayable" + >; + + setWZETAContractAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + uniswapv2FactoryAddress: TypedContractMethod<[], [string], "view">; + + uniswapv2PairFor: TypedContractMethod< + [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + + uniswapv2Router02Address: TypedContractMethod<[], [string], "view">; + + wZetaContractAddress: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "gasCoinZRC20ByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "gasPriceByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "gasZetaPoolByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "onCrossChainCall" + ): TypedContractMethod< + [ + target: AddressLike, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setGasCoinZRC20" + ): TypedContractMethod< + [chainID: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setGasPrice" + ): TypedContractMethod< + [chainID: BigNumberish, price: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setWZETAContractAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "uniswapv2FactoryAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "uniswapv2PairFor" + ): TypedContractMethod< + [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "uniswapv2Router02Address" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "wZetaContractAddress" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "SetGasCoin" + ): TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + getEvent( + key: "SetGasPrice" + ): TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + getEvent( + key: "SetGasZetaPool" + ): TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + getEvent( + key: "SetWZeta" + ): TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + getEvent( + key: "SystemContractDeployed" + ): TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + + filters: { + "SetGasCoin(uint256,address)": TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + SetGasCoin: TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + + "SetGasPrice(uint256,uint256)": TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + SetGasPrice: TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + + "SetGasZetaPool(uint256,address)": TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + SetGasZetaPool: TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + + "SetWZeta(address)": TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + SetWZeta: TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + + "SystemContractDeployed()": TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + SystemContractDeployed: TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/SystemContractMock.sol/index.ts b/v2/typechain-types/SystemContractMock.sol/index.ts new file mode 100644 index 00000000..122c1994 --- /dev/null +++ b/v2/typechain-types/SystemContractMock.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { SystemContractErrors } from "./SystemContractErrors"; +export type { SystemContractMock } from "./SystemContractMock"; diff --git a/v2/typechain-types/Test.ts b/v2/typechain-types/Test.ts new file mode 100644 index 00000000..e3e11456 --- /dev/null +++ b/v2/typechain-types/Test.ts @@ -0,0 +1,966 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface TestInterface extends Interface { + getFunction( + nameOrSignature: + | "IS_TEST" + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "failed" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Test extends BaseContract { + connect(runner?: ContractRunner | null): Test; + waitForDeployment(): Promise; + + interface: TestInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + IS_TEST: TypedContractMethod<[], [boolean], "view">; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + failed: TypedContractMethod<[], [boolean], "view">; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "IS_TEST" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/TestERC20.ts b/v2/typechain-types/TestERC20.ts new file mode 100644 index 00000000..ad2fca55 --- /dev/null +++ b/v2/typechain-types/TestERC20.ts @@ -0,0 +1,305 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface TestERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "mint" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface TestERC20 extends BaseContract { + connect(runner?: ContractRunner | null): TestERC20; + waitForDeployment(): Promise; + + interface: TestERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + mint: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/TestZContract.ts b/v2/typechain-types/TestZContract.ts new file mode 100644 index 00000000..71b53ec2 --- /dev/null +++ b/v2/typechain-types/TestZContract.ts @@ -0,0 +1,263 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export type RevertContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type RevertContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export interface TestZContractInterface extends Interface { + getFunction( + nameOrSignature: "onCrossChainCall" | "onRevert" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "ContextData" | "ContextDataRevert" + ): EventFragment; + + encodeFunctionData( + functionFragment: "onCrossChainCall", + values: [ZContextStruct, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "onRevert", + values: [RevertContextStruct, AddressLike, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "onCrossChainCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; +} + +export namespace ContextDataEvent { + export type InputTuple = [ + origin: BytesLike, + sender: AddressLike, + chainID: BigNumberish, + msgSender: AddressLike, + message: string + ]; + export type OutputTuple = [ + origin: string, + sender: string, + chainID: bigint, + msgSender: string, + message: string + ]; + export interface OutputObject { + origin: string; + sender: string; + chainID: bigint; + msgSender: string; + message: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ContextDataRevertEvent { + export type InputTuple = [ + origin: BytesLike, + sender: AddressLike, + chainID: BigNumberish, + msgSender: AddressLike, + message: string + ]; + export type OutputTuple = [ + origin: string, + sender: string, + chainID: bigint, + msgSender: string, + message: string + ]; + export interface OutputObject { + origin: string; + sender: string; + chainID: bigint; + msgSender: string; + message: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface TestZContract extends BaseContract { + connect(runner?: ContractRunner | null): TestZContract; + waitForDeployment(): Promise; + + interface: TestZContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onCrossChainCall: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + onRevert: TypedContractMethod< + [ + context: RevertContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onCrossChainCall" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "onRevert" + ): TypedContractMethod< + [ + context: RevertContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + getEvent( + key: "ContextData" + ): TypedContractEvent< + ContextDataEvent.InputTuple, + ContextDataEvent.OutputTuple, + ContextDataEvent.OutputObject + >; + getEvent( + key: "ContextDataRevert" + ): TypedContractEvent< + ContextDataRevertEvent.InputTuple, + ContextDataRevertEvent.OutputTuple, + ContextDataRevertEvent.OutputObject + >; + + filters: { + "ContextData(bytes,address,uint256,address,string)": TypedContractEvent< + ContextDataEvent.InputTuple, + ContextDataEvent.OutputTuple, + ContextDataEvent.OutputObject + >; + ContextData: TypedContractEvent< + ContextDataEvent.InputTuple, + ContextDataEvent.OutputTuple, + ContextDataEvent.OutputObject + >; + + "ContextDataRevert(bytes,address,uint256,address,string)": TypedContractEvent< + ContextDataRevertEvent.InputTuple, + ContextDataRevertEvent.OutputTuple, + ContextDataRevertEvent.OutputObject + >; + ContextDataRevert: TypedContractEvent< + ContextDataRevertEvent.InputTuple, + ContextDataRevertEvent.OutputTuple, + ContextDataRevertEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.ts b/v2/typechain-types/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.ts new file mode 100644 index 00000000..32c3d115 --- /dev/null +++ b/v2/typechain-types/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.ts @@ -0,0 +1,197 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface ITransparentUpgradeableProxyInterface extends Interface { + getFunction(nameOrSignature: "upgradeToAndCall"): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "AdminChanged" | "BeaconUpgraded" | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; +} + +export namespace AdminChangedEvent { + export type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [previousAdmin: string, newAdmin: string]; + export interface OutputObject { + previousAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace BeaconUpgradedEvent { + export type InputTuple = [beacon: AddressLike]; + export type OutputTuple = [beacon: string]; + export interface OutputObject { + beacon: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ITransparentUpgradeableProxy extends BaseContract { + connect(runner?: ContractRunner | null): ITransparentUpgradeableProxy; + waitForDeployment(): Promise; + + interface: ITransparentUpgradeableProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + upgradeToAndCall: TypedContractMethod< + [arg0: AddressLike, arg1: BytesLike], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [arg0: AddressLike, arg1: BytesLike], + [void], + "payable" + >; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "BeaconUpgraded" + ): TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "BeaconUpgraded(address)": TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + BeaconUpgraded: TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.ts b/v2/typechain-types/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.ts new file mode 100644 index 00000000..3c69dc83 --- /dev/null +++ b/v2/typechain-types/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.ts @@ -0,0 +1,136 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../common"; + +export interface TransparentUpgradeableProxyInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "AdminChanged" | "Upgraded"): EventFragment; +} + +export namespace AdminChangedEvent { + export type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [previousAdmin: string, newAdmin: string]; + export interface OutputObject { + previousAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface TransparentUpgradeableProxy extends BaseContract { + connect(runner?: ContractRunner | null): TransparentUpgradeableProxy; + waitForDeployment(): Promise; + + interface: TransparentUpgradeableProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/TransparentUpgradeableProxy.sol/index.ts b/v2/typechain-types/TransparentUpgradeableProxy.sol/index.ts new file mode 100644 index 00000000..0ada46de --- /dev/null +++ b/v2/typechain-types/TransparentUpgradeableProxy.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ITransparentUpgradeableProxy } from "./ITransparentUpgradeableProxy"; +export type { TransparentUpgradeableProxy } from "./TransparentUpgradeableProxy"; diff --git a/v2/typechain-types/UUPSUpgradeable.ts b/v2/typechain-types/UUPSUpgradeable.ts new file mode 100644 index 00000000..82546703 --- /dev/null +++ b/v2/typechain-types/UUPSUpgradeable.ts @@ -0,0 +1,196 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface UUPSUpgradeableInterface extends Interface { + getFunction( + nameOrSignature: + | "UPGRADE_INTERFACE_VERSION" + | "proxiableUUID" + | "upgradeToAndCall" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Initialized" | "Upgraded"): EventFragment; + + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface UUPSUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): UUPSUpgradeable; + waitForDeployment(): Promise; + + interface: UUPSUpgradeableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/UpgradeableBeacon.ts b/v2/typechain-types/UpgradeableBeacon.ts new file mode 100644 index 00000000..63ca154d --- /dev/null +++ b/v2/typechain-types/UpgradeableBeacon.ts @@ -0,0 +1,221 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface UpgradeableBeaconInterface extends Interface { + getFunction( + nameOrSignature: + | "implementation" + | "owner" + | "renounceOwnership" + | "transferOwnership" + | "upgradeTo" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "OwnershipTransferred" | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "implementation", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeTo", + values: [AddressLike] + ): string; + + decodeFunctionResult( + functionFragment: "implementation", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface UpgradeableBeacon extends BaseContract { + connect(runner?: ContractRunner | null): UpgradeableBeacon; + waitForDeployment(): Promise; + + interface: UpgradeableBeaconInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + implementation: TypedContractMethod<[], [string], "view">; + + owner: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + upgradeTo: TypedContractMethod< + [newImplementation: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "implementation" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeTo" + ): TypedContractMethod< + [newImplementation: AddressLike], + [void], + "nonpayable" + >; + + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/Vm.sol/Vm.ts b/v2/typechain-types/Vm.sol/Vm.ts new file mode 100644 index 00000000..ea8f2670 --- /dev/null +++ b/v2/typechain-types/Vm.sol/Vm.ts @@ -0,0 +1,8230 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export declare namespace VmSafe { + export type WalletStruct = { + addr: AddressLike; + publicKeyX: BigNumberish; + publicKeyY: BigNumberish; + privateKey: BigNumberish; + }; + + export type WalletStructOutput = [ + addr: string, + publicKeyX: bigint, + publicKeyY: bigint, + privateKey: bigint + ] & { + addr: string; + publicKeyX: bigint; + publicKeyY: bigint; + privateKey: bigint; + }; + + export type EthGetLogsStruct = { + emitter: AddressLike; + topics: BytesLike[]; + data: BytesLike; + blockHash: BytesLike; + blockNumber: BigNumberish; + transactionHash: BytesLike; + transactionIndex: BigNumberish; + logIndex: BigNumberish; + removed: boolean; + }; + + export type EthGetLogsStructOutput = [ + emitter: string, + topics: string[], + data: string, + blockHash: string, + blockNumber: bigint, + transactionHash: string, + transactionIndex: bigint, + logIndex: bigint, + removed: boolean + ] & { + emitter: string; + topics: string[]; + data: string; + blockHash: string; + blockNumber: bigint; + transactionHash: string; + transactionIndex: bigint; + logIndex: bigint; + removed: boolean; + }; + + export type FsMetadataStruct = { + isDir: boolean; + isSymlink: boolean; + length: BigNumberish; + readOnly: boolean; + modified: BigNumberish; + accessed: BigNumberish; + created: BigNumberish; + }; + + export type FsMetadataStructOutput = [ + isDir: boolean, + isSymlink: boolean, + length: bigint, + readOnly: boolean, + modified: bigint, + accessed: bigint, + created: bigint + ] & { + isDir: boolean; + isSymlink: boolean; + length: bigint; + readOnly: boolean; + modified: bigint; + accessed: bigint; + created: bigint; + }; + + export type LogStruct = { + topics: BytesLike[]; + data: BytesLike; + emitter: AddressLike; + }; + + export type LogStructOutput = [ + topics: string[], + data: string, + emitter: string + ] & { topics: string[]; data: string; emitter: string }; + + export type GasStruct = { + gasLimit: BigNumberish; + gasTotalUsed: BigNumberish; + gasMemoryUsed: BigNumberish; + gasRefunded: BigNumberish; + gasRemaining: BigNumberish; + }; + + export type GasStructOutput = [ + gasLimit: bigint, + gasTotalUsed: bigint, + gasMemoryUsed: bigint, + gasRefunded: bigint, + gasRemaining: bigint + ] & { + gasLimit: bigint; + gasTotalUsed: bigint; + gasMemoryUsed: bigint; + gasRefunded: bigint; + gasRemaining: bigint; + }; + + export type DirEntryStruct = { + errorMessage: string; + path: string; + depth: BigNumberish; + isDir: boolean; + isSymlink: boolean; + }; + + export type DirEntryStructOutput = [ + errorMessage: string, + path: string, + depth: bigint, + isDir: boolean, + isSymlink: boolean + ] & { + errorMessage: string; + path: string; + depth: bigint; + isDir: boolean; + isSymlink: boolean; + }; + + export type RpcStruct = { key: string; url: string }; + + export type RpcStructOutput = [key: string, url: string] & { + key: string; + url: string; + }; + + export type ChainInfoStruct = { forkId: BigNumberish; chainId: BigNumberish }; + + export type ChainInfoStructOutput = [forkId: bigint, chainId: bigint] & { + forkId: bigint; + chainId: bigint; + }; + + export type StorageAccessStruct = { + account: AddressLike; + slot: BytesLike; + isWrite: boolean; + previousValue: BytesLike; + newValue: BytesLike; + reverted: boolean; + }; + + export type StorageAccessStructOutput = [ + account: string, + slot: string, + isWrite: boolean, + previousValue: string, + newValue: string, + reverted: boolean + ] & { + account: string; + slot: string; + isWrite: boolean; + previousValue: string; + newValue: string; + reverted: boolean; + }; + + export type AccountAccessStruct = { + chainInfo: VmSafe.ChainInfoStruct; + kind: BigNumberish; + account: AddressLike; + accessor: AddressLike; + initialized: boolean; + oldBalance: BigNumberish; + newBalance: BigNumberish; + deployedCode: BytesLike; + value: BigNumberish; + data: BytesLike; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStruct[]; + depth: BigNumberish; + }; + + export type AccountAccessStructOutput = [ + chainInfo: VmSafe.ChainInfoStructOutput, + kind: bigint, + account: string, + accessor: string, + initialized: boolean, + oldBalance: bigint, + newBalance: bigint, + deployedCode: string, + value: bigint, + data: string, + reverted: boolean, + storageAccesses: VmSafe.StorageAccessStructOutput[], + depth: bigint + ] & { + chainInfo: VmSafe.ChainInfoStructOutput; + kind: bigint; + account: string; + accessor: string; + initialized: boolean; + oldBalance: bigint; + newBalance: bigint; + deployedCode: string; + value: bigint; + data: string; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStructOutput[]; + depth: bigint; + }; + + export type FfiResultStruct = { + exitCode: BigNumberish; + stdout: BytesLike; + stderr: BytesLike; + }; + + export type FfiResultStructOutput = [ + exitCode: bigint, + stdout: string, + stderr: string + ] & { exitCode: bigint; stdout: string; stderr: string }; +} + +export interface VmInterface extends Interface { + getFunction( + nameOrSignature: + | "accesses" + | "activeFork" + | "addr" + | "allowCheatcodes" + | "assertApproxEqAbs(uint256,uint256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256,string)" + | "assertApproxEqAbs(uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256)" + | "assertApproxEqRel(int256,int256,uint256,string)" + | "assertApproxEqRel(int256,int256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + | "assertEq(bytes32[],bytes32[])" + | "assertEq(int256[],int256[],string)" + | "assertEq(address,address,string)" + | "assertEq(string,string,string)" + | "assertEq(address[],address[])" + | "assertEq(address[],address[],string)" + | "assertEq(bool,bool,string)" + | "assertEq(address,address)" + | "assertEq(uint256[],uint256[],string)" + | "assertEq(bool[],bool[])" + | "assertEq(int256[],int256[])" + | "assertEq(int256,int256,string)" + | "assertEq(bytes32,bytes32)" + | "assertEq(uint256,uint256,string)" + | "assertEq(uint256[],uint256[])" + | "assertEq(bytes,bytes)" + | "assertEq(uint256,uint256)" + | "assertEq(bytes32,bytes32,string)" + | "assertEq(string[],string[])" + | "assertEq(bytes32[],bytes32[],string)" + | "assertEq(bytes,bytes,string)" + | "assertEq(bool[],bool[],string)" + | "assertEq(bytes[],bytes[])" + | "assertEq(string[],string[],string)" + | "assertEq(string,string)" + | "assertEq(bytes[],bytes[],string)" + | "assertEq(bool,bool)" + | "assertEq(int256,int256)" + | "assertEqDecimal(uint256,uint256,uint256)" + | "assertEqDecimal(int256,int256,uint256)" + | "assertEqDecimal(int256,int256,uint256,string)" + | "assertEqDecimal(uint256,uint256,uint256,string)" + | "assertFalse(bool,string)" + | "assertFalse(bool)" + | "assertGe(int256,int256)" + | "assertGe(int256,int256,string)" + | "assertGe(uint256,uint256)" + | "assertGe(uint256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256)" + | "assertGeDecimal(int256,int256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256,string)" + | "assertGeDecimal(int256,int256,uint256)" + | "assertGt(int256,int256)" + | "assertGt(uint256,uint256,string)" + | "assertGt(uint256,uint256)" + | "assertGt(int256,int256,string)" + | "assertGtDecimal(int256,int256,uint256,string)" + | "assertGtDecimal(uint256,uint256,uint256,string)" + | "assertGtDecimal(int256,int256,uint256)" + | "assertGtDecimal(uint256,uint256,uint256)" + | "assertLe(int256,int256,string)" + | "assertLe(uint256,uint256)" + | "assertLe(int256,int256)" + | "assertLe(uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256)" + | "assertLeDecimal(uint256,uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256,string)" + | "assertLeDecimal(uint256,uint256,uint256)" + | "assertLt(int256,int256)" + | "assertLt(uint256,uint256,string)" + | "assertLt(int256,int256,string)" + | "assertLt(uint256,uint256)" + | "assertLtDecimal(uint256,uint256,uint256)" + | "assertLtDecimal(int256,int256,uint256,string)" + | "assertLtDecimal(uint256,uint256,uint256,string)" + | "assertLtDecimal(int256,int256,uint256)" + | "assertNotEq(bytes32[],bytes32[])" + | "assertNotEq(int256[],int256[])" + | "assertNotEq(bool,bool,string)" + | "assertNotEq(bytes[],bytes[],string)" + | "assertNotEq(bool,bool)" + | "assertNotEq(bool[],bool[])" + | "assertNotEq(bytes,bytes)" + | "assertNotEq(address[],address[])" + | "assertNotEq(int256,int256,string)" + | "assertNotEq(uint256[],uint256[])" + | "assertNotEq(bool[],bool[],string)" + | "assertNotEq(string,string)" + | "assertNotEq(address[],address[],string)" + | "assertNotEq(string,string,string)" + | "assertNotEq(address,address,string)" + | "assertNotEq(bytes32,bytes32)" + | "assertNotEq(bytes,bytes,string)" + | "assertNotEq(uint256,uint256,string)" + | "assertNotEq(uint256[],uint256[],string)" + | "assertNotEq(address,address)" + | "assertNotEq(bytes32,bytes32,string)" + | "assertNotEq(string[],string[],string)" + | "assertNotEq(uint256,uint256)" + | "assertNotEq(bytes32[],bytes32[],string)" + | "assertNotEq(string[],string[])" + | "assertNotEq(int256[],int256[],string)" + | "assertNotEq(bytes[],bytes[])" + | "assertNotEq(int256,int256)" + | "assertNotEqDecimal(int256,int256,uint256)" + | "assertNotEqDecimal(int256,int256,uint256,string)" + | "assertNotEqDecimal(uint256,uint256,uint256)" + | "assertNotEqDecimal(uint256,uint256,uint256,string)" + | "assertTrue(bool)" + | "assertTrue(bool,string)" + | "assume" + | "blobBaseFee" + | "blobhashes" + | "breakpoint(string)" + | "breakpoint(string,bool)" + | "broadcast()" + | "broadcast(address)" + | "broadcast(uint256)" + | "chainId" + | "clearMockedCalls" + | "closeFile" + | "coinbase" + | "computeCreate2Address(bytes32,bytes32)" + | "computeCreate2Address(bytes32,bytes32,address)" + | "computeCreateAddress" + | "copyFile" + | "createDir" + | "createFork(string)" + | "createFork(string,uint256)" + | "createFork(string,bytes32)" + | "createSelectFork(string,uint256)" + | "createSelectFork(string,bytes32)" + | "createSelectFork(string)" + | "createWallet(string)" + | "createWallet(uint256)" + | "createWallet(uint256,string)" + | "deal" + | "deleteSnapshot" + | "deleteSnapshots" + | "deployCode(string,bytes)" + | "deployCode(string)" + | "deriveKey(string,string,uint32,string)" + | "deriveKey(string,uint32,string)" + | "deriveKey(string,uint32)" + | "deriveKey(string,string,uint32)" + | "difficulty" + | "dumpState" + | "ensNamehash" + | "envAddress(string)" + | "envAddress(string,string)" + | "envBool(string)" + | "envBool(string,string)" + | "envBytes(string)" + | "envBytes(string,string)" + | "envBytes32(string,string)" + | "envBytes32(string)" + | "envExists" + | "envInt(string,string)" + | "envInt(string)" + | "envOr(string,string,bytes32[])" + | "envOr(string,string,int256[])" + | "envOr(string,bool)" + | "envOr(string,address)" + | "envOr(string,uint256)" + | "envOr(string,string,bytes[])" + | "envOr(string,string,uint256[])" + | "envOr(string,string,string[])" + | "envOr(string,bytes)" + | "envOr(string,bytes32)" + | "envOr(string,int256)" + | "envOr(string,string,address[])" + | "envOr(string,string)" + | "envOr(string,string,bool[])" + | "envString(string,string)" + | "envString(string)" + | "envUint(string)" + | "envUint(string,string)" + | "etch" + | "eth_getLogs" + | "exists" + | "expectCall(address,uint256,uint64,bytes)" + | "expectCall(address,uint256,uint64,bytes,uint64)" + | "expectCall(address,uint256,bytes,uint64)" + | "expectCall(address,bytes)" + | "expectCall(address,bytes,uint64)" + | "expectCall(address,uint256,bytes)" + | "expectCallMinGas(address,uint256,uint64,bytes)" + | "expectCallMinGas(address,uint256,uint64,bytes,uint64)" + | "expectEmit()" + | "expectEmit(bool,bool,bool,bool)" + | "expectEmit(bool,bool,bool,bool,address)" + | "expectEmit(address)" + | "expectEmitAnonymous()" + | "expectEmitAnonymous(address)" + | "expectEmitAnonymous(bool,bool,bool,bool,bool,address)" + | "expectEmitAnonymous(bool,bool,bool,bool,bool)" + | "expectRevert(bytes4)" + | "expectRevert(bytes)" + | "expectRevert()" + | "expectSafeMemory" + | "expectSafeMemoryCall" + | "fee" + | "ffi" + | "fsMetadata" + | "getBlobBaseFee" + | "getBlobhashes" + | "getBlockNumber" + | "getBlockTimestamp" + | "getCode" + | "getDeployedCode" + | "getLabel" + | "getMappingKeyAndParentOf" + | "getMappingLength" + | "getMappingSlotAt" + | "getNonce(address)" + | "getNonce((address,uint256,uint256,uint256))" + | "getRecordedLogs" + | "indexOf" + | "isContext" + | "isDir" + | "isFile" + | "isPersistent" + | "keyExists" + | "keyExistsJson" + | "keyExistsToml" + | "label" + | "lastCallGas" + | "load" + | "loadAllocs" + | "makePersistent(address[])" + | "makePersistent(address,address)" + | "makePersistent(address)" + | "makePersistent(address,address,address)" + | "mockCall(address,uint256,bytes,bytes)" + | "mockCall(address,bytes,bytes)" + | "mockCallRevert(address,uint256,bytes,bytes)" + | "mockCallRevert(address,bytes,bytes)" + | "parseAddress" + | "parseBool" + | "parseBytes" + | "parseBytes32" + | "parseInt" + | "parseJson(string)" + | "parseJson(string,string)" + | "parseJsonAddress" + | "parseJsonAddressArray" + | "parseJsonBool" + | "parseJsonBoolArray" + | "parseJsonBytes" + | "parseJsonBytes32" + | "parseJsonBytes32Array" + | "parseJsonBytesArray" + | "parseJsonInt" + | "parseJsonIntArray" + | "parseJsonKeys" + | "parseJsonString" + | "parseJsonStringArray" + | "parseJsonType(string,string)" + | "parseJsonType(string,string,string)" + | "parseJsonTypeArray" + | "parseJsonUint" + | "parseJsonUintArray" + | "parseToml(string,string)" + | "parseToml(string)" + | "parseTomlAddress" + | "parseTomlAddressArray" + | "parseTomlBool" + | "parseTomlBoolArray" + | "parseTomlBytes" + | "parseTomlBytes32" + | "parseTomlBytes32Array" + | "parseTomlBytesArray" + | "parseTomlInt" + | "parseTomlIntArray" + | "parseTomlKeys" + | "parseTomlString" + | "parseTomlStringArray" + | "parseTomlUint" + | "parseTomlUintArray" + | "parseUint" + | "pauseGasMetering" + | "prank(address,address)" + | "prank(address)" + | "prevrandao(bytes32)" + | "prevrandao(uint256)" + | "projectRoot" + | "prompt" + | "promptAddress" + | "promptSecret" + | "promptSecretUint" + | "promptUint" + | "randomAddress" + | "randomUint()" + | "randomUint(uint256,uint256)" + | "readCallers" + | "readDir(string,uint64)" + | "readDir(string,uint64,bool)" + | "readDir(string)" + | "readFile" + | "readFileBinary" + | "readLine" + | "readLink" + | "record" + | "recordLogs" + | "rememberKey" + | "removeDir" + | "removeFile" + | "replace" + | "resetNonce" + | "resumeGasMetering" + | "revertTo" + | "revertToAndDelete" + | "revokePersistent(address[])" + | "revokePersistent(address)" + | "roll" + | "rollFork(bytes32)" + | "rollFork(uint256,uint256)" + | "rollFork(uint256)" + | "rollFork(uint256,bytes32)" + | "rpc(string,string,string)" + | "rpc(string,string)" + | "rpcUrl" + | "rpcUrlStructs" + | "rpcUrls" + | "selectFork" + | "serializeAddress(string,string,address[])" + | "serializeAddress(string,string,address)" + | "serializeBool(string,string,bool[])" + | "serializeBool(string,string,bool)" + | "serializeBytes(string,string,bytes[])" + | "serializeBytes(string,string,bytes)" + | "serializeBytes32(string,string,bytes32[])" + | "serializeBytes32(string,string,bytes32)" + | "serializeInt(string,string,int256)" + | "serializeInt(string,string,int256[])" + | "serializeJson" + | "serializeJsonType(string,bytes)" + | "serializeJsonType(string,string,string,bytes)" + | "serializeString(string,string,string[])" + | "serializeString(string,string,string)" + | "serializeUint(string,string,uint256)" + | "serializeUint(string,string,uint256[])" + | "serializeUintToHex" + | "setBlockhash" + | "setEnv" + | "setNonce" + | "setNonceUnsafe" + | "sign(bytes32)" + | "sign(address,bytes32)" + | "sign((address,uint256,uint256,uint256),bytes32)" + | "sign(uint256,bytes32)" + | "signP256" + | "skip" + | "sleep" + | "snapshot" + | "split" + | "startBroadcast()" + | "startBroadcast(address)" + | "startBroadcast(uint256)" + | "startMappingRecording" + | "startPrank(address)" + | "startPrank(address,address)" + | "startStateDiffRecording" + | "stopAndReturnStateDiff" + | "stopBroadcast" + | "stopExpectSafeMemory" + | "stopMappingRecording" + | "stopPrank" + | "store" + | "toBase64(string)" + | "toBase64(bytes)" + | "toBase64URL(string)" + | "toBase64URL(bytes)" + | "toLowercase" + | "toString(address)" + | "toString(uint256)" + | "toString(bytes)" + | "toString(bool)" + | "toString(int256)" + | "toString(bytes32)" + | "toUppercase" + | "transact(uint256,bytes32)" + | "transact(bytes32)" + | "trim" + | "tryFfi" + | "txGasPrice" + | "unixTime" + | "warp" + | "writeFile" + | "writeFileBinary" + | "writeJson(string,string,string)" + | "writeJson(string,string)" + | "writeLine" + | "writeToml(string,string,string)" + | "writeToml(string,string)" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "accesses", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "activeFork", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "addr", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "allowCheatcodes", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData(functionFragment: "assume", values: [boolean]): string; + encodeFunctionData( + functionFragment: "blobBaseFee", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "blobhashes", + values: [BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "breakpoint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "breakpoint(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "broadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "broadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "broadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "chainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "clearMockedCalls", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "closeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "coinbase", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + values: [BytesLike, BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreateAddress", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "copyFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "createDir", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "createFork(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createFork(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createFork(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "createSelectFork(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createSelectFork(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "createSelectFork(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createWallet(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256,string)", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deal", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deleteSnapshot", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deleteSnapshots", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32,string)", + values: [string, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32,string)", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "difficulty", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "dumpState", values: [string]): string; + encodeFunctionData(functionFragment: "ensNamehash", values: [string]): string; + encodeFunctionData( + functionFragment: "envAddress(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envAddress(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "envExists", values: [string]): string; + encodeFunctionData( + functionFragment: "envInt(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envInt(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,address)", + values: [string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,int256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "envString(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envString(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "etch", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "eth_getLogs", + values: [BigNumberish, BigNumberish, AddressLike, BytesLike[]] + ): string; + encodeFunctionData(functionFragment: "exists", values: [string]): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,uint64,bytes)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,uint64,bytes,uint64)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,bytes,uint64)", + values: [AddressLike, BigNumberish, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,bytes)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,bytes,uint64)", + values: [AddressLike, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,bytes)", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes,uint64)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectEmit()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "expectEmit(bool,bool,bool,bool)", + values: [boolean, boolean, boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "expectEmit(bool,bool,bool,bool,address)", + values: [boolean, boolean, boolean, boolean, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmit(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)", + values: [boolean, boolean, boolean, boolean, boolean, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool)", + values: [boolean, boolean, boolean, boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes4)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectRevert()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "expectSafeMemory", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectSafeMemoryCall", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "fee", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "ffi", values: [string[]]): string; + encodeFunctionData(functionFragment: "fsMetadata", values: [string]): string; + encodeFunctionData( + functionFragment: "getBlobBaseFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlobhashes", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockNumber", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockTimestamp", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "getCode", values: [string]): string; + encodeFunctionData( + functionFragment: "getDeployedCode", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getLabel", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingKeyAndParentOf", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingLength", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingSlotAt", + values: [AddressLike, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getNonce(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + values: [VmSafe.WalletStruct] + ): string; + encodeFunctionData( + functionFragment: "getRecordedLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "indexOf", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "isContext", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "isDir", values: [string]): string; + encodeFunctionData(functionFragment: "isFile", values: [string]): string; + encodeFunctionData( + functionFragment: "isPersistent", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "keyExists", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsToml", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "label", + values: [AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "lastCallGas", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "load", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "loadAllocs", values: [string]): string; + encodeFunctionData( + functionFragment: "makePersistent(address[])", + values: [AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "makePersistent(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "makePersistent(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "makePersistent(address,address,address)", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "mockCall(address,uint256,bytes,bytes)", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCall(address,bytes,bytes)", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCallRevert(address,uint256,bytes,bytes)", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCallRevert(address,bytes,bytes)", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "parseAddress", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseBool", values: [string]): string; + encodeFunctionData(functionFragment: "parseBytes", values: [string]): string; + encodeFunctionData( + functionFragment: "parseBytes32", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseInt", values: [string]): string; + encodeFunctionData( + functionFragment: "parseJson(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonTypeArray", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUintArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUintArray", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "parseUint", values: [string]): string; + encodeFunctionData( + functionFragment: "pauseGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "prank(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "prank(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "prevrandao(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "prevrandao(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "projectRoot", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "prompt", values: [string]): string; + encodeFunctionData( + functionFragment: "promptAddress", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecret", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecretUint", + values: [string] + ): string; + encodeFunctionData(functionFragment: "promptUint", values: [string]): string; + encodeFunctionData( + functionFragment: "randomAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomUint()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomUint(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readCallers", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64,bool)", + values: [string, BigNumberish, boolean] + ): string; + encodeFunctionData( + functionFragment: "readDir(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readFile", values: [string]): string; + encodeFunctionData( + functionFragment: "readFileBinary", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readLine", values: [string]): string; + encodeFunctionData(functionFragment: "readLink", values: [string]): string; + encodeFunctionData(functionFragment: "record", values?: undefined): string; + encodeFunctionData( + functionFragment: "recordLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rememberKey", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeDir", + values: [string, boolean] + ): string; + encodeFunctionData(functionFragment: "removeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "replace", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "resetNonce", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "resumeGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "revertTo", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "revertToAndDelete", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "revokePersistent(address[])", + values: [AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "revokePersistent(address)", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "roll", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "rollFork(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "rollFork(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "rollFork(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "rollFork(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string)", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "rpcUrl", values: [string]): string; + encodeFunctionData( + functionFragment: "rpcUrlStructs", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "rpcUrls", values?: undefined): string; + encodeFunctionData( + functionFragment: "selectFork", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address)", + values: [string, string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool)", + values: [string, string, boolean] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,string,string,bytes)", + values: [string, string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeUintToHex", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setBlockhash", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setEnv", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "setNonce", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setNonceUnsafe", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "sign(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(address,bytes32)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + values: [VmSafe.WalletStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signP256", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData(functionFragment: "skip", values: [boolean]): string; + encodeFunctionData(functionFragment: "sleep", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "snapshot", values?: undefined): string; + encodeFunctionData( + functionFragment: "split", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "startMappingRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startPrank(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startPrank(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startStateDiffRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopAndReturnStateDiff", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopBroadcast", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopExpectSafeMemory", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopMappingRecording", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "stopPrank", values?: undefined): string; + encodeFunctionData( + functionFragment: "store", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toBase64(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toLowercase", values: [string]): string; + encodeFunctionData( + functionFragment: "toString(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "toString(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toString(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "toString(int256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toUppercase", values: [string]): string; + encodeFunctionData( + functionFragment: "transact(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transact(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "trim", values: [string]): string; + encodeFunctionData(functionFragment: "tryFfi", values: [string[]]): string; + encodeFunctionData( + functionFragment: "txGasPrice", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "unixTime", values?: undefined): string; + encodeFunctionData(functionFragment: "warp", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "writeFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeFileBinary", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeLine", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string)", + values: [string, string] + ): string; + + decodeFunctionResult(functionFragment: "accesses", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "activeFork", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "addr", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "allowCheatcodes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "assume", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "blobBaseFee", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "blobhashes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "clearMockedCalls", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "closeFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "coinbase", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreateAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "copyFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "createDir", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "createFork(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createFork(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createFork(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createSelectFork(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createSelectFork(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createSelectFork(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "deal", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "deleteSnapshot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deleteSnapshots", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "difficulty", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dumpState", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "ensNamehash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "envExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "envInt(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envInt(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "etch", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "eth_getLogs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "exists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,uint64,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,uint64,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(bool,bool,bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(bool,bool,bool,bool,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes4)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectSafeMemory", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectSafeMemoryCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "fee", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ffi", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "fsMetadata", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getBlobBaseFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlobhashes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockNumber", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockTimestamp", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getCode", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getDeployedCode", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getLabel", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getMappingKeyAndParentOf", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingLength", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingSlotAt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRecordedLogs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "indexOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isContext", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "isPersistent", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "keyExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "keyExistsJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "keyExistsToml", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "label", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "lastCallGas", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "load", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "loadAllocs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address,address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCall(address,uint256,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCall(address,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCallRevert(address,uint256,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCallRevert(address,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseBool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "parseBytes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseBytes32", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseInt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseJson(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonTypeArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUintArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUintArray", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "pauseGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prank(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prank(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prevrandao(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prevrandao(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "projectRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "prompt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "promptAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecret", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecretUint", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "promptUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "randomAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readCallers", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "readFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readLine", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "readLink", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "record", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "recordLogs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rememberKey", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "removeDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "removeFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "replace", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "resetNonce", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "resumeGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revertTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "revertToAndDelete", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revokePersistent(address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revokePersistent(address)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "roll", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rollFork(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rollFork(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rollFork(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rollFork(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrl", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rpcUrlStructs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrls", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "selectFork", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUintToHex", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setBlockhash", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setEnv", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setNonce", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setNonceUnsafe", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(address,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "signP256", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "skip", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sleep", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "snapshot", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "split", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "startBroadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startPrank(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startPrank(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startStateDiffRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopAndReturnStateDiff", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopBroadcast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopExpectSafeMemory", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "stopPrank", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "store", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "toBase64(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toLowercase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toUppercase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transact(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transact(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "trim", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tryFfi", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "txGasPrice", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unixTime", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "warp", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "writeFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "writeLine", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string)", + data: BytesLike + ): Result; +} + +export interface Vm extends BaseContract { + connect(runner?: ContractRunner | null): Vm; + waitForDeployment(): Promise; + + interface: VmInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + accesses: TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + + activeFork: TypedContractMethod<[], [bigint], "view">; + + addr: TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + + allowCheatcodes: TypedContractMethod< + [account: AddressLike], + [void], + "nonpayable" + >; + + "assertApproxEqAbs(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbs(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertFalse(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + "assertFalse(bool)": TypedContractMethod< + [condition: boolean], + [void], + "view" + >; + + "assertGe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertNotEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertNotEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertNotEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertNotEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertTrue(bool)": TypedContractMethod<[condition: boolean], [void], "view">; + + "assertTrue(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + assume: TypedContractMethod<[condition: boolean], [void], "view">; + + blobBaseFee: TypedContractMethod< + [newBlobBaseFee: BigNumberish], + [void], + "nonpayable" + >; + + blobhashes: TypedContractMethod<[hashes: BytesLike[]], [void], "nonpayable">; + + "breakpoint(string)": TypedContractMethod< + [char: string], + [void], + "nonpayable" + >; + + "breakpoint(string,bool)": TypedContractMethod< + [char: string, value: boolean], + [void], + "nonpayable" + >; + + "broadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "broadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "broadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + chainId: TypedContractMethod< + [newChainId: BigNumberish], + [void], + "nonpayable" + >; + + clearMockedCalls: TypedContractMethod<[], [void], "nonpayable">; + + closeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + coinbase: TypedContractMethod< + [newCoinbase: AddressLike], + [void], + "nonpayable" + >; + + "computeCreate2Address(bytes32,bytes32)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + + "computeCreate2Address(bytes32,bytes32,address)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + + computeCreateAddress: TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + + copyFile: TypedContractMethod< + [from: string, to: string], + [bigint], + "nonpayable" + >; + + createDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + "createFork(string)": TypedContractMethod< + [urlOrAlias: string], + [bigint], + "nonpayable" + >; + + "createFork(string,uint256)": TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + + "createFork(string,bytes32)": TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + + "createSelectFork(string,uint256)": TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + + "createSelectFork(string,bytes32)": TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + + "createSelectFork(string)": TypedContractMethod< + [urlOrAlias: string], + [bigint], + "nonpayable" + >; + + "createWallet(string)": TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256,string)": TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + deal: TypedContractMethod< + [account: AddressLike, newBalance: BigNumberish], + [void], + "nonpayable" + >; + + deleteSnapshot: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + deleteSnapshots: TypedContractMethod<[], [void], "nonpayable">; + + "deployCode(string,bytes)": TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string)": TypedContractMethod< + [artifactPath: string], + [string], + "nonpayable" + >; + + "deriveKey(string,string,uint32,string)": TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + + "deriveKey(string,uint32,string)": TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + + "deriveKey(string,uint32)": TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + + "deriveKey(string,string,uint32)": TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + + difficulty: TypedContractMethod< + [newDifficulty: BigNumberish], + [void], + "nonpayable" + >; + + dumpState: TypedContractMethod< + [pathToStateJson: string], + [void], + "nonpayable" + >; + + ensNamehash: TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string)": TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBool(string)": TypedContractMethod<[name: string], [boolean], "view">; + + "envBool(string,string)": TypedContractMethod< + [name: string, delim: string], + [boolean[]], + "view" + >; + + "envBytes(string)": TypedContractMethod<[name: string], [string], "view">; + + "envBytes(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string)": TypedContractMethod<[name: string], [string], "view">; + + envExists: TypedContractMethod<[name: string], [boolean], "view">; + + "envInt(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + "envInt(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envOr(string,string,bytes32[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,int256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,bool)": TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + + "envOr(string,address)": TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + + "envOr(string,uint256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,bytes[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,uint256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,string,string[])": TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + + "envOr(string,bytes)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,bytes32)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,int256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,address[])": TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + + "envOr(string,string)": TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + + "envOr(string,string,bool[])": TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + + "envString(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envString(string)": TypedContractMethod<[name: string], [string], "view">; + + "envUint(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envUint(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + etch: TypedContractMethod< + [target: AddressLike, newRuntimeBytecode: BytesLike], + [void], + "nonpayable" + >; + + eth_getLogs: TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + + exists: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + "expectCall(address,uint256,uint64,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + "expectCall(address,uint256,uint64,bytes,uint64)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + "expectCall(address,uint256,bytes,uint64)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + "expectCall(address,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike], + [void], + "nonpayable" + >; + + "expectCall(address,bytes,uint64)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, count: BigNumberish], + [void], + "nonpayable" + >; + + "expectCall(address,uint256,bytes)": TypedContractMethod< + [callee: AddressLike, msgValue: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + "expectCallMinGas(address,uint256,uint64,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + "expectCallMinGas(address,uint256,uint64,bytes,uint64)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + "expectEmit()": TypedContractMethod<[], [void], "nonpayable">; + + "expectEmit(bool,bool,bool,bool)": TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + + "expectEmit(bool,bool,bool,bool,address)": TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + + "expectEmit(address)": TypedContractMethod< + [emitter: AddressLike], + [void], + "nonpayable" + >; + + "expectEmitAnonymous()": TypedContractMethod<[], [void], "nonpayable">; + + "expectEmitAnonymous(address)": TypedContractMethod< + [emitter: AddressLike], + [void], + "nonpayable" + >; + + "expectEmitAnonymous(bool,bool,bool,bool,bool,address)": TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + + "expectEmitAnonymous(bool,bool,bool,bool,bool)": TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + + "expectRevert(bytes4)": TypedContractMethod< + [revertData: BytesLike], + [void], + "nonpayable" + >; + + "expectRevert(bytes)": TypedContractMethod< + [revertData: BytesLike], + [void], + "nonpayable" + >; + + "expectRevert()": TypedContractMethod<[], [void], "nonpayable">; + + expectSafeMemory: TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + + expectSafeMemoryCall: TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + + fee: TypedContractMethod<[newBasefee: BigNumberish], [void], "nonpayable">; + + ffi: TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + + fsMetadata: TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + + getBlobBaseFee: TypedContractMethod<[], [bigint], "view">; + + getBlobhashes: TypedContractMethod<[], [string[]], "view">; + + getBlockNumber: TypedContractMethod<[], [bigint], "view">; + + getBlockTimestamp: TypedContractMethod<[], [bigint], "view">; + + getCode: TypedContractMethod<[artifactPath: string], [string], "view">; + + getDeployedCode: TypedContractMethod< + [artifactPath: string], + [string], + "view" + >; + + getLabel: TypedContractMethod<[account: AddressLike], [string], "view">; + + getMappingKeyAndParentOf: TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + + getMappingLength: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + + getMappingSlotAt: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + + "getNonce(address)": TypedContractMethod< + [account: AddressLike], + [bigint], + "view" + >; + + "getNonce((address,uint256,uint256,uint256))": TypedContractMethod< + [wallet: VmSafe.WalletStruct], + [bigint], + "nonpayable" + >; + + getRecordedLogs: TypedContractMethod< + [], + [VmSafe.LogStructOutput[]], + "nonpayable" + >; + + indexOf: TypedContractMethod<[input: string, key: string], [bigint], "view">; + + isContext: TypedContractMethod<[context: BigNumberish], [boolean], "view">; + + isDir: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + isFile: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + isPersistent: TypedContractMethod<[account: AddressLike], [boolean], "view">; + + keyExists: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsJson: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsToml: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + label: TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + + lastCallGas: TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + + load: TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + + loadAllocs: TypedContractMethod< + [pathToAllocsJson: string], + [void], + "nonpayable" + >; + + "makePersistent(address[])": TypedContractMethod< + [accounts: AddressLike[]], + [void], + "nonpayable" + >; + + "makePersistent(address,address)": TypedContractMethod< + [account0: AddressLike, account1: AddressLike], + [void], + "nonpayable" + >; + + "makePersistent(address)": TypedContractMethod< + [account: AddressLike], + [void], + "nonpayable" + >; + + "makePersistent(address,address,address)": TypedContractMethod< + [account0: AddressLike, account1: AddressLike, account2: AddressLike], + [void], + "nonpayable" + >; + + "mockCall(address,uint256,bytes,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + returnData: BytesLike + ], + [void], + "nonpayable" + >; + + "mockCall(address,bytes,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, returnData: BytesLike], + [void], + "nonpayable" + >; + + "mockCallRevert(address,uint256,bytes,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + revertData: BytesLike + ], + [void], + "nonpayable" + >; + + "mockCallRevert(address,bytes,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, revertData: BytesLike], + [void], + "nonpayable" + >; + + parseAddress: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseBool: TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + + parseBytes: TypedContractMethod<[stringifiedValue: string], [string], "view">; + + parseBytes32: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseInt: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + "parseJson(string)": TypedContractMethod<[json: string], [string], "view">; + + "parseJson(string,string)": TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddress: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddressArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBool: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + parseJsonBoolArray: TypedContractMethod< + [json: string, key: string], + [boolean[]], + "view" + >; + + parseJsonBytes: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32Array: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBytesArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonInt: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonIntArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + parseJsonKeys: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonString: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonStringArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + "parseJsonType(string,string)": TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + + "parseJsonType(string,string,string)": TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonTypeArray: TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonUint: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonUintArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + "parseToml(string,string)": TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + "parseToml(string)": TypedContractMethod<[toml: string], [string], "view">; + + parseTomlAddress: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlAddressArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBool: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + parseTomlBoolArray: TypedContractMethod< + [toml: string, key: string], + [boolean[]], + "view" + >; + + parseTomlBytes: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32Array: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBytesArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlInt: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlIntArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseTomlKeys: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlString: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlStringArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlUint: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlUintArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseUint: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + pauseGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + "prank(address,address)": TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + + "prank(address)": TypedContractMethod< + [msgSender: AddressLike], + [void], + "nonpayable" + >; + + "prevrandao(bytes32)": TypedContractMethod< + [newPrevrandao: BytesLike], + [void], + "nonpayable" + >; + + "prevrandao(uint256)": TypedContractMethod< + [newPrevrandao: BigNumberish], + [void], + "nonpayable" + >; + + projectRoot: TypedContractMethod<[], [string], "view">; + + prompt: TypedContractMethod<[promptText: string], [string], "nonpayable">; + + promptAddress: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecret: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecretUint: TypedContractMethod< + [promptText: string], + [bigint], + "nonpayable" + >; + + promptUint: TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + + randomAddress: TypedContractMethod<[], [string], "nonpayable">; + + "randomUint()": TypedContractMethod<[], [bigint], "nonpayable">; + + "randomUint(uint256,uint256)": TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + + readCallers: TypedContractMethod< + [], + [ + [bigint, string, string] & { + callerMode: bigint; + msgSender: string; + txOrigin: string; + } + ], + "nonpayable" + >; + + "readDir(string,uint64)": TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string,uint64,bool)": TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string)": TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + readFile: TypedContractMethod<[path: string], [string], "view">; + + readFileBinary: TypedContractMethod<[path: string], [string], "view">; + + readLine: TypedContractMethod<[path: string], [string], "view">; + + readLink: TypedContractMethod<[linkPath: string], [string], "view">; + + record: TypedContractMethod<[], [void], "nonpayable">; + + recordLogs: TypedContractMethod<[], [void], "nonpayable">; + + rememberKey: TypedContractMethod< + [privateKey: BigNumberish], + [string], + "nonpayable" + >; + + removeDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + removeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + replace: TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + + resetNonce: TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + + resumeGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + revertTo: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + revertToAndDelete: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + "revokePersistent(address[])": TypedContractMethod< + [accounts: AddressLike[]], + [void], + "nonpayable" + >; + + "revokePersistent(address)": TypedContractMethod< + [account: AddressLike], + [void], + "nonpayable" + >; + + roll: TypedContractMethod<[newHeight: BigNumberish], [void], "nonpayable">; + + "rollFork(bytes32)": TypedContractMethod< + [txHash: BytesLike], + [void], + "nonpayable" + >; + + "rollFork(uint256,uint256)": TypedContractMethod< + [forkId: BigNumberish, blockNumber: BigNumberish], + [void], + "nonpayable" + >; + + "rollFork(uint256)": TypedContractMethod< + [blockNumber: BigNumberish], + [void], + "nonpayable" + >; + + "rollFork(uint256,bytes32)": TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + + "rpc(string,string,string)": TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + + "rpc(string,string)": TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + + rpcUrl: TypedContractMethod<[rpcAlias: string], [string], "view">; + + rpcUrlStructs: TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + + rpcUrls: TypedContractMethod<[], [[string, string][]], "view">; + + selectFork: TypedContractMethod<[forkId: BigNumberish], [void], "nonpayable">; + + "serializeAddress(string,string,address[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + + "serializeAddress(string,string,address)": TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool)": TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeJson: TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeJsonType(string,bytes)": TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + + "serializeJsonType(string,string,string,bytes)": TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + + "serializeString(string,string,string[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + + "serializeString(string,string,string)": TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeUintToHex: TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + setBlockhash: TypedContractMethod< + [blockNumber: BigNumberish, blockHash: BytesLike], + [void], + "nonpayable" + >; + + setEnv: TypedContractMethod< + [name: string, value: string], + [void], + "nonpayable" + >; + + setNonce: TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + + setNonceUnsafe: TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + + "sign(bytes32)": TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign(address,bytes32)": TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + + "sign(uint256,bytes32)": TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + signP256: TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + + skip: TypedContractMethod<[skipTest: boolean], [void], "nonpayable">; + + sleep: TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + + snapshot: TypedContractMethod<[], [bigint], "nonpayable">; + + split: TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + + "startBroadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "startBroadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "startBroadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + startMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + "startPrank(address)": TypedContractMethod< + [msgSender: AddressLike], + [void], + "nonpayable" + >; + + "startPrank(address,address)": TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + + startStateDiffRecording: TypedContractMethod<[], [void], "nonpayable">; + + stopAndReturnStateDiff: TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + + stopBroadcast: TypedContractMethod<[], [void], "nonpayable">; + + stopExpectSafeMemory: TypedContractMethod<[], [void], "nonpayable">; + + stopMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + stopPrank: TypedContractMethod<[], [void], "nonpayable">; + + store: TypedContractMethod< + [target: AddressLike, slot: BytesLike, value: BytesLike], + [void], + "nonpayable" + >; + + "toBase64(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64(bytes)": TypedContractMethod<[data: BytesLike], [string], "view">; + + "toBase64URL(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64URL(bytes)": TypedContractMethod< + [data: BytesLike], + [string], + "view" + >; + + toLowercase: TypedContractMethod<[input: string], [string], "view">; + + "toString(address)": TypedContractMethod< + [value: AddressLike], + [string], + "view" + >; + + "toString(uint256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes)": TypedContractMethod<[value: BytesLike], [string], "view">; + + "toString(bool)": TypedContractMethod<[value: boolean], [string], "view">; + + "toString(int256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes32)": TypedContractMethod< + [value: BytesLike], + [string], + "view" + >; + + toUppercase: TypedContractMethod<[input: string], [string], "view">; + + "transact(uint256,bytes32)": TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + + "transact(bytes32)": TypedContractMethod< + [txHash: BytesLike], + [void], + "nonpayable" + >; + + trim: TypedContractMethod<[input: string], [string], "view">; + + tryFfi: TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + + txGasPrice: TypedContractMethod< + [newGasPrice: BigNumberish], + [void], + "nonpayable" + >; + + unixTime: TypedContractMethod<[], [bigint], "nonpayable">; + + warp: TypedContractMethod<[newTimestamp: BigNumberish], [void], "nonpayable">; + + writeFile: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + writeFileBinary: TypedContractMethod< + [path: string, data: BytesLike], + [void], + "nonpayable" + >; + + "writeJson(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeJson(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + writeLine: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + "writeToml(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeToml(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "accesses" + ): TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + getFunction( + nameOrSignature: "activeFork" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "addr" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "allowCheatcodes" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertFalse(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assertFalse(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertGe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertTrue(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertTrue(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assume" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "blobBaseFee" + ): TypedContractMethod<[newBlobBaseFee: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "blobhashes" + ): TypedContractMethod<[hashes: BytesLike[]], [void], "nonpayable">; + getFunction( + nameOrSignature: "breakpoint(string)" + ): TypedContractMethod<[char: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "breakpoint(string,bool)" + ): TypedContractMethod<[char: string, value: boolean], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "chainId" + ): TypedContractMethod<[newChainId: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "clearMockedCalls" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "closeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "coinbase" + ): TypedContractMethod<[newCoinbase: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32,address)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreateAddress" + ): TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + getFunction( + nameOrSignature: "copyFile" + ): TypedContractMethod<[from: string, to: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "createDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "createFork(string)" + ): TypedContractMethod<[urlOrAlias: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "createFork(string,uint256)" + ): TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createFork(string,bytes32)" + ): TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createSelectFork(string,uint256)" + ): TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createSelectFork(string,bytes32)" + ): TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createSelectFork(string)" + ): TypedContractMethod<[urlOrAlias: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "createWallet(string)" + ): TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256)" + ): TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256,string)" + ): TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "deal" + ): TypedContractMethod< + [account: AddressLike, newBalance: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deleteSnapshot" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "deleteSnapshots" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "deployCode(string,bytes)" + ): TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string)" + ): TypedContractMethod<[artifactPath: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32,string)" + ): TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32,string)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32)" + ): TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "difficulty" + ): TypedContractMethod<[newDifficulty: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "dumpState" + ): TypedContractMethod<[pathToStateJson: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "ensNamehash" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBool(string)" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envBool(string,string)" + ): TypedContractMethod<[name: string, delim: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "envBytes(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envBytes(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envExists" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envInt(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "envInt(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envOr(string,string,bytes32[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,int256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bool)" + ): TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,address)" + ): TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,uint256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bytes[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,uint256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,string[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes32)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,int256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,address[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string)" + ): TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bool[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + getFunction( + nameOrSignature: "envString(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envString(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envUint(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envUint(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "etch" + ): TypedContractMethod< + [target: AddressLike, newRuntimeBytecode: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "eth_getLogs" + ): TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "exists" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "expectCall(address,uint256,uint64,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,uint256,uint64,bytes,uint64)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,uint256,bytes,uint64)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,bytes,uint64)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, count: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,uint256,bytes)" + ): TypedContractMethod< + [callee: AddressLike, msgValue: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCallMinGas(address,uint256,uint64,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCallMinGas(address,uint256,uint64,bytes,uint64)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmit(bool,bool,bool,bool)" + ): TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit(bool,bool,bool,bool,address)" + ): TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit(address)" + ): TypedContractMethod<[emitter: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmitAnonymous()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmitAnonymous(address)" + ): TypedContractMethod<[emitter: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)" + ): TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmitAnonymous(bool,bool,bool,bool,bool)" + ): TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectRevert(bytes4)" + ): TypedContractMethod<[revertData: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectRevert(bytes)" + ): TypedContractMethod<[revertData: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectRevert()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectSafeMemory" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectSafeMemoryCall" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "fee" + ): TypedContractMethod<[newBasefee: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "ffi" + ): TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + getFunction( + nameOrSignature: "fsMetadata" + ): TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getBlobBaseFee" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlobhashes" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "getBlockNumber" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockTimestamp" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getDeployedCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getLabel" + ): TypedContractMethod<[account: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "getMappingKeyAndParentOf" + ): TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingLength" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingSlotAt" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "getNonce(address)" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getNonce((address,uint256,uint256,uint256))" + ): TypedContractMethod<[wallet: VmSafe.WalletStruct], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "getRecordedLogs" + ): TypedContractMethod<[], [VmSafe.LogStructOutput[]], "nonpayable">; + getFunction( + nameOrSignature: "indexOf" + ): TypedContractMethod<[input: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "isContext" + ): TypedContractMethod<[context: BigNumberish], [boolean], "view">; + getFunction( + nameOrSignature: "isDir" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "isFile" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "isPersistent" + ): TypedContractMethod<[account: AddressLike], [boolean], "view">; + getFunction( + nameOrSignature: "keyExists" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsJson" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsToml" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "label" + ): TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "lastCallGas" + ): TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + getFunction( + nameOrSignature: "load" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "loadAllocs" + ): TypedContractMethod<[pathToAllocsJson: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "makePersistent(address[])" + ): TypedContractMethod<[accounts: AddressLike[]], [void], "nonpayable">; + getFunction( + nameOrSignature: "makePersistent(address,address)" + ): TypedContractMethod< + [account0: AddressLike, account1: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "makePersistent(address)" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "makePersistent(address,address,address)" + ): TypedContractMethod< + [account0: AddressLike, account1: AddressLike, account2: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCall(address,uint256,bytes,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + returnData: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCall(address,bytes,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, returnData: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCallRevert(address,uint256,bytes,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + revertData: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCallRevert(address,bytes,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, revertData: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "parseAddress" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBool" + ): TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseBytes" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBytes32" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseInt" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJson(string)" + ): TypedContractMethod<[json: string], [string], "view">; + getFunction( + nameOrSignature: "parseJson(string,string)" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddress" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddressArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBool" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseJsonBoolArray" + ): TypedContractMethod<[json: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytes" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32Array" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytesArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonInt" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonIntArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseJsonKeys" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonString" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonStringArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonType(string,string)" + ): TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonType(string,string,string)" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonTypeArray" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonUint" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonUintArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseToml(string,string)" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseToml(string)" + ): TypedContractMethod<[toml: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddress" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddressArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBool" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseTomlBoolArray" + ): TypedContractMethod<[toml: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytes" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32Array" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytesArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlInt" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlIntArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseTomlKeys" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlString" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlStringArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlUint" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlUintArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseUint" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "pauseGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "prank(address,address)" + ): TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "prank(address)" + ): TypedContractMethod<[msgSender: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "prevrandao(bytes32)" + ): TypedContractMethod<[newPrevrandao: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "prevrandao(uint256)" + ): TypedContractMethod<[newPrevrandao: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "projectRoot" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "prompt" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptAddress" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecret" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecretUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "promptUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "randomAddress" + ): TypedContractMethod<[], [string], "nonpayable">; + getFunction( + nameOrSignature: "randomUint()" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "randomUint(uint256,uint256)" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "readCallers" + ): TypedContractMethod< + [], + [ + [bigint, string, string] & { + callerMode: bigint; + msgSender: string; + txOrigin: string; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "readDir(string,uint64)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string,uint64,bool)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string)" + ): TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readFile" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readFileBinary" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLine" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLink" + ): TypedContractMethod<[linkPath: string], [string], "view">; + getFunction( + nameOrSignature: "record" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "recordLogs" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "rememberKey" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "nonpayable">; + getFunction( + nameOrSignature: "removeDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "replace" + ): TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "resetNonce" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "resumeGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "revertTo" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "revertToAndDelete" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "revokePersistent(address[])" + ): TypedContractMethod<[accounts: AddressLike[]], [void], "nonpayable">; + getFunction( + nameOrSignature: "revokePersistent(address)" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "roll" + ): TypedContractMethod<[newHeight: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "rollFork(bytes32)" + ): TypedContractMethod<[txHash: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "rollFork(uint256,uint256)" + ): TypedContractMethod< + [forkId: BigNumberish, blockNumber: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "rollFork(uint256)" + ): TypedContractMethod<[blockNumber: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "rollFork(uint256,bytes32)" + ): TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpc(string,string,string)" + ): TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpc(string,string)" + ): TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpcUrl" + ): TypedContractMethod<[rpcAlias: string], [string], "view">; + getFunction( + nameOrSignature: "rpcUrlStructs" + ): TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + getFunction( + nameOrSignature: "rpcUrls" + ): TypedContractMethod<[], [[string, string][]], "view">; + getFunction( + nameOrSignature: "selectFork" + ): TypedContractMethod<[forkId: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "serializeAddress(string,string,address[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeAddress(string,string,address)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJson" + ): TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,bytes)" + ): TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,string,string,bytes)" + ): TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUintToHex" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "setBlockhash" + ): TypedContractMethod< + [blockNumber: BigNumberish, blockHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setEnv" + ): TypedContractMethod<[name: string, value: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "setNonce" + ): TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setNonceUnsafe" + ): TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "sign(bytes32)" + ): TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign(address,bytes32)" + ): TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign((address,uint256,uint256,uint256),bytes32)" + ): TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "sign(uint256,bytes32)" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "signP256" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "skip" + ): TypedContractMethod<[skipTest: boolean], [void], "nonpayable">; + getFunction( + nameOrSignature: "sleep" + ): TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "snapshot" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "split" + ): TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "startBroadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "startMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startPrank(address)" + ): TypedContractMethod<[msgSender: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "startPrank(address,address)" + ): TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "startStateDiffRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopAndReturnStateDiff" + ): TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "stopBroadcast" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopExpectSafeMemory" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopPrank" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "store" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike, value: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "toBase64(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toLowercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "toString(address)" + ): TypedContractMethod<[value: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "toString(uint256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toString(bool)" + ): TypedContractMethod<[value: boolean], [string], "view">; + getFunction( + nameOrSignature: "toString(int256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes32)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toUppercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "transact(uint256,bytes32)" + ): TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "transact(bytes32)" + ): TypedContractMethod<[txHash: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "trim" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "tryFfi" + ): TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "txGasPrice" + ): TypedContractMethod<[newGasPrice: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "unixTime" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "warp" + ): TypedContractMethod<[newTimestamp: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeFile" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeFileBinary" + ): TypedContractMethod<[path: string, data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeJson(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeJson(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeLine" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeToml(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeToml(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + + filters: {}; +} diff --git a/v2/typechain-types/Vm.sol/VmSafe.ts b/v2/typechain-types/Vm.sol/VmSafe.ts new file mode 100644 index 00000000..a7500a52 --- /dev/null +++ b/v2/typechain-types/Vm.sol/VmSafe.ts @@ -0,0 +1,6635 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export declare namespace VmSafe { + export type WalletStruct = { + addr: AddressLike; + publicKeyX: BigNumberish; + publicKeyY: BigNumberish; + privateKey: BigNumberish; + }; + + export type WalletStructOutput = [ + addr: string, + publicKeyX: bigint, + publicKeyY: bigint, + privateKey: bigint + ] & { + addr: string; + publicKeyX: bigint; + publicKeyY: bigint; + privateKey: bigint; + }; + + export type EthGetLogsStruct = { + emitter: AddressLike; + topics: BytesLike[]; + data: BytesLike; + blockHash: BytesLike; + blockNumber: BigNumberish; + transactionHash: BytesLike; + transactionIndex: BigNumberish; + logIndex: BigNumberish; + removed: boolean; + }; + + export type EthGetLogsStructOutput = [ + emitter: string, + topics: string[], + data: string, + blockHash: string, + blockNumber: bigint, + transactionHash: string, + transactionIndex: bigint, + logIndex: bigint, + removed: boolean + ] & { + emitter: string; + topics: string[]; + data: string; + blockHash: string; + blockNumber: bigint; + transactionHash: string; + transactionIndex: bigint; + logIndex: bigint; + removed: boolean; + }; + + export type FsMetadataStruct = { + isDir: boolean; + isSymlink: boolean; + length: BigNumberish; + readOnly: boolean; + modified: BigNumberish; + accessed: BigNumberish; + created: BigNumberish; + }; + + export type FsMetadataStructOutput = [ + isDir: boolean, + isSymlink: boolean, + length: bigint, + readOnly: boolean, + modified: bigint, + accessed: bigint, + created: bigint + ] & { + isDir: boolean; + isSymlink: boolean; + length: bigint; + readOnly: boolean; + modified: bigint; + accessed: bigint; + created: bigint; + }; + + export type LogStruct = { + topics: BytesLike[]; + data: BytesLike; + emitter: AddressLike; + }; + + export type LogStructOutput = [ + topics: string[], + data: string, + emitter: string + ] & { topics: string[]; data: string; emitter: string }; + + export type GasStruct = { + gasLimit: BigNumberish; + gasTotalUsed: BigNumberish; + gasMemoryUsed: BigNumberish; + gasRefunded: BigNumberish; + gasRemaining: BigNumberish; + }; + + export type GasStructOutput = [ + gasLimit: bigint, + gasTotalUsed: bigint, + gasMemoryUsed: bigint, + gasRefunded: bigint, + gasRemaining: bigint + ] & { + gasLimit: bigint; + gasTotalUsed: bigint; + gasMemoryUsed: bigint; + gasRefunded: bigint; + gasRemaining: bigint; + }; + + export type DirEntryStruct = { + errorMessage: string; + path: string; + depth: BigNumberish; + isDir: boolean; + isSymlink: boolean; + }; + + export type DirEntryStructOutput = [ + errorMessage: string, + path: string, + depth: bigint, + isDir: boolean, + isSymlink: boolean + ] & { + errorMessage: string; + path: string; + depth: bigint; + isDir: boolean; + isSymlink: boolean; + }; + + export type RpcStruct = { key: string; url: string }; + + export type RpcStructOutput = [key: string, url: string] & { + key: string; + url: string; + }; + + export type ChainInfoStruct = { forkId: BigNumberish; chainId: BigNumberish }; + + export type ChainInfoStructOutput = [forkId: bigint, chainId: bigint] & { + forkId: bigint; + chainId: bigint; + }; + + export type StorageAccessStruct = { + account: AddressLike; + slot: BytesLike; + isWrite: boolean; + previousValue: BytesLike; + newValue: BytesLike; + reverted: boolean; + }; + + export type StorageAccessStructOutput = [ + account: string, + slot: string, + isWrite: boolean, + previousValue: string, + newValue: string, + reverted: boolean + ] & { + account: string; + slot: string; + isWrite: boolean; + previousValue: string; + newValue: string; + reverted: boolean; + }; + + export type AccountAccessStruct = { + chainInfo: VmSafe.ChainInfoStruct; + kind: BigNumberish; + account: AddressLike; + accessor: AddressLike; + initialized: boolean; + oldBalance: BigNumberish; + newBalance: BigNumberish; + deployedCode: BytesLike; + value: BigNumberish; + data: BytesLike; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStruct[]; + depth: BigNumberish; + }; + + export type AccountAccessStructOutput = [ + chainInfo: VmSafe.ChainInfoStructOutput, + kind: bigint, + account: string, + accessor: string, + initialized: boolean, + oldBalance: bigint, + newBalance: bigint, + deployedCode: string, + value: bigint, + data: string, + reverted: boolean, + storageAccesses: VmSafe.StorageAccessStructOutput[], + depth: bigint + ] & { + chainInfo: VmSafe.ChainInfoStructOutput; + kind: bigint; + account: string; + accessor: string; + initialized: boolean; + oldBalance: bigint; + newBalance: bigint; + deployedCode: string; + value: bigint; + data: string; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStructOutput[]; + depth: bigint; + }; + + export type FfiResultStruct = { + exitCode: BigNumberish; + stdout: BytesLike; + stderr: BytesLike; + }; + + export type FfiResultStructOutput = [ + exitCode: bigint, + stdout: string, + stderr: string + ] & { exitCode: bigint; stdout: string; stderr: string }; +} + +export interface VmSafeInterface extends Interface { + getFunction( + nameOrSignature: + | "accesses" + | "addr" + | "assertApproxEqAbs(uint256,uint256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256,string)" + | "assertApproxEqAbs(uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256)" + | "assertApproxEqRel(int256,int256,uint256,string)" + | "assertApproxEqRel(int256,int256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + | "assertEq(bytes32[],bytes32[])" + | "assertEq(int256[],int256[],string)" + | "assertEq(address,address,string)" + | "assertEq(string,string,string)" + | "assertEq(address[],address[])" + | "assertEq(address[],address[],string)" + | "assertEq(bool,bool,string)" + | "assertEq(address,address)" + | "assertEq(uint256[],uint256[],string)" + | "assertEq(bool[],bool[])" + | "assertEq(int256[],int256[])" + | "assertEq(int256,int256,string)" + | "assertEq(bytes32,bytes32)" + | "assertEq(uint256,uint256,string)" + | "assertEq(uint256[],uint256[])" + | "assertEq(bytes,bytes)" + | "assertEq(uint256,uint256)" + | "assertEq(bytes32,bytes32,string)" + | "assertEq(string[],string[])" + | "assertEq(bytes32[],bytes32[],string)" + | "assertEq(bytes,bytes,string)" + | "assertEq(bool[],bool[],string)" + | "assertEq(bytes[],bytes[])" + | "assertEq(string[],string[],string)" + | "assertEq(string,string)" + | "assertEq(bytes[],bytes[],string)" + | "assertEq(bool,bool)" + | "assertEq(int256,int256)" + | "assertEqDecimal(uint256,uint256,uint256)" + | "assertEqDecimal(int256,int256,uint256)" + | "assertEqDecimal(int256,int256,uint256,string)" + | "assertEqDecimal(uint256,uint256,uint256,string)" + | "assertFalse(bool,string)" + | "assertFalse(bool)" + | "assertGe(int256,int256)" + | "assertGe(int256,int256,string)" + | "assertGe(uint256,uint256)" + | "assertGe(uint256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256)" + | "assertGeDecimal(int256,int256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256,string)" + | "assertGeDecimal(int256,int256,uint256)" + | "assertGt(int256,int256)" + | "assertGt(uint256,uint256,string)" + | "assertGt(uint256,uint256)" + | "assertGt(int256,int256,string)" + | "assertGtDecimal(int256,int256,uint256,string)" + | "assertGtDecimal(uint256,uint256,uint256,string)" + | "assertGtDecimal(int256,int256,uint256)" + | "assertGtDecimal(uint256,uint256,uint256)" + | "assertLe(int256,int256,string)" + | "assertLe(uint256,uint256)" + | "assertLe(int256,int256)" + | "assertLe(uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256)" + | "assertLeDecimal(uint256,uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256,string)" + | "assertLeDecimal(uint256,uint256,uint256)" + | "assertLt(int256,int256)" + | "assertLt(uint256,uint256,string)" + | "assertLt(int256,int256,string)" + | "assertLt(uint256,uint256)" + | "assertLtDecimal(uint256,uint256,uint256)" + | "assertLtDecimal(int256,int256,uint256,string)" + | "assertLtDecimal(uint256,uint256,uint256,string)" + | "assertLtDecimal(int256,int256,uint256)" + | "assertNotEq(bytes32[],bytes32[])" + | "assertNotEq(int256[],int256[])" + | "assertNotEq(bool,bool,string)" + | "assertNotEq(bytes[],bytes[],string)" + | "assertNotEq(bool,bool)" + | "assertNotEq(bool[],bool[])" + | "assertNotEq(bytes,bytes)" + | "assertNotEq(address[],address[])" + | "assertNotEq(int256,int256,string)" + | "assertNotEq(uint256[],uint256[])" + | "assertNotEq(bool[],bool[],string)" + | "assertNotEq(string,string)" + | "assertNotEq(address[],address[],string)" + | "assertNotEq(string,string,string)" + | "assertNotEq(address,address,string)" + | "assertNotEq(bytes32,bytes32)" + | "assertNotEq(bytes,bytes,string)" + | "assertNotEq(uint256,uint256,string)" + | "assertNotEq(uint256[],uint256[],string)" + | "assertNotEq(address,address)" + | "assertNotEq(bytes32,bytes32,string)" + | "assertNotEq(string[],string[],string)" + | "assertNotEq(uint256,uint256)" + | "assertNotEq(bytes32[],bytes32[],string)" + | "assertNotEq(string[],string[])" + | "assertNotEq(int256[],int256[],string)" + | "assertNotEq(bytes[],bytes[])" + | "assertNotEq(int256,int256)" + | "assertNotEqDecimal(int256,int256,uint256)" + | "assertNotEqDecimal(int256,int256,uint256,string)" + | "assertNotEqDecimal(uint256,uint256,uint256)" + | "assertNotEqDecimal(uint256,uint256,uint256,string)" + | "assertTrue(bool)" + | "assertTrue(bool,string)" + | "assume" + | "breakpoint(string)" + | "breakpoint(string,bool)" + | "broadcast()" + | "broadcast(address)" + | "broadcast(uint256)" + | "closeFile" + | "computeCreate2Address(bytes32,bytes32)" + | "computeCreate2Address(bytes32,bytes32,address)" + | "computeCreateAddress" + | "copyFile" + | "createDir" + | "createWallet(string)" + | "createWallet(uint256)" + | "createWallet(uint256,string)" + | "deployCode(string,bytes)" + | "deployCode(string)" + | "deriveKey(string,string,uint32,string)" + | "deriveKey(string,uint32,string)" + | "deriveKey(string,uint32)" + | "deriveKey(string,string,uint32)" + | "ensNamehash" + | "envAddress(string)" + | "envAddress(string,string)" + | "envBool(string)" + | "envBool(string,string)" + | "envBytes(string)" + | "envBytes(string,string)" + | "envBytes32(string,string)" + | "envBytes32(string)" + | "envExists" + | "envInt(string,string)" + | "envInt(string)" + | "envOr(string,string,bytes32[])" + | "envOr(string,string,int256[])" + | "envOr(string,bool)" + | "envOr(string,address)" + | "envOr(string,uint256)" + | "envOr(string,string,bytes[])" + | "envOr(string,string,uint256[])" + | "envOr(string,string,string[])" + | "envOr(string,bytes)" + | "envOr(string,bytes32)" + | "envOr(string,int256)" + | "envOr(string,string,address[])" + | "envOr(string,string)" + | "envOr(string,string,bool[])" + | "envString(string,string)" + | "envString(string)" + | "envUint(string)" + | "envUint(string,string)" + | "eth_getLogs" + | "exists" + | "ffi" + | "fsMetadata" + | "getBlobBaseFee" + | "getBlockNumber" + | "getBlockTimestamp" + | "getCode" + | "getDeployedCode" + | "getLabel" + | "getMappingKeyAndParentOf" + | "getMappingLength" + | "getMappingSlotAt" + | "getNonce(address)" + | "getNonce((address,uint256,uint256,uint256))" + | "getRecordedLogs" + | "indexOf" + | "isContext" + | "isDir" + | "isFile" + | "keyExists" + | "keyExistsJson" + | "keyExistsToml" + | "label" + | "lastCallGas" + | "load" + | "parseAddress" + | "parseBool" + | "parseBytes" + | "parseBytes32" + | "parseInt" + | "parseJson(string)" + | "parseJson(string,string)" + | "parseJsonAddress" + | "parseJsonAddressArray" + | "parseJsonBool" + | "parseJsonBoolArray" + | "parseJsonBytes" + | "parseJsonBytes32" + | "parseJsonBytes32Array" + | "parseJsonBytesArray" + | "parseJsonInt" + | "parseJsonIntArray" + | "parseJsonKeys" + | "parseJsonString" + | "parseJsonStringArray" + | "parseJsonType(string,string)" + | "parseJsonType(string,string,string)" + | "parseJsonTypeArray" + | "parseJsonUint" + | "parseJsonUintArray" + | "parseToml(string,string)" + | "parseToml(string)" + | "parseTomlAddress" + | "parseTomlAddressArray" + | "parseTomlBool" + | "parseTomlBoolArray" + | "parseTomlBytes" + | "parseTomlBytes32" + | "parseTomlBytes32Array" + | "parseTomlBytesArray" + | "parseTomlInt" + | "parseTomlIntArray" + | "parseTomlKeys" + | "parseTomlString" + | "parseTomlStringArray" + | "parseTomlUint" + | "parseTomlUintArray" + | "parseUint" + | "pauseGasMetering" + | "projectRoot" + | "prompt" + | "promptAddress" + | "promptSecret" + | "promptSecretUint" + | "promptUint" + | "randomAddress" + | "randomUint()" + | "randomUint(uint256,uint256)" + | "readDir(string,uint64)" + | "readDir(string,uint64,bool)" + | "readDir(string)" + | "readFile" + | "readFileBinary" + | "readLine" + | "readLink" + | "record" + | "recordLogs" + | "rememberKey" + | "removeDir" + | "removeFile" + | "replace" + | "resumeGasMetering" + | "rpc(string,string,string)" + | "rpc(string,string)" + | "rpcUrl" + | "rpcUrlStructs" + | "rpcUrls" + | "serializeAddress(string,string,address[])" + | "serializeAddress(string,string,address)" + | "serializeBool(string,string,bool[])" + | "serializeBool(string,string,bool)" + | "serializeBytes(string,string,bytes[])" + | "serializeBytes(string,string,bytes)" + | "serializeBytes32(string,string,bytes32[])" + | "serializeBytes32(string,string,bytes32)" + | "serializeInt(string,string,int256)" + | "serializeInt(string,string,int256[])" + | "serializeJson" + | "serializeJsonType(string,bytes)" + | "serializeJsonType(string,string,string,bytes)" + | "serializeString(string,string,string[])" + | "serializeString(string,string,string)" + | "serializeUint(string,string,uint256)" + | "serializeUint(string,string,uint256[])" + | "serializeUintToHex" + | "setEnv" + | "sign(bytes32)" + | "sign(address,bytes32)" + | "sign((address,uint256,uint256,uint256),bytes32)" + | "sign(uint256,bytes32)" + | "signP256" + | "sleep" + | "split" + | "startBroadcast()" + | "startBroadcast(address)" + | "startBroadcast(uint256)" + | "startMappingRecording" + | "startStateDiffRecording" + | "stopAndReturnStateDiff" + | "stopBroadcast" + | "stopMappingRecording" + | "toBase64(string)" + | "toBase64(bytes)" + | "toBase64URL(string)" + | "toBase64URL(bytes)" + | "toLowercase" + | "toString(address)" + | "toString(uint256)" + | "toString(bytes)" + | "toString(bool)" + | "toString(int256)" + | "toString(bytes32)" + | "toUppercase" + | "trim" + | "tryFfi" + | "unixTime" + | "writeFile" + | "writeFileBinary" + | "writeJson(string,string,string)" + | "writeJson(string,string)" + | "writeLine" + | "writeToml(string,string,string)" + | "writeToml(string,string)" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "accesses", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "addr", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData(functionFragment: "assume", values: [boolean]): string; + encodeFunctionData( + functionFragment: "breakpoint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "breakpoint(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "broadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "broadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "broadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "closeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + values: [BytesLike, BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreateAddress", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "copyFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "createDir", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "createWallet(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256,string)", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32,string)", + values: [string, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32,string)", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "ensNamehash", values: [string]): string; + encodeFunctionData( + functionFragment: "envAddress(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envAddress(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "envExists", values: [string]): string; + encodeFunctionData( + functionFragment: "envInt(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envInt(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,address)", + values: [string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,int256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "envString(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envString(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "eth_getLogs", + values: [BigNumberish, BigNumberish, AddressLike, BytesLike[]] + ): string; + encodeFunctionData(functionFragment: "exists", values: [string]): string; + encodeFunctionData(functionFragment: "ffi", values: [string[]]): string; + encodeFunctionData(functionFragment: "fsMetadata", values: [string]): string; + encodeFunctionData( + functionFragment: "getBlobBaseFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockNumber", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockTimestamp", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "getCode", values: [string]): string; + encodeFunctionData( + functionFragment: "getDeployedCode", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getLabel", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingKeyAndParentOf", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingLength", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingSlotAt", + values: [AddressLike, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getNonce(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + values: [VmSafe.WalletStruct] + ): string; + encodeFunctionData( + functionFragment: "getRecordedLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "indexOf", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "isContext", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "isDir", values: [string]): string; + encodeFunctionData(functionFragment: "isFile", values: [string]): string; + encodeFunctionData( + functionFragment: "keyExists", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsToml", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "label", + values: [AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "lastCallGas", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "load", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "parseAddress", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseBool", values: [string]): string; + encodeFunctionData(functionFragment: "parseBytes", values: [string]): string; + encodeFunctionData( + functionFragment: "parseBytes32", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseInt", values: [string]): string; + encodeFunctionData( + functionFragment: "parseJson(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonTypeArray", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUintArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUintArray", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "parseUint", values: [string]): string; + encodeFunctionData( + functionFragment: "pauseGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "projectRoot", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "prompt", values: [string]): string; + encodeFunctionData( + functionFragment: "promptAddress", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecret", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecretUint", + values: [string] + ): string; + encodeFunctionData(functionFragment: "promptUint", values: [string]): string; + encodeFunctionData( + functionFragment: "randomAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomUint()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomUint(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64,bool)", + values: [string, BigNumberish, boolean] + ): string; + encodeFunctionData( + functionFragment: "readDir(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readFile", values: [string]): string; + encodeFunctionData( + functionFragment: "readFileBinary", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readLine", values: [string]): string; + encodeFunctionData(functionFragment: "readLink", values: [string]): string; + encodeFunctionData(functionFragment: "record", values?: undefined): string; + encodeFunctionData( + functionFragment: "recordLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rememberKey", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeDir", + values: [string, boolean] + ): string; + encodeFunctionData(functionFragment: "removeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "replace", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "resumeGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string)", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "rpcUrl", values: [string]): string; + encodeFunctionData( + functionFragment: "rpcUrlStructs", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "rpcUrls", values?: undefined): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address)", + values: [string, string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool)", + values: [string, string, boolean] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,string,string,bytes)", + values: [string, string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeUintToHex", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setEnv", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "sign(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(address,bytes32)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + values: [VmSafe.WalletStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signP256", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData(functionFragment: "sleep", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "split", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "startMappingRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startStateDiffRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopAndReturnStateDiff", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopBroadcast", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopMappingRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "toBase64(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toLowercase", values: [string]): string; + encodeFunctionData( + functionFragment: "toString(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "toString(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toString(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "toString(int256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toUppercase", values: [string]): string; + encodeFunctionData(functionFragment: "trim", values: [string]): string; + encodeFunctionData(functionFragment: "tryFfi", values: [string[]]): string; + encodeFunctionData(functionFragment: "unixTime", values?: undefined): string; + encodeFunctionData( + functionFragment: "writeFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeFileBinary", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeLine", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string)", + values: [string, string] + ): string; + + decodeFunctionResult(functionFragment: "accesses", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "addr", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "assume", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "closeFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreateAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "copyFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "createDir", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "createWallet(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "ensNamehash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "envExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "envInt(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envInt(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "eth_getLogs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "exists", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ffi", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "fsMetadata", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getBlobBaseFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockNumber", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockTimestamp", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getCode", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getDeployedCode", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getLabel", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getMappingKeyAndParentOf", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingLength", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingSlotAt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRecordedLogs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "indexOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isContext", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "keyExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "keyExistsJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "keyExistsToml", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "label", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "lastCallGas", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "load", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseBool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "parseBytes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseBytes32", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseInt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseJson(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonTypeArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUintArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUintArray", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "pauseGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "projectRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "prompt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "promptAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecret", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecretUint", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "promptUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "randomAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "readFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readLine", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "readLink", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "record", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "recordLogs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rememberKey", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "removeDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "removeFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "replace", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "resumeGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrl", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rpcUrlStructs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrls", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUintToHex", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setEnv", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sign(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(address,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "signP256", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sleep", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "split", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "startBroadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startStateDiffRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopAndReturnStateDiff", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopBroadcast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toLowercase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toUppercase", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "trim", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tryFfi", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unixTime", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "writeFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "writeLine", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string)", + data: BytesLike + ): Result; +} + +export interface VmSafe extends BaseContract { + connect(runner?: ContractRunner | null): VmSafe; + waitForDeployment(): Promise; + + interface: VmSafeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + accesses: TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + + addr: TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + + "assertApproxEqAbs(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbs(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertFalse(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + "assertFalse(bool)": TypedContractMethod< + [condition: boolean], + [void], + "view" + >; + + "assertGe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertNotEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertNotEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertNotEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertNotEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertTrue(bool)": TypedContractMethod<[condition: boolean], [void], "view">; + + "assertTrue(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + assume: TypedContractMethod<[condition: boolean], [void], "view">; + + "breakpoint(string)": TypedContractMethod< + [char: string], + [void], + "nonpayable" + >; + + "breakpoint(string,bool)": TypedContractMethod< + [char: string, value: boolean], + [void], + "nonpayable" + >; + + "broadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "broadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "broadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + closeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + "computeCreate2Address(bytes32,bytes32)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + + "computeCreate2Address(bytes32,bytes32,address)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + + computeCreateAddress: TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + + copyFile: TypedContractMethod< + [from: string, to: string], + [bigint], + "nonpayable" + >; + + createDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + "createWallet(string)": TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256,string)": TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "deployCode(string,bytes)": TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string)": TypedContractMethod< + [artifactPath: string], + [string], + "nonpayable" + >; + + "deriveKey(string,string,uint32,string)": TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + + "deriveKey(string,uint32,string)": TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + + "deriveKey(string,uint32)": TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + + "deriveKey(string,string,uint32)": TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + + ensNamehash: TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string)": TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBool(string)": TypedContractMethod<[name: string], [boolean], "view">; + + "envBool(string,string)": TypedContractMethod< + [name: string, delim: string], + [boolean[]], + "view" + >; + + "envBytes(string)": TypedContractMethod<[name: string], [string], "view">; + + "envBytes(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string)": TypedContractMethod<[name: string], [string], "view">; + + envExists: TypedContractMethod<[name: string], [boolean], "view">; + + "envInt(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + "envInt(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envOr(string,string,bytes32[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,int256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,bool)": TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + + "envOr(string,address)": TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + + "envOr(string,uint256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,bytes[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,uint256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,string,string[])": TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + + "envOr(string,bytes)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,bytes32)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,int256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,address[])": TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + + "envOr(string,string)": TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + + "envOr(string,string,bool[])": TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + + "envString(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envString(string)": TypedContractMethod<[name: string], [string], "view">; + + "envUint(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envUint(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + eth_getLogs: TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + + exists: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + ffi: TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + + fsMetadata: TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + + getBlobBaseFee: TypedContractMethod<[], [bigint], "view">; + + getBlockNumber: TypedContractMethod<[], [bigint], "view">; + + getBlockTimestamp: TypedContractMethod<[], [bigint], "view">; + + getCode: TypedContractMethod<[artifactPath: string], [string], "view">; + + getDeployedCode: TypedContractMethod< + [artifactPath: string], + [string], + "view" + >; + + getLabel: TypedContractMethod<[account: AddressLike], [string], "view">; + + getMappingKeyAndParentOf: TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + + getMappingLength: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + + getMappingSlotAt: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + + "getNonce(address)": TypedContractMethod< + [account: AddressLike], + [bigint], + "view" + >; + + "getNonce((address,uint256,uint256,uint256))": TypedContractMethod< + [wallet: VmSafe.WalletStruct], + [bigint], + "nonpayable" + >; + + getRecordedLogs: TypedContractMethod< + [], + [VmSafe.LogStructOutput[]], + "nonpayable" + >; + + indexOf: TypedContractMethod<[input: string, key: string], [bigint], "view">; + + isContext: TypedContractMethod<[context: BigNumberish], [boolean], "view">; + + isDir: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + isFile: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + keyExists: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsJson: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsToml: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + label: TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + + lastCallGas: TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + + load: TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + + parseAddress: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseBool: TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + + parseBytes: TypedContractMethod<[stringifiedValue: string], [string], "view">; + + parseBytes32: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseInt: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + "parseJson(string)": TypedContractMethod<[json: string], [string], "view">; + + "parseJson(string,string)": TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddress: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddressArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBool: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + parseJsonBoolArray: TypedContractMethod< + [json: string, key: string], + [boolean[]], + "view" + >; + + parseJsonBytes: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32Array: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBytesArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonInt: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonIntArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + parseJsonKeys: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonString: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonStringArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + "parseJsonType(string,string)": TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + + "parseJsonType(string,string,string)": TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonTypeArray: TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonUint: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonUintArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + "parseToml(string,string)": TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + "parseToml(string)": TypedContractMethod<[toml: string], [string], "view">; + + parseTomlAddress: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlAddressArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBool: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + parseTomlBoolArray: TypedContractMethod< + [toml: string, key: string], + [boolean[]], + "view" + >; + + parseTomlBytes: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32Array: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBytesArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlInt: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlIntArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseTomlKeys: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlString: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlStringArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlUint: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlUintArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseUint: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + pauseGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + projectRoot: TypedContractMethod<[], [string], "view">; + + prompt: TypedContractMethod<[promptText: string], [string], "nonpayable">; + + promptAddress: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecret: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecretUint: TypedContractMethod< + [promptText: string], + [bigint], + "nonpayable" + >; + + promptUint: TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + + randomAddress: TypedContractMethod<[], [string], "nonpayable">; + + "randomUint()": TypedContractMethod<[], [bigint], "nonpayable">; + + "randomUint(uint256,uint256)": TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + + "readDir(string,uint64)": TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string,uint64,bool)": TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string)": TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + readFile: TypedContractMethod<[path: string], [string], "view">; + + readFileBinary: TypedContractMethod<[path: string], [string], "view">; + + readLine: TypedContractMethod<[path: string], [string], "view">; + + readLink: TypedContractMethod<[linkPath: string], [string], "view">; + + record: TypedContractMethod<[], [void], "nonpayable">; + + recordLogs: TypedContractMethod<[], [void], "nonpayable">; + + rememberKey: TypedContractMethod< + [privateKey: BigNumberish], + [string], + "nonpayable" + >; + + removeDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + removeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + replace: TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + + resumeGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + "rpc(string,string,string)": TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + + "rpc(string,string)": TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + + rpcUrl: TypedContractMethod<[rpcAlias: string], [string], "view">; + + rpcUrlStructs: TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + + rpcUrls: TypedContractMethod<[], [[string, string][]], "view">; + + "serializeAddress(string,string,address[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + + "serializeAddress(string,string,address)": TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool)": TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeJson: TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeJsonType(string,bytes)": TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + + "serializeJsonType(string,string,string,bytes)": TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + + "serializeString(string,string,string[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + + "serializeString(string,string,string)": TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeUintToHex: TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + setEnv: TypedContractMethod< + [name: string, value: string], + [void], + "nonpayable" + >; + + "sign(bytes32)": TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign(address,bytes32)": TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + + "sign(uint256,bytes32)": TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + signP256: TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + + sleep: TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + + split: TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + + "startBroadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "startBroadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "startBroadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + startMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + startStateDiffRecording: TypedContractMethod<[], [void], "nonpayable">; + + stopAndReturnStateDiff: TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + + stopBroadcast: TypedContractMethod<[], [void], "nonpayable">; + + stopMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + "toBase64(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64(bytes)": TypedContractMethod<[data: BytesLike], [string], "view">; + + "toBase64URL(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64URL(bytes)": TypedContractMethod< + [data: BytesLike], + [string], + "view" + >; + + toLowercase: TypedContractMethod<[input: string], [string], "view">; + + "toString(address)": TypedContractMethod< + [value: AddressLike], + [string], + "view" + >; + + "toString(uint256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes)": TypedContractMethod<[value: BytesLike], [string], "view">; + + "toString(bool)": TypedContractMethod<[value: boolean], [string], "view">; + + "toString(int256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes32)": TypedContractMethod< + [value: BytesLike], + [string], + "view" + >; + + toUppercase: TypedContractMethod<[input: string], [string], "view">; + + trim: TypedContractMethod<[input: string], [string], "view">; + + tryFfi: TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + + unixTime: TypedContractMethod<[], [bigint], "nonpayable">; + + writeFile: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + writeFileBinary: TypedContractMethod< + [path: string, data: BytesLike], + [void], + "nonpayable" + >; + + "writeJson(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeJson(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + writeLine: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + "writeToml(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeToml(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "accesses" + ): TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + getFunction( + nameOrSignature: "addr" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertFalse(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assertFalse(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertGe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertTrue(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertTrue(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assume" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "breakpoint(string)" + ): TypedContractMethod<[char: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "breakpoint(string,bool)" + ): TypedContractMethod<[char: string, value: boolean], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "closeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32,address)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreateAddress" + ): TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + getFunction( + nameOrSignature: "copyFile" + ): TypedContractMethod<[from: string, to: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "createDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(string)" + ): TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256)" + ): TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256,string)" + ): TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,bytes)" + ): TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string)" + ): TypedContractMethod<[artifactPath: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32,string)" + ): TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32,string)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32)" + ): TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "ensNamehash" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBool(string)" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envBool(string,string)" + ): TypedContractMethod<[name: string, delim: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "envBytes(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envBytes(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envExists" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envInt(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "envInt(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envOr(string,string,bytes32[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,int256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bool)" + ): TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,address)" + ): TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,uint256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bytes[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,uint256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,string[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes32)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,int256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,address[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string)" + ): TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bool[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + getFunction( + nameOrSignature: "envString(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envString(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envUint(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envUint(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "eth_getLogs" + ): TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "exists" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "ffi" + ): TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + getFunction( + nameOrSignature: "fsMetadata" + ): TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getBlobBaseFee" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockNumber" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockTimestamp" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getDeployedCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getLabel" + ): TypedContractMethod<[account: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "getMappingKeyAndParentOf" + ): TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingLength" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingSlotAt" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "getNonce(address)" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getNonce((address,uint256,uint256,uint256))" + ): TypedContractMethod<[wallet: VmSafe.WalletStruct], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "getRecordedLogs" + ): TypedContractMethod<[], [VmSafe.LogStructOutput[]], "nonpayable">; + getFunction( + nameOrSignature: "indexOf" + ): TypedContractMethod<[input: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "isContext" + ): TypedContractMethod<[context: BigNumberish], [boolean], "view">; + getFunction( + nameOrSignature: "isDir" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "isFile" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "keyExists" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsJson" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsToml" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "label" + ): TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "lastCallGas" + ): TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + getFunction( + nameOrSignature: "load" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseAddress" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBool" + ): TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseBytes" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBytes32" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseInt" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJson(string)" + ): TypedContractMethod<[json: string], [string], "view">; + getFunction( + nameOrSignature: "parseJson(string,string)" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddress" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddressArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBool" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseJsonBoolArray" + ): TypedContractMethod<[json: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytes" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32Array" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytesArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonInt" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonIntArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseJsonKeys" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonString" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonStringArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonType(string,string)" + ): TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonType(string,string,string)" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonTypeArray" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonUint" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonUintArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseToml(string,string)" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseToml(string)" + ): TypedContractMethod<[toml: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddress" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddressArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBool" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseTomlBoolArray" + ): TypedContractMethod<[toml: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytes" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32Array" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytesArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlInt" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlIntArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseTomlKeys" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlString" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlStringArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlUint" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlUintArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseUint" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "pauseGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "projectRoot" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "prompt" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptAddress" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecret" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecretUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "promptUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "randomAddress" + ): TypedContractMethod<[], [string], "nonpayable">; + getFunction( + nameOrSignature: "randomUint()" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "randomUint(uint256,uint256)" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "readDir(string,uint64)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string,uint64,bool)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string)" + ): TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readFile" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readFileBinary" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLine" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLink" + ): TypedContractMethod<[linkPath: string], [string], "view">; + getFunction( + nameOrSignature: "record" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "recordLogs" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "rememberKey" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "nonpayable">; + getFunction( + nameOrSignature: "removeDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "replace" + ): TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "resumeGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "rpc(string,string,string)" + ): TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpc(string,string)" + ): TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpcUrl" + ): TypedContractMethod<[rpcAlias: string], [string], "view">; + getFunction( + nameOrSignature: "rpcUrlStructs" + ): TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + getFunction( + nameOrSignature: "rpcUrls" + ): TypedContractMethod<[], [[string, string][]], "view">; + getFunction( + nameOrSignature: "serializeAddress(string,string,address[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeAddress(string,string,address)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJson" + ): TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,bytes)" + ): TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,string,string,bytes)" + ): TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUintToHex" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "setEnv" + ): TypedContractMethod<[name: string, value: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "sign(bytes32)" + ): TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign(address,bytes32)" + ): TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign((address,uint256,uint256,uint256),bytes32)" + ): TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "sign(uint256,bytes32)" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "signP256" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sleep" + ): TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "split" + ): TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "startBroadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "startMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startStateDiffRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopAndReturnStateDiff" + ): TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "stopBroadcast" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "toBase64(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toLowercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "toString(address)" + ): TypedContractMethod<[value: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "toString(uint256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toString(bool)" + ): TypedContractMethod<[value: boolean], [string], "view">; + getFunction( + nameOrSignature: "toString(int256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes32)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toUppercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "trim" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "tryFfi" + ): TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "unixTime" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "writeFile" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeFileBinary" + ): TypedContractMethod<[path: string, data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeJson(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeJson(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeLine" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeToml(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeToml(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + + filters: {}; +} diff --git a/v2/typechain-types/Vm.sol/index.ts b/v2/typechain-types/Vm.sol/index.ts new file mode 100644 index 00000000..6ea1a166 --- /dev/null +++ b/v2/typechain-types/Vm.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Vm } from "./Vm"; +export type { VmSafe } from "./VmSafe"; diff --git a/v2/typechain-types/WZETA.sol/WETH9.ts b/v2/typechain-types/WZETA.sol/WETH9.ts new file mode 100644 index 00000000..f285f76c --- /dev/null +++ b/v2/typechain-types/WZETA.sol/WETH9.ts @@ -0,0 +1,369 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface WETH9Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "deposit" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "Deposit" | "Transfer" | "Withdrawal" + ): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + src: AddressLike, + guy: AddressLike, + wad: BigNumberish + ]; + export type OutputTuple = [src: string, guy: string, wad: bigint]; + export interface OutputObject { + src: string; + guy: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [dst: AddressLike, wad: BigNumberish]; + export type OutputTuple = [dst: string, wad: bigint]; + export interface OutputObject { + dst: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + src: AddressLike, + dst: AddressLike, + wad: BigNumberish + ]; + export type OutputTuple = [src: string, dst: string, wad: bigint]; + export interface OutputObject { + src: string; + dst: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [src: AddressLike, wad: BigNumberish]; + export type OutputTuple = [src: string, wad: bigint]; + export interface OutputObject { + src: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface WETH9 extends BaseContract { + connect(runner?: ContractRunner | null): WETH9; + waitForDeployment(): Promise; + + interface: WETH9Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [guy: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod<[], [void], "payable">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [src: AddressLike, dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [guy: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[], [void], "payable">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [src: AddressLike, dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "Withdrawal(address,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/WZETA.sol/index.ts b/v2/typechain-types/WZETA.sol/index.ts new file mode 100644 index 00000000..3f031232 --- /dev/null +++ b/v2/typechain-types/WZETA.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { WETH9 } from "./WETH9"; diff --git a/v2/typechain-types/ZRC20New.sol/ZRC20Errors.ts b/v2/typechain-types/ZRC20New.sol/ZRC20Errors.ts new file mode 100644 index 00000000..4bac6254 --- /dev/null +++ b/v2/typechain-types/ZRC20New.sol/ZRC20Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface ZRC20ErrorsInterface extends Interface {} + +export interface ZRC20Errors extends BaseContract { + connect(runner?: ContractRunner | null): ZRC20Errors; + waitForDeployment(): Promise; + + interface: ZRC20ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/ZRC20New.sol/ZRC20New.ts b/v2/typechain-types/ZRC20New.sol/ZRC20New.ts new file mode 100644 index 00000000..b81ffd19 --- /dev/null +++ b/v2/typechain-types/ZRC20New.sol/ZRC20New.ts @@ -0,0 +1,661 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface ZRC20NewInterface extends Interface { + getFunction( + nameOrSignature: + | "CHAIN_ID" + | "COIN_TYPE" + | "FUNGIBLE_MODULE_ADDRESS" + | "GAS_LIMIT" + | "GATEWAY_CONTRACT_ADDRESS" + | "PROTOCOL_FLAT_FEE" + | "SYSTEM_CONTRACT_ADDRESS" + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "decimals" + | "deposit" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "updateGasLimit" + | "updateProtocolFlatFee" + | "updateSystemContractAddress" + | "withdraw" + | "withdrawGasFee" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Approval" + | "Deposit" + | "Transfer" + | "UpdatedGasLimit" + | "UpdatedProtocolFlatFee" + | "UpdatedSystemContract" + | "Withdrawal" + ): EventFragment; + + encodeFunctionData(functionFragment: "CHAIN_ID", values?: undefined): string; + encodeFunctionData(functionFragment: "COIN_TYPE", values?: undefined): string; + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; + encodeFunctionData( + functionFragment: "GATEWAY_CONTRACT_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PROTOCOL_FLAT_FEE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "updateGasLimit", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "updateProtocolFlatFee", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "updateSystemContractAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "CHAIN_ID", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "COIN_TYPE", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "GATEWAY_CONTRACT_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PROTOCOL_FLAT_FEE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateGasLimit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateProtocolFlatFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateSystemContractAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [ + from: BytesLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGasLimitEvent { + export type InputTuple = [gasLimit: BigNumberish]; + export type OutputTuple = [gasLimit: bigint]; + export interface OutputObject { + gasLimit: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedProtocolFlatFeeEvent { + export type InputTuple = [protocolFlatFee: BigNumberish]; + export type OutputTuple = [protocolFlatFee: bigint]; + export interface OutputObject { + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedSystemContractEvent { + export type InputTuple = [systemContract: AddressLike]; + export type OutputTuple = [systemContract: string]; + export interface OutputObject { + systemContract: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [ + from: AddressLike, + to: BytesLike, + value: BigNumberish, + gasFee: BigNumberish, + protocolFlatFee: BigNumberish + ]; + export type OutputTuple = [ + from: string, + to: string, + value: bigint, + gasFee: bigint, + protocolFlatFee: bigint + ]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + gasFee: bigint; + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZRC20New extends BaseContract { + connect(runner?: ContractRunner | null): ZRC20New; + waitForDeployment(): Promise; + + interface: ZRC20NewInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + CHAIN_ID: TypedContractMethod<[], [bigint], "view">; + + COIN_TYPE: TypedContractMethod<[], [bigint], "view">; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; + + GATEWAY_CONTRACT_ADDRESS: TypedContractMethod<[], [string], "view">; + + PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + + SYSTEM_CONTRACT_ADDRESS: TypedContractMethod<[], [string], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + updateGasLimit: TypedContractMethod< + [gasLimit: BigNumberish], + [void], + "nonpayable" + >; + + updateProtocolFlatFee: TypedContractMethod< + [protocolFlatFee: BigNumberish], + [void], + "nonpayable" + >; + + updateSystemContractAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "CHAIN_ID" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "COIN_TYPE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "GAS_LIMIT" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "GATEWAY_CONTRACT_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PROTOCOL_FLAT_FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "SYSTEM_CONTRACT_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "updateGasLimit" + ): TypedContractMethod<[gasLimit: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateProtocolFlatFee" + ): TypedContractMethod<[protocolFlatFee: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateSystemContractAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "UpdatedGasLimit" + ): TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + getEvent( + key: "UpdatedProtocolFlatFee" + ): TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + getEvent( + key: "UpdatedSystemContract" + ): TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(bytes,address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "UpdatedGasLimit(uint256)": TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + UpdatedGasLimit: TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + + "UpdatedProtocolFlatFee(uint256)": TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + UpdatedProtocolFlatFee: TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + + "UpdatedSystemContract(address)": TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + UpdatedSystemContract: TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + + "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ZRC20New.sol/index.ts b/v2/typechain-types/ZRC20New.sol/index.ts new file mode 100644 index 00000000..ea6138df --- /dev/null +++ b/v2/typechain-types/ZRC20New.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ZRC20Errors } from "./ZRC20Errors"; +export type { ZRC20New } from "./ZRC20New"; diff --git a/v2/typechain-types/Zeta.non-eth.sol/ZetaErrors.ts b/v2/typechain-types/Zeta.non-eth.sol/ZetaErrors.ts new file mode 100644 index 00000000..5dfc1c08 --- /dev/null +++ b/v2/typechain-types/Zeta.non-eth.sol/ZetaErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface ZetaErrorsInterface extends Interface {} + +export interface ZetaErrors extends BaseContract { + connect(runner?: ContractRunner | null): ZetaErrors; + waitForDeployment(): Promise; + + interface: ZetaErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/Zeta.non-eth.sol/ZetaNonEth.ts b/v2/typechain-types/Zeta.non-eth.sol/ZetaNonEth.ts new file mode 100644 index 00000000..886cbd86 --- /dev/null +++ b/v2/typechain-types/Zeta.non-eth.sol/ZetaNonEth.ts @@ -0,0 +1,595 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface ZetaNonEthInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "burnFrom" + | "connectorAddress" + | "decimals" + | "mint" + | "name" + | "renounceTssAddressUpdater" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "tssAddress" + | "tssAddressUpdater" + | "updateTssAndConnectorAddresses" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Approval" + | "Burnt" + | "ConnectorAddressUpdated" + | "Minted" + | "TSSAddressUpdated" + | "TSSAddressUpdaterUpdated" + | "Transfer" + ): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "burnFrom", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "connectorAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceTssAddressUpdater", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "tssAddressUpdater", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "updateTssAndConnectorAddresses", + values: [AddressLike, AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "connectorAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceTssAddressUpdater", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "tssAddressUpdater", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateTssAndConnectorAddresses", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace BurntEvent { + export type InputTuple = [burnee: AddressLike, amount: BigNumberish]; + export type OutputTuple = [burnee: string, amount: bigint]; + export interface OutputObject { + burnee: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ConnectorAddressUpdatedEvent { + export type InputTuple = [ + callerAddress: AddressLike, + newConnectorAddress: AddressLike + ]; + export type OutputTuple = [ + callerAddress: string, + newConnectorAddress: string + ]; + export interface OutputObject { + callerAddress: string; + newConnectorAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace MintedEvent { + export type InputTuple = [ + mintee: AddressLike, + amount: BigNumberish, + internalSendHash: BytesLike + ]; + export type OutputTuple = [ + mintee: string, + amount: bigint, + internalSendHash: string + ]; + export interface OutputObject { + mintee: string; + amount: bigint; + internalSendHash: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TSSAddressUpdatedEvent { + export type InputTuple = [ + callerAddress: AddressLike, + newTssAddress: AddressLike + ]; + export type OutputTuple = [callerAddress: string, newTssAddress: string]; + export interface OutputObject { + callerAddress: string; + newTssAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TSSAddressUpdaterUpdatedEvent { + export type InputTuple = [ + callerAddress: AddressLike, + newTssUpdaterAddress: AddressLike + ]; + export type OutputTuple = [ + callerAddress: string, + newTssUpdaterAddress: string + ]; + export interface OutputObject { + callerAddress: string; + newTssUpdaterAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZetaNonEth extends BaseContract { + connect(runner?: ContractRunner | null): ZetaNonEth; + waitForDeployment(): Promise; + + interface: ZetaNonEthInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; + + burnFrom: TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + connectorAddress: TypedContractMethod<[], [string], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + mint: TypedContractMethod< + [mintee: AddressLike, value: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + renounceTssAddressUpdater: TypedContractMethod<[], [void], "nonpayable">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + tssAddressUpdater: TypedContractMethod<[], [string], "view">; + + updateTssAndConnectorAddresses: TypedContractMethod< + [tssAddress_: AddressLike, connectorAddress_: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "burnFrom" + ): TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "connectorAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [mintee: AddressLike, value: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceTssAddressUpdater" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "tssAddressUpdater" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "updateTssAndConnectorAddresses" + ): TypedContractMethod< + [tssAddress_: AddressLike, connectorAddress_: AddressLike], + [void], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Burnt" + ): TypedContractEvent< + BurntEvent.InputTuple, + BurntEvent.OutputTuple, + BurntEvent.OutputObject + >; + getEvent( + key: "ConnectorAddressUpdated" + ): TypedContractEvent< + ConnectorAddressUpdatedEvent.InputTuple, + ConnectorAddressUpdatedEvent.OutputTuple, + ConnectorAddressUpdatedEvent.OutputObject + >; + getEvent( + key: "Minted" + ): TypedContractEvent< + MintedEvent.InputTuple, + MintedEvent.OutputTuple, + MintedEvent.OutputObject + >; + getEvent( + key: "TSSAddressUpdated" + ): TypedContractEvent< + TSSAddressUpdatedEvent.InputTuple, + TSSAddressUpdatedEvent.OutputTuple, + TSSAddressUpdatedEvent.OutputObject + >; + getEvent( + key: "TSSAddressUpdaterUpdated" + ): TypedContractEvent< + TSSAddressUpdaterUpdatedEvent.InputTuple, + TSSAddressUpdaterUpdatedEvent.OutputTuple, + TSSAddressUpdaterUpdatedEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Burnt(address,uint256)": TypedContractEvent< + BurntEvent.InputTuple, + BurntEvent.OutputTuple, + BurntEvent.OutputObject + >; + Burnt: TypedContractEvent< + BurntEvent.InputTuple, + BurntEvent.OutputTuple, + BurntEvent.OutputObject + >; + + "ConnectorAddressUpdated(address,address)": TypedContractEvent< + ConnectorAddressUpdatedEvent.InputTuple, + ConnectorAddressUpdatedEvent.OutputTuple, + ConnectorAddressUpdatedEvent.OutputObject + >; + ConnectorAddressUpdated: TypedContractEvent< + ConnectorAddressUpdatedEvent.InputTuple, + ConnectorAddressUpdatedEvent.OutputTuple, + ConnectorAddressUpdatedEvent.OutputObject + >; + + "Minted(address,uint256,bytes32)": TypedContractEvent< + MintedEvent.InputTuple, + MintedEvent.OutputTuple, + MintedEvent.OutputObject + >; + Minted: TypedContractEvent< + MintedEvent.InputTuple, + MintedEvent.OutputTuple, + MintedEvent.OutputObject + >; + + "TSSAddressUpdated(address,address)": TypedContractEvent< + TSSAddressUpdatedEvent.InputTuple, + TSSAddressUpdatedEvent.OutputTuple, + TSSAddressUpdatedEvent.OutputObject + >; + TSSAddressUpdated: TypedContractEvent< + TSSAddressUpdatedEvent.InputTuple, + TSSAddressUpdatedEvent.OutputTuple, + TSSAddressUpdatedEvent.OutputObject + >; + + "TSSAddressUpdaterUpdated(address,address)": TypedContractEvent< + TSSAddressUpdaterUpdatedEvent.InputTuple, + TSSAddressUpdaterUpdatedEvent.OutputTuple, + TSSAddressUpdaterUpdatedEvent.OutputObject + >; + TSSAddressUpdaterUpdated: TypedContractEvent< + TSSAddressUpdaterUpdatedEvent.InputTuple, + TSSAddressUpdaterUpdatedEvent.OutputTuple, + TSSAddressUpdaterUpdatedEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/Zeta.non-eth.sol/ZetaNonEthInterface.ts b/v2/typechain-types/Zeta.non-eth.sol/ZetaNonEthInterface.ts new file mode 100644 index 00000000..9dc0435e --- /dev/null +++ b/v2/typechain-types/Zeta.non-eth.sol/ZetaNonEthInterface.ts @@ -0,0 +1,300 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface ZetaNonEthInterfaceInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "burnFrom" + | "mint" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "burnFrom", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZetaNonEthInterface extends BaseContract { + connect(runner?: ContractRunner | null): ZetaNonEthInterface; + waitForDeployment(): Promise; + + interface: ZetaNonEthInterfaceInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burnFrom: TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + mint: TypedContractMethod< + [mintee: AddressLike, value: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burnFrom" + ): TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [mintee: AddressLike, value: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/Zeta.non-eth.sol/index.ts b/v2/typechain-types/Zeta.non-eth.sol/index.ts new file mode 100644 index 00000000..37bc8bf0 --- /dev/null +++ b/v2/typechain-types/Zeta.non-eth.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ZetaErrors } from "./ZetaErrors"; +export type { ZetaNonEth } from "./ZetaNonEth"; +export type { ZetaNonEthInterface } from "./ZetaNonEthInterface"; diff --git a/v2/typechain-types/ZetaConnectorNative.ts b/v2/typechain-types/ZetaConnectorNative.ts new file mode 100644 index 00000000..157f1f57 --- /dev/null +++ b/v2/typechain-types/ZetaConnectorNative.ts @@ -0,0 +1,319 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ZetaConnectorNativeInterface extends Interface { + getFunction( + nameOrSignature: + | "gateway" + | "receiveTokens" + | "tssAddress" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Withdraw" | "WithdrawAndCall" | "WithdrawAndRevert" + ): EventFragment; + + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "receiveTokens", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndRevert", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "receiveTokens", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace WithdrawEvent { + export type InputTuple = [to: AddressLike, amount: BigNumberish]; + export type OutputTuple = [to: string, amount: bigint]; + export interface OutputObject { + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndCallEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndRevertEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZetaConnectorNative extends BaseContract { + connect(runner?: ContractRunner | null): ZetaConnectorNative; + waitForDeployment(): Promise; + + interface: ZetaConnectorNativeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + gateway: TypedContractMethod<[], [string], "view">; + + receiveTokens: TypedContractMethod< + [amount: BigNumberish], + [void], + "nonpayable" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + withdraw: TypedContractMethod< + [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + + withdrawAndRevert: TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "receiveTokens" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndRevert" + ): TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Withdraw" + ): TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + getEvent( + key: "WithdrawAndCall" + ): TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + getEvent( + key: "WithdrawAndRevert" + ): TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + + filters: { + "Withdraw(address,uint256)": TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + Withdraw: TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + + "WithdrawAndCall(address,uint256,bytes)": TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + WithdrawAndCall: TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + + "WithdrawAndRevert(address,uint256,bytes)": TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + WithdrawAndRevert: TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ZetaConnectorNewBase.ts b/v2/typechain-types/ZetaConnectorNewBase.ts new file mode 100644 index 00000000..12672d35 --- /dev/null +++ b/v2/typechain-types/ZetaConnectorNewBase.ts @@ -0,0 +1,319 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ZetaConnectorNewBaseInterface extends Interface { + getFunction( + nameOrSignature: + | "gateway" + | "receiveTokens" + | "tssAddress" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Withdraw" | "WithdrawAndCall" | "WithdrawAndRevert" + ): EventFragment; + + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "receiveTokens", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndRevert", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "receiveTokens", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace WithdrawEvent { + export type InputTuple = [to: AddressLike, amount: BigNumberish]; + export type OutputTuple = [to: string, amount: bigint]; + export interface OutputObject { + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndCallEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndRevertEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZetaConnectorNewBase extends BaseContract { + connect(runner?: ContractRunner | null): ZetaConnectorNewBase; + waitForDeployment(): Promise; + + interface: ZetaConnectorNewBaseInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + gateway: TypedContractMethod<[], [string], "view">; + + receiveTokens: TypedContractMethod< + [amount: BigNumberish], + [void], + "nonpayable" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + withdraw: TypedContractMethod< + [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + + withdrawAndRevert: TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "receiveTokens" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndRevert" + ): TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Withdraw" + ): TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + getEvent( + key: "WithdrawAndCall" + ): TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + getEvent( + key: "WithdrawAndRevert" + ): TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + + filters: { + "Withdraw(address,uint256)": TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + Withdraw: TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + + "WithdrawAndCall(address,uint256,bytes)": TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + WithdrawAndCall: TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + + "WithdrawAndRevert(address,uint256,bytes)": TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + WithdrawAndRevert: TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/ZetaConnectorNonNative.ts b/v2/typechain-types/ZetaConnectorNonNative.ts new file mode 100644 index 00000000..6182ceb9 --- /dev/null +++ b/v2/typechain-types/ZetaConnectorNonNative.ts @@ -0,0 +1,379 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ZetaConnectorNonNativeInterface extends Interface { + getFunction( + nameOrSignature: + | "gateway" + | "maxSupply" + | "receiveTokens" + | "setMaxSupply" + | "tssAddress" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "MaxSupplyUpdated" + | "Withdraw" + | "WithdrawAndCall" + | "WithdrawAndRevert" + ): EventFragment; + + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData(functionFragment: "maxSupply", values?: undefined): string; + encodeFunctionData( + functionFragment: "receiveTokens", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setMaxSupply", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndRevert", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "maxSupply", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "receiveTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setMaxSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace MaxSupplyUpdatedEvent { + export type InputTuple = [maxSupply: BigNumberish]; + export type OutputTuple = [maxSupply: bigint]; + export interface OutputObject { + maxSupply: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawEvent { + export type InputTuple = [to: AddressLike, amount: BigNumberish]; + export type OutputTuple = [to: string, amount: bigint]; + export interface OutputObject { + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndCallEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawAndRevertEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZetaConnectorNonNative extends BaseContract { + connect(runner?: ContractRunner | null): ZetaConnectorNonNative; + waitForDeployment(): Promise; + + interface: ZetaConnectorNonNativeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + gateway: TypedContractMethod<[], [string], "view">; + + maxSupply: TypedContractMethod<[], [bigint], "view">; + + receiveTokens: TypedContractMethod< + [amount: BigNumberish], + [void], + "nonpayable" + >; + + setMaxSupply: TypedContractMethod< + [_maxSupply: BigNumberish], + [void], + "nonpayable" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + withdraw: TypedContractMethod< + [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + + withdrawAndRevert: TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "maxSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "receiveTokens" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "setMaxSupply" + ): TypedContractMethod<[_maxSupply: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndRevert" + ): TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "MaxSupplyUpdated" + ): TypedContractEvent< + MaxSupplyUpdatedEvent.InputTuple, + MaxSupplyUpdatedEvent.OutputTuple, + MaxSupplyUpdatedEvent.OutputObject + >; + getEvent( + key: "Withdraw" + ): TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + getEvent( + key: "WithdrawAndCall" + ): TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + getEvent( + key: "WithdrawAndRevert" + ): TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + + filters: { + "MaxSupplyUpdated(uint256)": TypedContractEvent< + MaxSupplyUpdatedEvent.InputTuple, + MaxSupplyUpdatedEvent.OutputTuple, + MaxSupplyUpdatedEvent.OutputObject + >; + MaxSupplyUpdated: TypedContractEvent< + MaxSupplyUpdatedEvent.InputTuple, + MaxSupplyUpdatedEvent.OutputTuple, + MaxSupplyUpdatedEvent.OutputObject + >; + + "Withdraw(address,uint256)": TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + Withdraw: TypedContractEvent< + WithdrawEvent.InputTuple, + WithdrawEvent.OutputTuple, + WithdrawEvent.OutputObject + >; + + "WithdrawAndCall(address,uint256,bytes)": TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + WithdrawAndCall: TypedContractEvent< + WithdrawAndCallEvent.InputTuple, + WithdrawAndCallEvent.OutputTuple, + WithdrawAndCallEvent.OutputObject + >; + + "WithdrawAndRevert(address,uint256,bytes)": TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + WithdrawAndRevert: TypedContractEvent< + WithdrawAndRevertEvent.InputTuple, + WithdrawAndRevertEvent.OutputTuple, + WithdrawAndRevertEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/common.ts b/v2/typechain-types/common.ts new file mode 100644 index 00000000..56b5f21e --- /dev/null +++ b/v2/typechain-types/common.ts @@ -0,0 +1,131 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + FunctionFragment, + Typed, + EventFragment, + ContractTransaction, + ContractTransactionResponse, + DeferredTopicFilter, + EventLog, + TransactionRequest, + LogDescription, +} from "ethers"; + +export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> + extends DeferredTopicFilter {} + +export interface TypedContractEvent< + InputTuple extends Array = any, + OutputTuple extends Array = any, + OutputObject = any +> { + (...args: Partial): TypedDeferredTopicFilter< + TypedContractEvent + >; + name: string; + fragment: EventFragment; + getFragment(...args: Partial): EventFragment; +} + +type __TypechainAOutputTuple = T extends TypedContractEvent< + infer _U, + infer W +> + ? W + : never; +type __TypechainOutputObject = T extends TypedContractEvent< + infer _U, + infer _W, + infer V +> + ? V + : never; + +export interface TypedEventLog + extends Omit { + args: __TypechainAOutputTuple & __TypechainOutputObject; +} + +export interface TypedLogDescription + extends Omit { + args: __TypechainAOutputTuple & __TypechainOutputObject; +} + +export type TypedListener = ( + ...listenerArg: [ + ...__TypechainAOutputTuple, + TypedEventLog, + ...undefined[] + ] +) => void; + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; + +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; + +export type StateMutability = "nonpayable" | "payable" | "view"; + +export type BaseOverrides = Omit; +export type NonPayableOverrides = Omit< + BaseOverrides, + "value" | "blockTag" | "enableCcipRead" +>; +export type PayableOverrides = Omit< + BaseOverrides, + "blockTag" | "enableCcipRead" +>; +export type ViewOverrides = Omit; +export type Overrides = S extends "nonpayable" + ? NonPayableOverrides + : S extends "payable" + ? PayableOverrides + : ViewOverrides; + +export type PostfixOverrides, S extends StateMutability> = + | A + | [...A, Overrides]; +export type ContractMethodArgs< + A extends Array, + S extends StateMutability +> = PostfixOverrides<{ [I in keyof A]-?: A[I] | Typed }, S>; + +export type DefaultReturnType = R extends Array ? R[0] : R; + +// export interface ContractMethod = Array, R = any, D extends R | ContractTransactionResponse = R | ContractTransactionResponse> { +export interface TypedContractMethod< + A extends Array = Array, + R = any, + S extends StateMutability = "payable" +> { + (...args: ContractMethodArgs): S extends "view" + ? Promise> + : Promise; + + name: string; + + fragment: FunctionFragment; + + getFragment(...args: ContractMethodArgs): FunctionFragment; + + populateTransaction( + ...args: ContractMethodArgs + ): Promise; + staticCall( + ...args: ContractMethodArgs + ): Promise>; + send(...args: ContractMethodArgs): Promise; + estimateGas(...args: ContractMethodArgs): Promise; + staticCallResult(...args: ContractMethodArgs): Promise; +} diff --git a/v2/typechain-types/draft-IERC1822.sol/IERC1822Proxiable.ts b/v2/typechain-types/draft-IERC1822.sol/IERC1822Proxiable.ts new file mode 100644 index 00000000..2c1d4207 --- /dev/null +++ b/v2/typechain-types/draft-IERC1822.sol/IERC1822Proxiable.ts @@ -0,0 +1,90 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface IERC1822ProxiableInterface extends Interface { + getFunction(nameOrSignature: "proxiableUUID"): FunctionFragment; + + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; +} + +export interface IERC1822Proxiable extends BaseContract { + connect(runner?: ContractRunner | null): IERC1822Proxiable; + waitForDeployment(): Promise; + + interface: IERC1822ProxiableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/v2/typechain-types/draft-IERC1822.sol/index.ts b/v2/typechain-types/draft-IERC1822.sol/index.ts new file mode 100644 index 00000000..daec45bb --- /dev/null +++ b/v2/typechain-types/draft-IERC1822.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC1822Proxiable } from "./IERC1822Proxiable"; diff --git a/v2/typechain-types/draft-IERC6093.sol/IERC1155Errors.ts b/v2/typechain-types/draft-IERC6093.sol/IERC1155Errors.ts new file mode 100644 index 00000000..7d86997b --- /dev/null +++ b/v2/typechain-types/draft-IERC6093.sol/IERC1155Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface IERC1155ErrorsInterface extends Interface {} + +export interface IERC1155Errors extends BaseContract { + connect(runner?: ContractRunner | null): IERC1155Errors; + waitForDeployment(): Promise; + + interface: IERC1155ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/draft-IERC6093.sol/IERC20Errors.ts b/v2/typechain-types/draft-IERC6093.sol/IERC20Errors.ts new file mode 100644 index 00000000..6a2e0510 --- /dev/null +++ b/v2/typechain-types/draft-IERC6093.sol/IERC20Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface IERC20ErrorsInterface extends Interface {} + +export interface IERC20Errors extends BaseContract { + connect(runner?: ContractRunner | null): IERC20Errors; + waitForDeployment(): Promise; + + interface: IERC20ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/draft-IERC6093.sol/IERC721Errors.ts b/v2/typechain-types/draft-IERC6093.sol/IERC721Errors.ts new file mode 100644 index 00000000..d456fa2f --- /dev/null +++ b/v2/typechain-types/draft-IERC6093.sol/IERC721Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface IERC721ErrorsInterface extends Interface {} + +export interface IERC721Errors extends BaseContract { + connect(runner?: ContractRunner | null): IERC721Errors; + waitForDeployment(): Promise; + + interface: IERC721ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/draft-IERC6093.sol/index.ts b/v2/typechain-types/draft-IERC6093.sol/index.ts new file mode 100644 index 00000000..9415fdf5 --- /dev/null +++ b/v2/typechain-types/draft-IERC6093.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC1155Errors } from "./IERC1155Errors"; +export type { IERC20Errors } from "./IERC20Errors"; +export type { IERC721Errors } from "./IERC721Errors"; diff --git a/v2/typechain-types/factories/Address__factory.ts b/v2/typechain-types/factories/Address__factory.ts new file mode 100644 index 00000000..0c17e5c9 --- /dev/null +++ b/v2/typechain-types/factories/Address__factory.ts @@ -0,0 +1,88 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { Address, AddressInterface } from "../Address"; + +const _abi = [ + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122051aee3d3cbb51dd227047d3a402e288a90aab6ebded8bce84a18c9d83c6fa8b264736f6c634300081a0033"; + +type AddressConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: AddressConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Address__factory extends ContractFactory { + constructor(...args: AddressConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Address & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Address__factory { + return super.connect(runner) as Address__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): AddressInterface { + return new Interface(_abi) as AddressInterface; + } + static connect(address: string, runner?: ContractRunner | null): Address { + return new Contract(address, _abi, runner) as unknown as Address; + } +} diff --git a/v2/typechain-types/factories/BeaconProxy__factory.ts b/v2/typechain-types/factories/BeaconProxy__factory.ts new file mode 100644 index 00000000..09e0f9de --- /dev/null +++ b/v2/typechain-types/factories/BeaconProxy__factory.ts @@ -0,0 +1,149 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BytesLike, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { PayableOverrides } from "../common"; +import type { BeaconProxy, BeaconProxyInterface } from "../BeaconProxy"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "beacon", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "payable", + }, + { + type: "fallback", + stateMutability: "payable", + }, + { + type: "event", + name: "BeaconUpgraded", + inputs: [ + { + name: "beacon", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidBeacon", + inputs: [ + { + name: "beacon", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60a06040526040516105eb3803806105eb83398101604081905261002291610387565b61002c828261003e565b506001600160a01b0316608052610484565b610047826100fe565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a28051156100f2576100ed826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e7919061044d565b82610211565b505050565b6100fa610288565b5050565b806001600160a01b03163b60000361013957604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b81529051600092841691635c60da1b9160048083019260209291908290030181865afa1580156101b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d9919061044d565b9050806001600160a01b03163b6000036100fa57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610130565b6060600080846001600160a01b03168460405161022e9190610468565b600060405180830381855af49150503d8060008114610269576040519150601f19603f3d011682016040523d82523d6000602084013e61026e565b606091505b50909250905061027f8583836102a9565b95945050505050565b34156102a75760405163b398979f60e01b815260040160405180910390fd5b565b6060826102be576102b982610308565b610301565b81511580156102d557506001600160a01b0384163b155b156102fe57604051639996b31560e01b81526001600160a01b0385166004820152602401610130565b50805b9392505050565b8051156103185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80516001600160a01b038116811461034857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561037e578181015183820152602001610366565b50506000910152565b6000806040838503121561039a57600080fd5b6103a383610331565b60208401519092506001600160401b038111156103bf57600080fd5b8301601f810185136103d057600080fd5b80516001600160401b038111156103e9576103e961034d565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104175761041761034d565b60405281815282820160200187101561042f57600080fd5b610440826020830160208601610363565b8093505050509250929050565b60006020828403121561045f57600080fd5b61030182610331565b6000825161047a818460208701610363565b9190910192915050565b60805161014d61049e60003960006024015261014d6000f3fe608060405261000c61000e565b005b61001e610019610020565b6100b6565b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b191906100da565b905090565b3660008037600080366000845af43d6000803e8080156100d5573d6000f35b3d6000fd5b6000602082840312156100ec57600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461011057600080fd5b939250505056fea2646970667358221220fbef562e23099f6b70d42efa68ad4a1991c21a30ee88b7ae19894071f581e3e364736f6c634300081a0033"; + +type BeaconProxyConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: BeaconProxyConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class BeaconProxy__factory extends ContractFactory { + constructor(...args: BeaconProxyConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + beacon: AddressLike, + data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(beacon, data, overrides || {}); + } + override deploy( + beacon: AddressLike, + data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ) { + return super.deploy(beacon, data, overrides || {}) as Promise< + BeaconProxy & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): BeaconProxy__factory { + return super.connect(runner) as BeaconProxy__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BeaconProxyInterface { + return new Interface(_abi) as BeaconProxyInterface; + } + static connect(address: string, runner?: ContractRunner | null): BeaconProxy { + return new Contract(address, _abi, runner) as unknown as BeaconProxy; + } +} diff --git a/v2/typechain-types/factories/ContextUpgradeable__factory.ts b/v2/typechain-types/factories/ContextUpgradeable__factory.ts new file mode 100644 index 00000000..238c5ff8 --- /dev/null +++ b/v2/typechain-types/factories/ContextUpgradeable__factory.ts @@ -0,0 +1,48 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ContextUpgradeable, + ContextUpgradeableInterface, +} from "../ContextUpgradeable"; + +const _abi = [ + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, +] as const; + +export class ContextUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): ContextUpgradeableInterface { + return new Interface(_abi) as ContextUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ContextUpgradeable { + return new Contract(address, _abi, runner) as unknown as ContextUpgradeable; + } +} diff --git a/v2/typechain-types/factories/ERC1967Proxy__factory.ts b/v2/typechain-types/factories/ERC1967Proxy__factory.ts new file mode 100644 index 00000000..d5897eb0 --- /dev/null +++ b/v2/typechain-types/factories/ERC1967Proxy__factory.ts @@ -0,0 +1,141 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BytesLike, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { PayableOverrides } from "../common"; +import type { ERC1967Proxy, ERC1967ProxyInterface } from "../ERC1967Proxy"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + { + name: "_data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "payable", + }, + { + type: "fallback", + stateMutability: "payable", + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, +] as const; + +const _bytecode = + "0x608060405260405161041d38038061041d83398101604081905261002291610268565b61002c8282610033565b5050610358565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b919061033c565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b038111156102ae57600080fd5b8301601f810185136102bf57600080fd5b80516001600160401b038111156102d8576102d861022e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103065761030661022e565b60405281815282820160200187101561031e57600080fd5b61032f826020830160208601610244565b8093505050509250929050565b6000825161034e818460208701610244565b9190910192915050565b60b7806103666000396000f3fe6080604052600a600c565b005b60186014601a565b605e565b565b600060597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e808015607c573d6000f35b3d6000fdfea2646970667358221220266fcff3f047fd27b99bc2ae00f2594c9dc6c8903cdba2daf7cf2623c610c93f64736f6c634300081a0033"; + +type ERC1967ProxyConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC1967ProxyConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC1967Proxy__factory extends ContractFactory { + constructor(...args: ERC1967ProxyConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + implementation: AddressLike, + _data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(implementation, _data, overrides || {}); + } + override deploy( + implementation: AddressLike, + _data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ) { + return super.deploy(implementation, _data, overrides || {}) as Promise< + ERC1967Proxy & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC1967Proxy__factory { + return super.connect(runner) as ERC1967Proxy__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC1967ProxyInterface { + return new Interface(_abi) as ERC1967ProxyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC1967Proxy { + return new Contract(address, _abi, runner) as unknown as ERC1967Proxy; + } +} diff --git a/v2/typechain-types/factories/ERC1967Utils__factory.ts b/v2/typechain-types/factories/ERC1967Utils__factory.ts new file mode 100644 index 00000000..fb912e69 --- /dev/null +++ b/v2/typechain-types/factories/ERC1967Utils__factory.ts @@ -0,0 +1,147 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { ERC1967Utils, ERC1967UtilsInterface } from "../ERC1967Utils"; + +const _abi = [ + { + type: "event", + name: "AdminChanged", + inputs: [ + { + name: "previousAdmin", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "newAdmin", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "BeaconUpgraded", + inputs: [ + { + name: "beacon", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "ERC1967InvalidAdmin", + inputs: [ + { + name: "admin", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidBeacon", + inputs: [ + { + name: "beacon", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122001eb0535328502a373828dff3af9c93d4979f247a97487a5d4c2b93bcd54364f64736f6c634300081a0033"; + +type ERC1967UtilsConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC1967UtilsConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC1967Utils__factory extends ContractFactory { + constructor(...args: ERC1967UtilsConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + ERC1967Utils & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC1967Utils__factory { + return super.connect(runner) as ERC1967Utils__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC1967UtilsInterface { + return new Interface(_abi) as ERC1967UtilsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC1967Utils { + return new Contract(address, _abi, runner) as unknown as ERC1967Utils; + } +} diff --git a/v2/typechain-types/factories/ERC20/IERC20__factory.ts b/v2/typechain-types/factories/ERC20/IERC20__factory.ts new file mode 100644 index 00000000..17a24cab --- /dev/null +++ b/v2/typechain-types/factories/ERC20/IERC20__factory.ts @@ -0,0 +1,202 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IERC20, IERC20Interface } from "../../ERC20/IERC20"; + +const _abi = [ + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class IERC20__factory { + static readonly abi = _abi; + static createInterface(): IERC20Interface { + return new Interface(_abi) as IERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC20 { + return new Contract(address, _abi, runner) as unknown as IERC20; + } +} diff --git a/v2/typechain-types/factories/ERC20/index.ts b/v2/typechain-types/factories/ERC20/index.ts new file mode 100644 index 00000000..2071ce5a --- /dev/null +++ b/v2/typechain-types/factories/ERC20/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC20__factory } from "./IERC20__factory"; diff --git a/v2/typechain-types/factories/ERC20Burnable__factory.ts b/v2/typechain-types/factories/ERC20Burnable__factory.ts new file mode 100644 index 00000000..9f930aa4 --- /dev/null +++ b/v2/typechain-types/factories/ERC20Burnable__factory.ts @@ -0,0 +1,361 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { ERC20Burnable, ERC20BurnableInterface } from "../ERC20Burnable"; + +const _abi = [ + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "burn", + inputs: [ + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "burnFrom", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "ERC20InsufficientAllowance", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "allowance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSpender", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + }, +] as const; + +export class ERC20Burnable__factory { + static readonly abi = _abi; + static createInterface(): ERC20BurnableInterface { + return new Interface(_abi) as ERC20BurnableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC20Burnable { + return new Contract(address, _abi, runner) as unknown as ERC20Burnable; + } +} diff --git a/v2/typechain-types/factories/ERC20CustodyNewEchidnaTest__factory.ts b/v2/typechain-types/factories/ERC20CustodyNewEchidnaTest__factory.ts new file mode 100644 index 00000000..5f358801 --- /dev/null +++ b/v2/typechain-types/factories/ERC20CustodyNewEchidnaTest__factory.ts @@ -0,0 +1,372 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { + ERC20CustodyNewEchidnaTest, + ERC20CustodyNewEchidnaTestInterface, +} from "../ERC20CustodyNewEchidnaTest"; + +const _abi = [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "echidnaCaller", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gateway", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IGatewayEVM", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "testERC20", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract TestERC20", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "testWithdrawAndCall", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndCall", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndRevert", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndCall", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndRevert", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +const _bytecode = + "0x600480546001600160a01b03191633908117909155600e60809081526d11d85d195dd85e5155934b9cdbdb60921b60a05260e49190915261012361010452604460c090815261012460405260e080516001600160e01b0390811663485cc95560e01b179091526100719291906101f316565b600580546001600160a01b03929092166001600160a01b03199283168117909155600680549092161790553480156100a857600080fd5b5060065460045460016000556001600160a01b0391821691168115806100d557506001600160a01b038116155b156100f35760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b0319918216179091556002805492909316911617905560405161012b9061370b565b60408082526004908201819052631d195cdd60e21b606083015260806020830181905282015263151154d560e21b60a082015260c001604051809103906000f08015801561017d573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392831617905560065460405163ae7a3a6f60e01b815230600482015291169063ae7a3a6f90602401600060405180830381600087803b1580156101d657600080fd5b505af11580156101ea573d6000803e3d6000fd5b5050505061478c565b60006101fd613718565b610208848483610212565b9150505b92915050565b60008061021f858461028e565b90506102836040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f7879000000815250828660405160200161026d929190613821565b60408051601f198184030181529190528561029a565b9150505b9392505050565b600061028783836102ce565b60c081015151600090156102c4576102bd84848460c001516102ef60201b60201c565b9050610287565b6102bd8484610468565b60006102da8383610535565b6102878383602001518461029a60201b60201c565b6000806102fa610545565b9050600061030886836105df565b905060006103258260600151836020015185610a0260201b60201c565b9050600061033583838989610bb7565b9050600061034282611833565b602081015181519192509060030b1561039b5789826040015160405160200161036c929190613845565b60408051601f198184030181529082905262461bcd60e51b8252610392916004016138ab565b60405180910390fd5b60006103e46040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a2000000000000000000000008152508360016119ca60201b60201c565b60405163c6ce059d60e01b81529091506000805160206162118339815191529063c6ce059d906104189084906004016138ab565b602060405180830381865afa158015610435573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045991906138be565b9b9a5050505050505050505050565b604051638d1cc92560e01b8152600090819060008051602061621183398151915290638d1cc9259061049e9087906004016138ab565b600060405180830381865afa1580156104bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104e391908101906139b3565b9050600061051282856040516020016104fd9291906139e7565b60408051601f19818403018152919052611b6a565b90506001600160a01b03811661020857848460405160200161036c929190613a16565b61054182826000611b7d565b5050565b60408051808201825260038152621bdd5d60ea1b602082015290516334515cdb60e21b815260609160008051602061621183398151915291829063d145736c90610593908490600401613aa5565b600060405180830381865afa1580156105b0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105d89190810190613ada565b9250505090565b6106116040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b600060008051602061621183398151915290506106566040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b61065f85611c57565b6020820152600061066f86611eac565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106d99190810190613ada565b868385602001516040516020016106f39493929190613b22565b60408051601f19818403018152908290526360f9bb1160e01b825291506000906001600160a01b038616906360f9bb11906107329085906004016138ab565b600060405180830381865afa15801561074f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107779190810190613ada565b604051636da11afb60e11b81529091506001600160a01b0386169063db4235f6906107a6908490600401613bba565b602060405180830381865afa1580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e79190613bf3565b6107fc578160405160200161036c9190613c15565b6040516309389f5960e31b81526001600160a01b038616906349c4fac890610828908490600401613c8c565b600060405180830381865afa158015610845573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261086d9190810190613ada565b8452604051636da11afb60e11b81526001600160a01b0386169063db4235f69061089b908490600401613cd2565b602060405180830381865afa1580156108b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dc9190613bf3565b15610958576040516309389f5960e31b81526001600160a01b038616906349c4fac89061090d908490600401613cd2565b600060405180830381865afa15801561092a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109529190810190613ada565b60408501525b846001600160a01b03166349c4fac882866000015160405160200161097d9190613d13565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016109a9929190613d6e565b600060405180830381865afa1580156109c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109ee9190810190613ada565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b6060815260200190600190039081610a1e579050509050604051806040016040528060048152602001630677265760e41b81525081600081518110610a6557610a65613d93565b6020026020010181905250604051806040016040528060038152602001620b5c9b60ea1b81525081600181518110610a9f57610a9f613d93565b602002602001018190525084604051602001610abb9190613da9565b60405160208183030381529060405281600281518110610add57610add613d93565b602002602001018190525082604051602001610af99190613dde565b60405160208183030381529060405281600381518110610b1b57610b1b613d93565b60209081029190910101526000610b3182611833565b9050600081602001519050610b98610b6b60405180604001604052806005815260200164173539b7b760d91b81525061202f60201b60201c565b6040805180820182526000808252602091820152815180830190925284518252808501908201529061205c565b610bad578560405160200161036c9190613e0d565b9695505050505050565b60a08101516040805180820182526000808252602091820152815180830190925282518083529281019101526060906000805160206162118339815191529015610c01565b511590565b610d1d57826020015115610c915760405162461bcd60e51b8152602060048201526058602482015260008051602061623183398151915260448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a401610392565b8260c0015115610d1d5760405162461bcd60e51b8152602060048201526053602482015260008051602061623183398151915260448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a401610392565b6040805160ff8082526120008201909252600091816020015b6060815260200190600190039081610d365790505090506000604051806040016040528060038152602001620dce0f60eb1b815250828280610d7790613ea2565b935060ff1681518110610d8c57610d8c613d93565b60200260200101819052506040518060400160405280600d81526020016c302e302e312d616c7068612e3760981b815250604051602001610dcd9190613ec1565b604051602081830303815290604052828280610de890613ea2565b935060ff1681518110610dfd57610dfd613d93565b6020026020010181905250604051806040016040528060068152602001656465706c6f7960d01b815250828280610e3390613ea2565b935060ff1681518110610e4857610e48613d93565b60200260200101819052506040518060400160405280600e81526020016d2d2d636f6e74726163744e616d6560901b815250828280610e8690613ea2565b935060ff1681518110610e9b57610e9b613d93565b60200260200101819052508760200151828280610eb790613ea2565b935060ff1681518110610ecc57610ecc613d93565b60200260200101819052506040518060400160405280600e81526020016d05a5ac6dedce8e4c2c6e8a0c2e8d60931b815250828280610f0a90613ea2565b935060ff1681518110610f1f57610f1f613d93565b602090810291909101015287518282610f3781613ea2565b935060ff1681518110610f4c57610f4c613d93565b6020026020010181905250604051806040016040528060098152602001680b4b58da185a5b925960ba1b815250828280610f8590613ea2565b935060ff1681518110610f9a57610f9a613d93565b6020908102919091010152610fae466120bd565b8282610fb981613ea2565b935060ff1681518110610fce57610fce613d93565b60200260200101819052506040518060400160405280600f81526020016e2d2d6275696c64496e666f46696c6560881b81525082828061100d90613ea2565b935060ff168151811061102257611022613d93565b60200260200101819052508682828061103a90613ea2565b935060ff168151811061104f5761104f613d93565b602090810291909101015285511561115d5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f64650000000000000000000000602082015282826110a081613ea2565b935060ff16815181106110b5576110b5613d93565b60209081029190910101526040516371aad10d60e01b81526001600160a01b038416906371aad10d906110ec9089906004016138ab565b600060405180830381865afa158015611109573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111319190810190613ada565b828261113c81613ea2565b935060ff168151811061115157611151613d93565b60200260200101819052505b84602001511561120a576040805180820190915260128152712d2d766572696679536f75726365436f646560701b6020820152828261119b81613ea2565b935060ff16815181106111b0576111b0613d93565b60200260200101819052506040518060400160405280600581526020016466616c736560d81b8152508282806111e590613ea2565b935060ff16815181106111fa576111fa613d93565b6020026020010181905250611371565b611220610bfc8660a0015161202f60201b60201c565b6112a35760408051808201909152600d81526c2d2d6c6963656e73655479706560981b6020820152828261125381613ea2565b935060ff168151811061126857611268613d93565b60200260200101819052508460a001516040516020016112889190613da9565b6040516020818303038152906040528282806111e590613ea2565b8460c001511580156112c857506112c6610bfc896040015161202f60201b60201c565b155b156113715760408051808201909152600d81526c2d2d6c6963656e73655479706560981b602082015282826112fc81613ea2565b935060ff168151811061131157611311613d93565b60209081029190910101526113258861214f565b6040516020016113359190613da9565b60405160208183030381529060405282828061135090613ea2565b935060ff168151811061136557611365613d93565b60200260200101819052505b611387610bfc866040015161202f60201b60201c565b61140a5760408051808201909152600b81526a0b4b5c995b185e595c925960aa1b602082015282826113b881613ea2565b935060ff16815181106113cd576113cd613d93565b602002602001018190525084604001518282806113e990613ea2565b935060ff16815181106113fe576113fe613d93565b60200260200101819052505b6060850151156114fb576040805180820190915260068152650b4b5cd85b1d60d21b6020820152828261143c81613ea2565b935060ff168151811061145157611451613d93565b60209081029190910101526060850151604051631623433d60e31b815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa1580156114a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114cf9190810190613ada565b82826114da81613ea2565b935060ff16815181106114ef576114ef613d93565b60200260200101819052505b60e0850151511561158d5760408051808201909152600a8152690b4b59d85cd31a5b5a5d60b21b6020820152828261153281613ea2565b935060ff168151811061154757611547613d93565b602090810291909101015260e085015151611561906120bd565b828261156c81613ea2565b935060ff168151811061158157611581613d93565b60200260200101819052505b60e0850151602001511561162a5760408051808201909152600a8152692d2d676173507269636560b01b602082015282826115c781613ea2565b935060ff16815181106115dc576115dc613d93565b60200260200101819052506115fe8560e00151602001516120bd60201b60201c565b828261160981613ea2565b935060ff168151811061161e5761161e613d93565b60200260200101819052505b60e085015160400151156116cb5760408051808201909152600e81526d2d2d6d617846656550657247617360901b6020820152828261166881613ea2565b935060ff168151811061167d5761167d613d93565b602002602001018190525061169f8560e00151604001516120bd60201b60201c565b82826116aa81613ea2565b935060ff16815181106116bf576116bf613d93565b60200260200101819052505b60e0850151606001511561177b5760408051808201909152601681527f2d2d6d61785072696f72697479466565506572476173000000000000000000006020820152828261171881613ea2565b935060ff168151811061172d5761172d613d93565b602002602001018190525061174f8560e00151606001516120bd60201b60201c565b828261175a81613ea2565b935060ff168151811061176f5761176f613d93565b60200260200101819052505b60008160ff166001600160401b03811115611798576117986138e7565b6040519080825280602002602001820160405280156117cb57816020015b60608152602001906001900390816117b65790505b50905060005b8260ff168160ff16101561182457838160ff16815181106117f4576117f4613d93565b6020026020010151828260ff168151811061181157611811613d93565b60209081029190910101526001016117d1565b5093505050505b949350505050565b61185a6040518060600160405280600060030b815260200160608152602001606081525090565b6040805180820182526004808252630c4c2e6d60e31b602083015291516334515cdb60e21b815260008051602061621183398151915292600091849163d145736c916118a891869101613f18565b600060405180830381865afa1580156118c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118ed9190810190613ada565b905060006118fb8683612805565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b815260040161192b9190613f5f565b6000604051808303816000875af115801561194a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119729190810190613fc4565b805190915060030b1580159061198b5750602081015151155b801561199a5750604081015151155b15610bad57816000815181106119b2576119b2613d93565b602002602001015160405160200161036c9190614077565b606060006119ff8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528651825280870190820152909150611a369082905b9061293f565b15611b33576000611ab382611aad81611aa7611a798a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90612966565b906129c3565b9050611ae7611ae0604051806040016040528060018152602001600560f91b81525061202f60201b60201c565b829061293f565b15611b2157611b1e611b17604051806040016040528060018152602001600560f91b81525061202f60201b60201c565b8290612a48565b90505b611b2a81612a6e565b92505050610287565b8215611b4c57848460405160200161036c929190614247565b5050604080516020810190915260008152610287565b509392505050565b6000808251602084016000f09392505050565b8160a0015115611b8c57505050565b6000611b99848484612ad3565b90506000611ba682611833565b602081015181519192509060030b158015611c195750611c19611bed604051806040016040528060078152602001665355434345535360c81b81525061202f60201b60201c565b604080518082018252600080825260209182015281518083019092528451825280850190820152611a30565b15611c2657505050505050565b60408201515115611c4657816040015160405160200161036c91906142c2565b8060405160200161036c919061430c565b60606000611c8c8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050611cc3611cbc604051806040016040528060048152602001630b9cdbdb60e21b81525061202f60201b60201c565b829061205c565b15611d0557610287611d00611cf9604051806040016040528060048152602001630b9cdbdb60e21b81525061202f60201b60201c565b8390612fe6565b612a6e565b611d37611d30604051806040016040528060018152602001601d60f91b81525061202f60201b60201c565b8290613070565b600103611d9f57611d69611b17604051806040016040528060018152602001601d60f91b81525061202f60201b60201c565b50610287611d00611d98604051806040016040528060018152602001601d60f91b81525061202f60201b60201c565b8390612a48565b611dce611cbc60405180604001604052806005815260200164173539b7b760d91b81525061202f60201b60201c565b15611e9b576000611e0682611e01604051806040016040528060018152602001602f60f81b81525061202f60201b60201c565b613105565b905060008160018351611e19919061435c565b81518110611e2957611e29613d93565b60200260200101519050611e92611d00611e6560405180604001604052806005815260200164173539b7b760d91b81525061202f60201b60201c565b60408051808201825260008082526020918201528151808301909252855182528086019082015290612fe6565b95945050505050565b8260405160200161036c919061436f565b60606000611ee18360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050611f11611cbc604051806040016040528060048152602001630b9cdbdb60e21b81525061202f60201b60201c565b15611f1f5761028781612a6e565b611f4a611d30604051806040016040528060018152602001601d60f91b81525061202f60201b60201c565b600103611f7f57610287611d00611d98604051806040016040528060018152602001601d60f91b81525061202f60201b60201c565b611fae611cbc60405180604001604052806005815260200164173539b7b760d91b81525061202f60201b60201c565b15611e9b576000611fe182611e01604051806040016040528060018152602001602f60f81b81525061202f60201b60201c565b905060018151111561201d578060028251611ffc919061435c565b8151811061200c5761200c613d93565b602002602001015192505050919050565b508260405160200161036c919061436f565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b8051825160009111156120715750600061020c565b8151835160208501516000929161208791614429565b612091919061435c565b9050826020015181036120a857600191505061020c565b82516020840151819020912014905092915050565b606060006120ca836131a9565b60010190506000816001600160401b038111156120e9576120e96138e7565b6040519080825280601f01601f191660200182016040528015612113576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461211d57509392505050565b60606000612166836040015161202f60201b60201c565b90506121a361219c6040518060400160405280600a8152602001691553931250d15394d15160b21b81525061202f60201b60201c565b829061328b565b156121ca5750506040805180820190915260048152634e6f6e6560e01b6020820152919050565b6121fd61219c60405180604001604052806009815260200168556e6c6963656e736560b81b81525061202f60201b60201c565b15612229575050604080518082019091526009815268556e6c6963656e736560b81b6020820152919050565b61225661219c6040518060400160405280600381526020016213525560ea1b81525061202f60201b60201c565b1561227c57505060408051808201909152600381526213525560ea1b6020820152919050565b6122b261219c6040518060400160405280600c81526020016b47504c2d322e302d6f6e6c7960a01b81525061202f60201b60201c565b806122f257506122f261219c6040518060400160405280601081526020016f23a8261699171816b7b916b630ba32b960811b81525061202f60201b60201c565b1561231e57505060408051808201909152600981526823a72a9023a8263b1960b91b6020820152919050565b61235461219c6040518060400160405280600c81526020016b47504c2d332e302d6f6e6c7960a01b81525061202f60201b60201c565b80612394575061239461219c6040518060400160405280601081526020016f23a8261699971816b7b916b630ba32b960811b81525061202f60201b60201c565b156123c0575050604080518082019091526009815268474e552047504c763360b81b6020820152919050565b6123f761219c6040518060400160405280600d81526020016c4c47504c2d322e312d6f6e6c7960981b81525061202f60201b60201c565b80612438575061243861219c604051806040016040528060118152602001702623a8261699171896b7b916b630ba32b960791b81525061202f60201b60201c565b1561246757505060408051808201909152600c81526b474e55204c47504c76322e3160a01b6020820152919050565b61249e61219c6040518060400160405280600d81526020016c4c47504c2d332e302d6f6e6c7960981b81525061202f60201b60201c565b806124df57506124df61219c604051806040016040528060118152602001702623a8261699971816b7b916b630ba32b960791b81525061202f60201b60201c565b1561250c57505060408051808201909152600a815269474e55204c47504c763360b01b6020820152919050565b61254261219c6040518060400160405280600c81526020016b4253442d322d436c6175736560a01b81525061202f60201b60201c565b1561257157505060408051808201909152600c81526b4253442d322d436c6175736560a01b6020820152919050565b6125a761219c6040518060400160405280600c81526020016b4253442d332d436c6175736560a01b81525061202f60201b60201c565b156125d657505060408051808201909152600c81526b4253442d332d436c6175736560a01b6020820152919050565b61260761219c6040518060400160405280600781526020016604d504c2d322e360cc1b81525061202f60201b60201c565b1561263157505060408051808201909152600781526604d504c2d322e360cc1b6020820152919050565b61266261219c6040518060400160405280600781526020016604f534c2d332e360cc1b81525061202f60201b60201c565b1561268c57505060408051808201909152600781526604f534c2d332e360cc1b6020820152919050565b6126c061219c6040518060400160405280600a81526020016904170616368652d322e360b41b81525061202f60201b60201c565b156126ed57505060408051808201909152600a81526904170616368652d322e360b41b6020820152919050565b61272461219c6040518060400160405280600d81526020016c4147504c2d332e302d6f6e6c7960981b81525061202f60201b60201c565b80612765575061276561219c6040518060400160405280601181526020017020a3a8261699971816b7b916b630ba32b960791b81525061202f60201b60201c565b1561279257505060408051808201909152600a815269474e55204147504c763360b01b6020820152919050565b6127c461219c604051806040016040528060088152602001674255534c2d312e3160c01b81525061202f60201b60201c565b156127ee57505060408051808201909152600781526642534c20312e3160c81b6020820152919050565b6040808401518451915161036c929060200161443c565b60608060005b8451811015612890578185828151811061282757612827613d93565b60200260200101516040516020016128409291906139e7565b60405160208183030381529060405291506001855161285f919061435c565b81146128885781604051602001612876919061458c565b60405160208183030381529060405291505b60010161280b565b5060408051600380825260808201909252600091816020015b60608152602001906001900390816128a957905050905083816000815181106128d4576128d4613d93565b6020026020010181905250604051806040016040528060028152602001612d6360f01b8152508160018151811061290d5761290d613d93565b6020026020010181905250818160028151811061292c5761292c613d93565b6020908102919091010152949350505050565b602080830151835183519284015160009361295d929184919061329f565b14159392505050565b604080518082019091526000808252602080830182905284518582015185519286015161299393906133b0565b90508360200151816129a5919061435c565b845185906129b490839061435c565b90525060208401525090919050565b60408051808201909152600080825260208201528151835110156129e857508161020c565b6020808301519084015160019114612a0f5750815160208481015190840151829020919020145b8015612a4057825184518590612a2690839061435c565b9052508251602085018051612a3c908390614429565b9052505b509192915050565b6040805180820190915260008082526020820152612a678383836134d0565b5092915050565b6060600082600001516001600160401b03811115612a8e57612a8e6138e7565b6040519080825280601f01601f191660200182016040528015612ab8576020820181803683370190505b50602084810151855192935090830191612a67918391613576565b60606000612adf610545565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081612afc5790505090506000604051806040016040528060038152602001620dce0f60eb1b815250828280612b3d90613ea2565b935060ff1681518110612b5257612b52613d93565b6020026020010181905250604051806040016040528060078152602001665e312e33322e3360c81b815250604051602001612b8d91906145b1565b604051602081830303815290604052828280612ba890613ea2565b935060ff1681518110612bbd57612bbd613d93565b60200260200101819052506040518060400160405280600881526020016776616c696461746560c01b815250828280612bf590613ea2565b935060ff1681518110612c0a57612c0a613d93565b602002602001018190525082604051602001612c269190613dde565b604051602081830303815290604052828280612c4190613ea2565b935060ff1681518110612c5657612c56613d93565b60200260200101819052506040518060400160405280600a8152602001690b4b58dbdb9d1c9858dd60b21b815250828280612c9090613ea2565b935060ff1681518110612ca557612ca5613d93565b6020908102919091010152612cba87846135f0565b8282612cc581613ea2565b935060ff1681518110612cda57612cda613d93565b602090810291909101015285515115612d725760408051808201909152600b81526a2d2d7265666572656e636560a81b60208201528282612d1a81613ea2565b935060ff1681518110612d2f57612d2f613d93565b60209081029190910101528551612d4690846135f0565b8282612d5181613ea2565b935060ff1681518110612d6657612d66613d93565b60200260200101819052505b856080015115612de05760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282612dbb81613ea2565b935060ff1681518110612dd057612dd0613d93565b6020026020010181905250612e3b565b8415612e3b576040805180820190915260128152712d2d726571756972655265666572656e636560701b60208201528282612e1a81613ea2565b935060ff1681518110612e2f57612e2f613d93565b60200260200101819052505b60408601515115612ec75760408051808201909152600d81526c2d2d756e73616665416c6c6f7760981b60208201528282612e7581613ea2565b935060ff1681518110612e8a57612e8a613d93565b60200260200101819052508560400151828280612ea690613ea2565b935060ff1681518110612ebb57612ebb613d93565b60200260200101819052505b856060015115612f315760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d657300000000000000000000000060208201528282612f1081613ea2565b935060ff1681518110612f2557612f25613d93565b60200260200101819052505b60008160ff166001600160401b03811115612f4e57612f4e6138e7565b604051908082528060200260200182016040528015612f8157816020015b6060815260200190600190039081612f6c5790505b50905060005b8260ff168160ff161015612fda57838160ff1681518110612faa57612faa613d93565b6020026020010151828260ff1681518110612fc757612fc7613d93565b6020908102919091010152600101612f87565b50979650505050505050565b604080518082019091526000808252602082015281518351101561300b57508161020c565b8151835160208501516000929161302191614429565b61302b919061435c565b6020840151909150600190821461304c575082516020840151819020908220145b80156130675783518551869061306390839061435c565b9052505b50929392505050565b8051825160208085015190840151600093849390926130909284906133b0565b61309a9190614429565b90505b835160208501516130ae9190614429565b8111612a6757816130be816145f6565b92505082600001516130f48560200151836130d9919061435c565b86516130e5919061435c565b855160208701518591906133b0565b6130fe9190614429565b905061309d565b606060006131138484613070565b61311e906001614429565b6001600160401b03811115613135576131356138e7565b60405190808252806020026020018201604052801561316857816020015b60608152602001906001900390816131535790505b50905060005b8151811015611b6257613184611d008686612a48565b82828151811061319657613196613d93565b602090810291909101015260010161316e565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106131f2577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061321e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061323c57662386f26fc10000830492506010015b6305f5e1008310613254576305f5e100830492506008015b612710831061326857612710830492506004015b6064831061327a576064830492506002015b600a831061020c5760010192915050565b60006132978383613630565b159392505050565b6000808584116133a6576020841161335257600084156132ea5760016132c686602061435c565b6132d190600861460f565b6132dc90600261470d565b6132e6919061435c565b1990505b83518116856132f98989614429565b613303919061435c565b805190935082165b81811461333d57878411613325578794505050505061182b565b8361332f81614719565b94505082845116905061330b565b6133478785614429565b94505050505061182b565b83832061335f858861435c565b6133699087614429565b91505b8582106133a457848220808203613391576133878684614429565b935050505061182b565b61339c60018461435c565b92505061336c565b505b5092949350505050565b600083818685116134bb576020851161346a57600085156133fc5760016133d887602061435c565b6133e390600861460f565b6133ee90600261470d565b6133f8919061435c565b1990505b8451811660008761340d8b8b614429565b613417919061435c565b855190915083165b82811461345c57818610613444576134378b8b614429565b965050505050505061182b565b8561344e816145f6565b96505083865116905061341f565b85965050505050505061182b565b508383206000905b61347c868961435c565b82116134b957858320808203613498578394505050505061182b565b6134a3600185614429565b93505081806134b1906145f6565b925050613472565b505b6134c58787614429565b979650505050505050565b60408051808201909152600080825260208083018290528551868201518651928701516134fd93906133b0565b602080870180519186019190915251909150613519908261435c565b83528451602086015161352c9190614429565b810361353b576000855261356d565b835183516135499190614429565b8551869061355890839061435c565b90525083516135679082614429565b60208601525b50909392505050565b602081106135ae578151835261358d602084614429565b925061359a602083614429565b91506135a760208261435c565b9050613576565b60001981156135dd5760016135c483602061435c565b6135d09061010061470d565b6135da919061435c565b90505b9151835183169219169190911790915250565b606060006135fe84846105df565b805160208083015160405193945061361893909101614730565b60405160208183030381529060405291505092915050565b8151815160009190811115613643575081515b6020808501519084015160005b838110156136fc57825182518082146136cc5760001960208710156136ab5760018461367d89602061435c565b6136879190614429565b61369290600861460f565b61369d90600261470d565b6136a7919061435c565b1990505b81811683821681810391146136c957975061020c9650505050505050565b50505b6136d7602086614429565b94506136e4602085614429565b935050506020816136f59190614429565b9050613650565b5084518651610bad919061476c565b610c9f8061557283390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161375b613760565b905290565b6040518061010001604052806000151581526020016000151581526020016060815260200160008019168152602001606081526020016060815260200160001515815260200161375b6040518060800160405280600081526020016000815260200160008152602001600081525090565b60005b838110156137ec5781810151838201526020016137d4565b50506000910152565b6000815180845261380d8160208601602086016137d1565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061182b908301846137f5565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161387d81601a8501602088016137d1565b6101d160f51b601a91840191820152835161389f81601c8401602088016137d1565b01601c01949350505050565b60208152600061028760208301846137f5565b6000602082840312156138d057600080fd5b81516001600160a01b038116811461028757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561391f5761391f6138e7565b60405290565b6000806001600160401b0384111561393f5761393f6138e7565b50604051601f19601f85018116603f011681018181106001600160401b038211171561396d5761396d6138e7565b60405283815290508082840185101561398557600080fd5b611b628460208301856137d1565b600082601f8301126139a457600080fd5b61028783835160208501613925565b6000602082840312156139c557600080fd5b81516001600160401b038111156139db57600080fd5b61020884828501613993565b600083516139f98184602088016137d1565b835190830190613a0d8183602088016137d1565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351613a4e81601a8501602088016137d1565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a918401918201528351613a8b8160338401602088016137d1565b601160f91b60339290910191820152603401949350505050565b60408152600b60408201526a1193d55391149657d3d55560aa1b606082015260806020820152600061028760808301846137f5565b600060208284031215613aec57600080fd5b81516001600160401b03811115613b0257600080fd5b8201601f81018413613b1357600080fd5b61020884825160208401613925565b60008551613b34818460208a016137d1565b602f60f81b9083019081528551613b52816001840160208a016137d1565b602f60f81b600192909101918201528451613b748160028401602089016137d1565b600181830101915050602f60f81b60018201528351613b9a8160028401602088016137d1565b64173539b7b760d91b600292909101918201526007019695505050505050565b604081526000613bcd60408301846137f5565b828103602084015260048152630b985cdd60e21b60208201526040810191505092915050565b600060208284031215613c0557600080fd5b8151801515811461028757600080fd5b7f436f756c64206e6f742066696e642041535420696e2061727469666163742000815260008251613c4d81601f8501602087016137d1565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f939091019283015250611b5b60f21b603f820152604101919050565b604081526000613c9f60408301846137f5565b8281036020840152601181527005cc2e6e85cc2c4e6ded8eae8caa0c2e8d607b1b60208201526040810191505092915050565b604081526000613ce560408301846137f5565b8281036020840152600c81526b2e6173742e6c6963656e736560a01b60208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b27000000000000000000000000815260008251613d4b8160148501602087016137d1565b6b13ae9735b2b1b1b0b5991a9b60a11b6014939091019283015250602001919050565b604081526000613d8160408301856137f5565b828103602084015261028381856137f5565b634e487b7160e01b600052603260045260246000fd5b601160f91b81528151600090613dc68160018501602087016137d1565b601160f91b6001939091019283015250600201919050565b60008251613df08184602087016137d1565b6a2f6275696c642d696e666f60a81b920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201526a0391031b7b73a3930b1ba160ad1b604082015260008251613e7f81604b8501602087016137d1565b91909101604b0192915050565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103613eb857613eb8613e8c565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81526801a595b9d0b58db1a560be1b602082015260008251613f0b8160298501602087016137d1565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f5041544800000000000000000000606082015260806020820152600061028760808301846137f5565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015613fb857603f19878603018452613fa38583516137f5565b94506020938401939190910190600101613f87565b50929695505050505050565b600060208284031215613fd657600080fd5b81516001600160401b03811115613fec57600080fd5b820160608185031215613ffe57600080fd5b6140066138fd565b81518060030b811461401757600080fd5b815260208201516001600160401b0381111561403257600080fd5b61403e86828501613993565b60208301525060408201516001600160401b0381111561405d57600080fd5b61406986828501613993565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e642077697468208152601160f91b6020820152600082516140b98160218501602087016137d1565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e65207769746820707265666978208152602760f81b6020820152600083516142898160218501602088016137d1565b6c0139034b71037baba383aba1d1609d1b60219184019182015283516142b681602e8401602088016137d1565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c815268034b230ba34b7b71d160bd1b602082015260008251613f0b8160298501602087016137d1565b7f55706772616465207361666574792076616c69646174696f6e206661696c65648152611d0560f11b60208201526000825161434f8160228501602087016137d1565b9190910160220192915050565b8181038181111561020c5761020c613e8c565b6d021b7b73a3930b1ba103730b6b2960951b81526000825161439881600e8501602087016137d1565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201526730b1ba173539b7b760c11b606e820152607601919050565b8082018082111561020c5761020c613e8c565b7f53504458206c6963656e7365206964656e7469666965722000000000000000008152600083516144748160188501602088016137d1565b6301034b7160e51b601891840191820152835161449881601c8401602088016137d1565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b6000825161459e8184602087016137d1565b600160fd1b920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f726540000000008152600082516145e981601c8501602087016137d1565b91909101601c0192915050565b60006001820161460857614608613e8c565b5060010190565b808202811582820484141761020c5761020c613e8c565b6001815b60018411156146615780850481111561464557614645613e8c565b600184161561465357908102905b60019390931c92800261462a565b935093915050565b6000826146785750600161020c565b816146855750600061020c565b816001811461469b57600281146146a5576146c1565b600191505061020c565b60ff8411156146b6576146b6613e8c565b50506001821b61020c565b5060208310610133831016604e8410600b84101617156146e4575081810a61020c565b6146f16000198484614626565b806000190482111561470557614705613e8c565b029392505050565b60006102878383614669565b60008161472857614728613e8c565b506000190190565b600083516147428184602088016137d1565b601d60f91b90830190815283516147608160018401602088016137d1565b01600101949350505050565b8181036000831280158383131683831282161715612a6757612a67613e8c565b610dd78061479b6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80636133b4bb1161005b5780636133b4bb1461012b57806381100bf01461013e578063c8a023621461015e578063d9caed121461017157600080fd5b8063116191b61461008d57806321fc65f2146100d65780633c2f05a8146100eb5780635b1125911461010b575b600080fd5b6001546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100e96100e4366004610aff565b610184565b005b6003546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6002546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6100e9610139366004610b6e565b61030e565b6004546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6100e961016c366004610aff565b61052a565b6100e961017f366004610bc8565b61069b565b61018c61078b565b60025473ffffffffffffffffffffffffffffffffffffffff1633146101dd576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546102049073ffffffffffffffffffffffffffffffffffffffff8781169116856107ce565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906102629088908890889088908890600401610c4e565b600060405180830381600087803b15801561027c57600080fd5b505af1158015610290573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e8585856040516102f593929190610cab565b60405180910390a36103076001600055565b5050505050565b60035473ffffffffffffffffffffffffffffffffffffffff166340c10f1930610338866005610cce565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401600060405180830381600087803b1580156103a357600080fd5b505af11580156103b7573d6000803e3d6000fd5b50506003546006546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152600560248201529116925063a9059cbb91506044016020604051808303816000875af1158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a9190610d08565b506003546104819073ffffffffffffffffffffffffffffffffffffffff1685858585610184565b6003546001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116906370a0823190602401602060405180830381865afa1580156104f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105179190610d2a565b1561052457610524610d43565b50505050565b61053261078b565b60025473ffffffffffffffffffffffffffffffffffffffff163314610583576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546105aa9073ffffffffffffffffffffffffffffffffffffffff8781169116856107ce565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906106089088908890889088908890600401610c4e565b600060405180830381600087803b15801561062257600080fd5b505af1158015610636573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c88585856040516102f593929190610cab565b6106a361078b565b60025473ffffffffffffffffffffffffffffffffffffffff1633146106f4576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61071573ffffffffffffffffffffffffffffffffffffffff841683836107ce565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8360405161077491815260200190565b60405180910390a36107866001600055565b505050565b6002600054036107c7576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261078691859190600090610867908416836108e0565b9050805160001415801561088c57508080602001905181019061088a9190610d08565b155b15610786576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606108ee838360006108f7565b90505b92915050565b606081471015610935576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016108d7565b6000808573ffffffffffffffffffffffffffffffffffffffff16848660405161095e9190610d72565b60006040518083038185875af1925050503d806000811461099b576040519150601f19603f3d011682016040523d82523d6000602084013e6109a0565b606091505b50915091506109b08683836109bc565b925050505b9392505050565b6060826109d1576109cc82610a4b565b6109b5565b81511580156109f5575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610a44576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016108d7565b50806109b5565b805115610a5b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008083601f840112610ac857600080fd5b50813567ffffffffffffffff811115610ae057600080fd5b602083019150836020828501011115610af857600080fd5b9250929050565b600080600080600060808688031215610b1757600080fd5b610b2086610a8d565b9450610b2e60208701610a8d565b935060408601359250606086013567ffffffffffffffff811115610b5157600080fd5b610b5d88828901610ab6565b969995985093965092949392505050565b60008060008060608587031215610b8457600080fd5b610b8d85610a8d565b935060208501359250604085013567ffffffffffffffff811115610bb057600080fd5b610bbc87828801610ab6565b95989497509550505050565b600080600060608486031215610bdd57600080fd5b610be684610a8d565b9250610bf460208501610a8d565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610ca0608083018486610c05565b979650505050505050565b838152604060208201526000610cc5604083018486610c05565b95945050505050565b808201808211156108f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060208284031215610d1a57600080fd5b815180151581146109b557600080fd5b600060208284031215610d3c57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b81811015610d935760208186018101518583015201610d79565b50600092019182525091905056fea2646970667358221220b0a7bb2e0e1fca0564f282b7e276b762b03ff9d51eb208ba06692fe22a5d3e1664736f6c634300081a0033608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f7420"; + +type ERC20CustodyNewEchidnaTestConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC20CustodyNewEchidnaTestConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC20CustodyNewEchidnaTest__factory extends ContractFactory { + constructor(...args: ERC20CustodyNewEchidnaTestConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + ERC20CustodyNewEchidnaTest & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): ERC20CustodyNewEchidnaTest__factory { + return super.connect(runner) as ERC20CustodyNewEchidnaTest__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC20CustodyNewEchidnaTestInterface { + return new Interface(_abi) as ERC20CustodyNewEchidnaTestInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC20CustodyNewEchidnaTest { + return new Contract( + address, + _abi, + runner + ) as unknown as ERC20CustodyNewEchidnaTest; + } +} diff --git a/v2/typechain-types/factories/ERC20CustodyNew__factory.ts b/v2/typechain-types/factories/ERC20CustodyNew__factory.ts new file mode 100644 index 00000000..14d94ff9 --- /dev/null +++ b/v2/typechain-types/factories/ERC20CustodyNew__factory.ts @@ -0,0 +1,339 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { + ERC20CustodyNew, + ERC20CustodyNewInterface, +} from "../ERC20CustodyNew"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "_gateway", + type: "address", + internalType: "address", + }, + { + name: "_tssAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "gateway", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IGatewayEVM", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndCall", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndRevert", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndCall", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndRevert", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051610b4a380380610b4a83398101604081905261002f916100bc565b60016000556001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ef565b80516001600160a01b03811681146100b757600080fd5b919050565b600080604083850312156100cf57600080fd5b6100d8836100a0565b91506100e6602084016100a0565b90509250929050565b610a4c806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80635b112591116100505780635b112591146100ca578063c8a02362146100ea578063d9caed12146100fd57600080fd5b8063116191b61461006c57806321fc65f2146100b5575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100c86100c3366004610822565b610110565b005b60025461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100c86100f8366004610822565b61029a565b6100c861010b3660046108bf565b61040b565b6101186104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610169576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546101909073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906101ee9088908890889088908890600401610945565b600060405180830381600087803b15801561020857600080fd5b505af115801561021c573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610281939291906109a2565b60405180910390a36102936001600055565b5050505050565b6102a26104fb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102f3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015461031a9073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906103789088908890889088908890600401610945565b600060405180830381600087803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8858585604051610281939291906109a2565b6104136104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61048573ffffffffffffffffffffffffffffffffffffffff8416838361053e565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104e491815260200190565b60405180910390a36104f66001600055565b505050565b600260005403610537576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f6918591906000906105d790841683610650565b905080516000141580156105fc5750808060200190518101906105fa91906109c5565b155b156104f6576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b606061065e83836000610665565b9392505050565b6060814710156106a3576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610647565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516106cc91906109e7565b60006040518083038185875af1925050503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b509150915061071e868383610728565b9695505050505050565b60608261073d57610738826107b7565b61065e565b8151158015610761575073ffffffffffffffffffffffffffffffffffffffff84163b155b156107b0576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610647565b508061065e565b8051156107c75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461081d57600080fd5b919050565b60008060008060006080868803121561083a57600080fd5b610843866107f9565b9450610851602087016107f9565b935060408601359250606086013567ffffffffffffffff81111561087457600080fd5b8601601f8101881361088557600080fd5b803567ffffffffffffffff81111561089c57600080fd5b8860208284010111156108ae57600080fd5b959894975092955050506020019190565b6000806000606084860312156108d457600080fd5b6108dd846107f9565b92506108eb602085016107f9565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006109976080830184866108fc565b979650505050505050565b8381526040602082015260006109bc6040830184866108fc565b95945050505050565b6000602082840312156109d757600080fd5b8151801515811461065e57600080fd5b6000825160005b81811015610a0857602081860181015185830152016109ee565b50600092019182525091905056fea264697066735822122041336b1568f49be1aa3dcd208e804b373772741e9b7e1726a8869e99fced60c764736f6c634300081a0033"; + +type ERC20CustodyNewConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC20CustodyNewConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC20CustodyNew__factory extends ContractFactory { + constructor(...args: ERC20CustodyNewConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _gateway: AddressLike, + _tssAddress: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(_gateway, _tssAddress, overrides || {}); + } + override deploy( + _gateway: AddressLike, + _tssAddress: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(_gateway, _tssAddress, overrides || {}) as Promise< + ERC20CustodyNew & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC20CustodyNew__factory { + return super.connect(runner) as ERC20CustodyNew__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC20CustodyNewInterface { + return new Interface(_abi) as ERC20CustodyNewInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC20CustodyNew { + return new Contract(address, _abi, runner) as unknown as ERC20CustodyNew; + } +} diff --git a/v2/typechain-types/factories/ERC20__factory.ts b/v2/typechain-types/factories/ERC20__factory.ts new file mode 100644 index 00000000..4734fcc6 --- /dev/null +++ b/v2/typechain-types/factories/ERC20__factory.ts @@ -0,0 +1,327 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { ERC20, ERC20Interface } from "../ERC20"; + +const _abi = [ + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "ERC20InsufficientAllowance", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "allowance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSpender", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + }, +] as const; + +export class ERC20__factory { + static readonly abi = _abi; + static createInterface(): ERC20Interface { + return new Interface(_abi) as ERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): ERC20 { + return new Contract(address, _abi, runner) as unknown as ERC20; + } +} diff --git a/v2/typechain-types/factories/GatewayEVMEchidnaTest__factory.ts b/v2/typechain-types/factories/GatewayEVMEchidnaTest__factory.ts new file mode 100644 index 00000000..91c6d73a --- /dev/null +++ b/v2/typechain-types/factories/GatewayEVMEchidnaTest__factory.ts @@ -0,0 +1,864 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { + GatewayEVMEchidnaTest, + GatewayEVMEchidnaTestInterface, +} from "../GatewayEVMEchidnaTest"; + +const _abi = [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "call", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "payload", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "custody", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "asset", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "depositAndCall", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "payload", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "depositAndCall", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "asset", + type: "address", + internalType: "address", + }, + { + name: "payload", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "echidnaCaller", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "execute", + inputs: [ + { + name: "destination", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "payable", + }, + { + type: "function", + name: "executeRevert", + inputs: [ + { + name: "destination", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "executeWithERC20", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "_tssAddress", + type: "address", + internalType: "address", + }, + { + name: "_zetaToken", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "owner", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revertWithERC20", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setConnector", + inputs: [ + { + name: "_zetaConnector", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setCustody", + inputs: [ + { + name: "_custody", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "testERC20", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract TestERC20", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "testExecuteWithERC20", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferOwnership", + inputs: [ + { + name: "newOwner", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "zetaConnector", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "zetaToken", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "Call", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "payload", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "asset", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "payload", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Executed", + inputs: [ + { + name: "destination", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ExecutedWithERC20", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "OwnershipTransferred", + inputs: [ + { + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Reverted", + inputs: [ + { + name: "destination", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RevertedWithERC20", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ApprovalFailed", + inputs: [], + }, + { + type: "error", + name: "CustodyInitialized", + inputs: [], + }, + { + type: "error", + name: "DepositFailed", + inputs: [], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "ExecutionFailed", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InsufficientERC20Amount", + inputs: [], + }, + { + type: "error", + name: "InsufficientETHAmount", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "OwnableInvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60a060405230608052600580546001600160a01b0319163317905534801561002657600080fd5b5061002f610149565b600554600180546001600160a01b039092166001600160a01b031992831617905560028054610123921691909117905560405161006b906101fb565b60408082526004908201819052631d195cdd60e21b606083015260806020830181905282015263151154d560e21b60a082015260c001604051809103906000f0801580156100bd573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b03928316179055600154604051309291909116906100f090610208565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015610123573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055610215565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156101995760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101f85780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610c9f80612a3f83390190565b610b4a806136de83390190565b60805161280161023e600039600081816116ad015281816116d60152611b1c01526128016000f3fe6080604052600436106101965760003560e01c80635b112591116100e1578063ad3cb1cc1161008a578063dda79b7511610064578063dda79b7514610475578063f2fde38b14610495578063f340fa01146104b5578063f45346dc146104c857600080fd5b8063ad3cb1cc146103ec578063ae7a3a6f14610435578063b8969bd41461045557600080fd5b806381100bf0116100bb57806381100bf01461036f5780638c6f037f1461038f5780638da5cb5b146103af57600080fd5b80635b1125911461031a5780636ab90f9b1461033a578063715018a61461035a57600080fd5b80633c2f05a8116101435780635131ab591161011d5780635131ab59146102b757806352d1902d146102d757806357bec62f146102fa57600080fd5b80633c2f05a814610264578063485cc955146102845780634f1ef286146102a457600080fd5b806321e093b11161017457806321e093b11461020657806329c59b5d1461023e57806335c018db1461025157600080fd5b806310188aef1461019b5780631b8b921d146101bd5780631cff79cd146101dd575b600080fd5b3480156101a757600080fd5b506101bb6101b6366004612295565b6104e8565b005b3480156101c957600080fd5b506101bb6101d83660046122f9565b6105e9565b6101f06101eb3660046122f9565b61063b565b6040516101fd91906123ba565b60405180910390f35b34801561021257600080fd5b50600354610226906001600160a01b031681565b6040516001600160a01b0390911681526020016101fd565b6101bb61024c3660046122f9565b6106e0565b6101bb61025f3660046122f9565b610805565b34801561027057600080fd5b50600454610226906001600160a01b031681565b34801561029057600080fd5b506101bb61029f3660046123cd565b61099d565b6101bb6102b236600461242f565b610bca565b3480156102c357600080fd5b506101bb6102d2366004612536565b610be9565b3480156102e357600080fd5b506102ec610ef0565b6040519081526020016101fd565b34801561030657600080fd5b50600254610226906001600160a01b031681565b34801561032657600080fd5b50600154610226906001600160a01b031681565b34801561034657600080fd5b506101bb6103553660046125a5565b610f1f565b34801561036657600080fd5b506101bb611050565b34801561037b57600080fd5b50600554610226906001600160a01b031681565b34801561039b57600080fd5b506101bb6103aa3660046125ff565b611064565b3480156103bb57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610226565b3480156103f857600080fd5b506101f06040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b34801561044157600080fd5b506101bb610450366004612295565b611101565b34801561046157600080fd5b506101bb610470366004612536565b611202565b34801561048157600080fd5b50600054610226906001600160a01b031681565b3480156104a157600080fd5b506101bb6104b0366004612295565b6113a6565b6101bb6104c3366004612295565b611402565b3480156104d457600080fd5b506101bb6104e3366004612651565b611527565b6001546001600160a01b0316331461052c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546001600160a01b03161561056f576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166105af576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3848460405161062e9291906126d6565b60405180910390a3505050565b6001546060906001600160a01b03163314610682576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061068f8585856115d2565b9050846001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f3486866040516106ce939291906126f2565b60405180910390a290505b9392505050565b3460000361071a576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d8060008114610767576040519150601f19603f3d011682016040523d82523d6000602084013e61076c565b606091505b50909150508015156000036107ad576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600087876040516107f7949392919061270c565b60405180910390a350505050565b6001546001600160a01b03163314610849576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080846001600160a01b03163460405160006040518083038185875af1925050503d8060008114610897576040519150601f19603f3d011682016040523d82523d6000602084013e61089c565b606091505b5091509150816108d8576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b59061091f90879087906004016126d6565b600060405180830381600087803b15801561093957600080fd5b505af115801561094d573d6000803e3d6000fd5b50505050846001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c34868660405161098e939291906126f2565b60405180910390a25050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109e85750825b905060008267ffffffffffffffff166001148015610a055750303b155b905081158015610a13575080155b15610a4a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610aab5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b0387161580610ac857506001600160a01b038616155b15610aff576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b0833611679565b610b1061168a565b610b18611692565b600180546001600160a01b03808a167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560038054928916929091169190911790558315610bc15784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610bd26116a2565b610bdb82611772565b610be5828261177a565b5050565b610bf161189e565b6000546001600160a01b03163314801590610c1757506002546001600160a01b03163314155b15610c4e576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003610c88576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c92858561191f565b610cc8576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905286169063095ea7b3906044016020604051808303816000875af1158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d549190612735565b610d8a576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d978584846115d2565b9050610da3868661191f565b610dd9576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190612757565b90508015610e6f57610e6f87826119af565b856001600160a01b0316876001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382878787604051610eb6939291906126f2565b60405180910390a35050610ee960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6000610efa611b11565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b600480546040517f40c10f190000000000000000000000000000000000000000000000000000000081523092810192909252602482018590526001600160a01b0316906340c10f1990604401600060405180830381600087803b158015610f8557600080fd5b505af1158015610f99573d6000803e3d6000fd5b5050600454610fb792506001600160a01b0316905085858585610be9565b600480546040517f70a0823100000000000000000000000000000000000000000000000000000000815230928101929092526001600160a01b0316906370a0823190602401602060405180830381865afa158015611019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103d9190612757565b1561104a5761104a612770565b50505050565b611058611b73565b6110626000611be7565b565b8360000361109e576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110a9338486611c70565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4868686866040516110f2949392919061270c565b60405180910390a35050505050565b6001546001600160a01b03163314611145576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b031615611188576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166111c8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61120a61189e565b6000546001600160a01b0316331480159061123057506002546001600160a01b03163314155b15611267576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826000036112a1576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112b56001600160a01b0386168585611dbb565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638fcaa0b5906112fc90859085906004016126d6565b600060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7858585604051611375939291906126f2565b60405180910390a3610ee960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6113ae611b73565b6001600160a01b0381166113f6576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6113ff81611be7565b50565b3460000361143c576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d8060008114611489576040519150601f19603f3d011682016040523d82523d6000602084013e61148e565b606091505b50909150508015156000036114cf576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b81600003611561576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61156c338284611c70565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4848460405161062e9291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b6060600080856001600160a01b03163486866040516115f292919061279f565b60006040518083038185875af1925050503d806000811461162f576040519150601f19603f3d011682016040523d82523d6000602084013e611634565b606091505b509150915081611670576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b95945050505050565b611681611e2f565b6113ff81611e96565b611062611e2f565b61169a611e2f565b611062611e9e565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061173b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661172f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15611062576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ff611b73565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156117f2575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526117ef91810190612757565b60015b611833576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016113ed565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461188f576040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600481018290526024016113ed565b6118998383611ea6565b505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611919576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af115801561198b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d99190612735565b6003546001600160a01b0390811690831603611ad1576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a559190612735565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611ab557600080fd5b505af1158015611ac9573d6000803e3d6000fd5b505050505050565b600054610be5906001600160a01b03848116911683611dbb565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611062576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33611ba57f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614611062576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016113ed565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6003546001600160a01b0390811690831603611d9f57611c9b6001600160a01b038316843084611efc565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2b9190612735565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611d8b57600080fd5b505af1158015610bc1573d6000803e3d6000fd5b600054611899906001600160a01b038481169186911684611efc565b6040516001600160a01b0383811660248301526044820183905261189991859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611f35565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611062576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ae611e2f565b611aeb611e2f565b611eaf82611fb1565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611ef4576118998282612059565b610be56120c6565b6040516001600160a01b03848116602483015283811660448301526064820183905261104a9186918216906323b872dd90608401611de8565b6000611f4a6001600160a01b038416836120fe565b90508051600014158015611f6f575080806020019051810190611f6d9190612735565b155b15611899576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016113ed565b806001600160a01b03163b600003612000576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016113ed565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161207691906127af565b600060405180830381855af49150503d80600081146120b1576040519150601f19603f3d011682016040523d82523d6000602084013e6120b6565b606091505b509150915061167085838361210c565b3415611062576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60606106d983836000612181565b6060826121215761211c82612237565b6106d9565b815115801561213857506001600160a01b0384163b155b1561217a576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016113ed565b50806106d9565b6060814710156121bf576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016113ed565b600080856001600160a01b031684866040516121db91906127af565b60006040518083038185875af1925050503d8060008114612218576040519150601f19603f3d011682016040523d82523d6000602084013e61221d565b606091505b509150915061222d86838361210c565b9695505050505050565b8051156122475780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b038116811461229057600080fd5b919050565b6000602082840312156122a757600080fd5b6106d982612279565b60008083601f8401126122c257600080fd5b50813567ffffffffffffffff8111156122da57600080fd5b6020830191508360208285010111156122f257600080fd5b9250929050565b60008060006040848603121561230e57600080fd5b61231784612279565b9250602084013567ffffffffffffffff81111561233357600080fd5b61233f868287016122b0565b9497909650939450505050565b60005b8381101561236757818101518382015260200161234f565b50506000910152565b6000815180845261238881602086016020860161234c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106d96020830184612370565b600080604083850312156123e057600080fd5b6123e983612279565b91506123f760208401612279565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561244257600080fd5b61244b83612279565b9150602083013567ffffffffffffffff81111561246757600080fd5b8301601f8101851361247857600080fd5b803567ffffffffffffffff81111561249257612492612400565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156124fe576124fe612400565b60405281815282820160200187101561251657600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008060008060006080868803121561254e57600080fd5b61255786612279565b945061256560208701612279565b935060408601359250606086013567ffffffffffffffff81111561258857600080fd5b612594888289016122b0565b969995985093965092949392505050565b600080600080606085870312156125bb57600080fd5b6125c485612279565b935060208501359250604085013567ffffffffffffffff8111156125e757600080fd5b6125f3878288016122b0565b95989497509550505050565b60008060008060006080868803121561261757600080fd5b61262086612279565b94506020860135935061263560408701612279565b9250606086013567ffffffffffffffff81111561258857600080fd5b60008060006060848603121561266657600080fd5b61266f84612279565b92506020840135915061268460408501612279565b90509250925092565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6020815260006126ea60208301848661268d565b949350505050565b83815260406020820152600061167060408301848661268d565b8481526001600160a01b038416602082015260606040820152600061222d60608301848661268d565b60006020828403121561274757600080fd5b815180151581146106d957600080fd5b60006020828403121561276957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183823760009101908152919050565b600082516127c181846020870161234c565b919091019291505056fea26469706673582212208320883bd4bfae2ca3d75ca12c286d744989c1c031265ae8356454d2eac5070964736f6c634300081a0033608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b50604051610b4a380380610b4a83398101604081905261002f916100bc565b60016000556001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ef565b80516001600160a01b03811681146100b757600080fd5b919050565b600080604083850312156100cf57600080fd5b6100d8836100a0565b91506100e6602084016100a0565b90509250929050565b610a4c806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80635b112591116100505780635b112591146100ca578063c8a02362146100ea578063d9caed12146100fd57600080fd5b8063116191b61461006c57806321fc65f2146100b5575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100c86100c3366004610822565b610110565b005b60025461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100c86100f8366004610822565b61029a565b6100c861010b3660046108bf565b61040b565b6101186104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610169576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546101909073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635131ab59906101ee9088908890889088908890600401610945565b600060405180830381600087803b15801561020857600080fd5b505af115801561021c573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610281939291906109a2565b60405180910390a36102936001600055565b5050505050565b6102a26104fb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102f3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015461031a9073ffffffffffffffffffffffffffffffffffffffff87811691168561053e565b6001546040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b8969bd4906103789088908890889088908890600401610945565b600060405180830381600087803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c8858585604051610281939291906109a2565b6104136104fb565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61048573ffffffffffffffffffffffffffffffffffffffff8416838361053e565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104e491815260200190565b60405180910390a36104f66001600055565b505050565b600260005403610537576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f6918591906000906105d790841683610650565b905080516000141580156105fc5750808060200190518101906105fa91906109c5565b155b156104f6576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b606061065e83836000610665565b9392505050565b6060814710156106a3576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610647565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516106cc91906109e7565b60006040518083038185875af1925050503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b509150915061071e868383610728565b9695505050505050565b60608261073d57610738826107b7565b61065e565b8151158015610761575073ffffffffffffffffffffffffffffffffffffffff84163b155b156107b0576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610647565b508061065e565b8051156107c75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461081d57600080fd5b919050565b60008060008060006080868803121561083a57600080fd5b610843866107f9565b9450610851602087016107f9565b935060408601359250606086013567ffffffffffffffff81111561087457600080fd5b8601601f8101881361088557600080fd5b803567ffffffffffffffff81111561089c57600080fd5b8860208284010111156108ae57600080fd5b959894975092955050506020019190565b6000806000606084860312156108d457600080fd5b6108dd846107f9565b92506108eb602085016107f9565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006109976080830184866108fc565b979650505050505050565b8381526040602082015260006109bc6040830184866108fc565b95945050505050565b6000602082840312156109d757600080fd5b8151801515811461065e57600080fd5b6000825160005b81811015610a0857602081860181015185830152016109ee565b50600092019182525091905056fea264697066735822122041336b1568f49be1aa3dcd208e804b373772741e9b7e1726a8869e99fced60c764736f6c634300081a0033"; + +type GatewayEVMEchidnaTestConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: GatewayEVMEchidnaTestConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class GatewayEVMEchidnaTest__factory extends ContractFactory { + constructor(...args: GatewayEVMEchidnaTestConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + GatewayEVMEchidnaTest & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): GatewayEVMEchidnaTest__factory { + return super.connect(runner) as GatewayEVMEchidnaTest__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): GatewayEVMEchidnaTestInterface { + return new Interface(_abi) as GatewayEVMEchidnaTestInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): GatewayEVMEchidnaTest { + return new Contract( + address, + _abi, + runner + ) as unknown as GatewayEVMEchidnaTest; + } +} diff --git a/v2/typechain-types/factories/GatewayEVMUpgradeTest__factory.ts b/v2/typechain-types/factories/GatewayEVMUpgradeTest__factory.ts new file mode 100644 index 00000000..041b83fc --- /dev/null +++ b/v2/typechain-types/factories/GatewayEVMUpgradeTest__factory.ts @@ -0,0 +1,840 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { + GatewayEVMUpgradeTest, + GatewayEVMUpgradeTestInterface, +} from "../GatewayEVMUpgradeTest"; + +const _abi = [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "call", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "payload", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "custody", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "asset", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "depositAndCall", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "payload", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "depositAndCall", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "asset", + type: "address", + internalType: "address", + }, + { + name: "payload", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "execute", + inputs: [ + { + name: "destination", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "payable", + }, + { + type: "function", + name: "executeRevert", + inputs: [ + { + name: "destination", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "executeWithERC20", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "_tssAddress", + type: "address", + internalType: "address", + }, + { + name: "_zetaToken", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "owner", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revertWithERC20", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setConnector", + inputs: [ + { + name: "_zetaConnector", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setCustody", + inputs: [ + { + name: "_custody", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferOwnership", + inputs: [ + { + name: "newOwner", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "zetaConnector", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "zetaToken", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "Call", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "payload", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "asset", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "payload", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Executed", + inputs: [ + { + name: "destination", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ExecutedV2", + inputs: [ + { + name: "destination", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ExecutedWithERC20", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "OwnershipTransferred", + inputs: [ + { + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Reverted", + inputs: [ + { + name: "destination", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RevertedWithERC20", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ApprovalFailed", + inputs: [], + }, + { + type: "error", + name: "CustodyInitialized", + inputs: [], + }, + { + type: "error", + name: "DepositFailed", + inputs: [], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "ExecutionFailed", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InsufficientERC20Amount", + inputs: [], + }, + { + type: "error", + name: "InsufficientETHAmount", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "OwnableInvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60a060405230608052348015601357600080fd5b5060805161254461003d600039600081816114730152818161149c01526118e201526125446000f3fe6080604052600436106101755760003560e01c80635b112591116100cb578063ae7a3a6f1161007f578063f2fde38b11610059578063f2fde38b14610414578063f340fa0114610434578063f45346dc1461044757600080fd5b8063ae7a3a6f146103b4578063b8969bd4146103d4578063dda79b75146103f457600080fd5b80638c6f037f116100b05780638c6f037f1461030e5780638da5cb5b1461032e578063ad3cb1cc1461036b57600080fd5b80635b112591146102d9578063715018a6146102f957600080fd5b806335c018db1161012d5780635131ab59116101075780635131ab591461027657806352d1902d1461029657806357bec62f146102b957600080fd5b806335c018db14610230578063485cc955146102435780634f1ef2861461026357600080fd5b80631cff79cd1161015e5780631cff79cd146101bc57806321e093b1146101e557806329c59b5d1461021d57600080fd5b806310188aef1461017a5780631b8b921d1461019c575b600080fd5b34801561018657600080fd5b5061019a610195366004612061565b610467565b005b3480156101a857600080fd5b5061019a6101b73660046120c5565b610524565b6101cf6101ca3660046120c5565b610576565b6040516101dc9190612186565b60405180910390f35b3480156101f157600080fd5b50600354610205906001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b61019a61022b3660046120c5565b61061b565b61019a61023e3660046120c5565b610740565b34801561024f57600080fd5b5061019a61025e366004612199565b6108d8565b61019a6102713660046121fb565b610b05565b34801561028257600080fd5b5061019a610291366004612302565b610b24565b3480156102a257600080fd5b506102ab610e2b565b6040519081526020016101dc565b3480156102c557600080fd5b50600254610205906001600160a01b031681565b3480156102e557600080fd5b50600154610205906001600160a01b031681565b34801561030557600080fd5b5061019a610e5a565b34801561031a57600080fd5b5061019a610329366004612371565b610e6e565b34801561033a57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610205565b34801561037757600080fd5b506101cf6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156103c057600080fd5b5061019a6103cf366004612061565b610f0b565b3480156103e057600080fd5b5061019a6103ef366004612302565b610fc8565b34801561040057600080fd5b50600054610205906001600160a01b031681565b34801561042057600080fd5b5061019a61042f366004612061565b61116c565b61019a610442366004612061565b6111c8565b34801561045357600080fd5b5061019a6104623660046123c3565b6112ed565b6002546001600160a01b0316156104aa576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166104ea576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde38484604051610569929190612448565b60405180910390a3505050565b6001546060906001600160a01b031633146105bd576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105ca858585611398565b9050846001600160a01b03167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e854634868660405161060993929190612464565b60405180910390a290505b9392505050565b34600003610655576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146106a2576040519150601f19603f3d011682016040523d82523d6000602084013e6106a7565b606091505b50909150508015156000036106e8576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a43460008787604051610732949392919061247e565b60405180910390a350505050565b6001546001600160a01b03163314610784576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080846001600160a01b03163460405160006040518083038185875af1925050503d80600081146107d2576040519150601f19603f3d011682016040523d82523d6000602084013e6107d7565b606091505b509150915081610813576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b59061085a9087908790600401612448565b600060405180830381600087803b15801561087457600080fd5b505af1158015610888573d6000803e3d6000fd5b50505050846001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c3486866040516108c993929190612464565b60405180910390a25050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109235750825b905060008267ffffffffffffffff1660011480156109405750303b155b90508115801561094e575080155b15610985576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156109e65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b0387161580610a0357506001600160a01b038616155b15610a3a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a433361143f565b610a4b611450565b610a53611458565b600180546001600160a01b03808a167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560038054928916929091169190911790558315610afc5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610b0d611468565b610b1682611538565b610b208282611540565b5050565b610b2c611664565b6000546001600160a01b03163314801590610b5257506002546001600160a01b03163314155b15610b89576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003610bc3576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bcd85856116e5565b610c03576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905286169063095ea7b3906044016020604051808303816000875af1158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f91906124a7565b610cc5576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610cd2858484611398565b9050610cde86866116e5565b610d14576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9891906124c9565b90508015610daa57610daa8782611775565b856001600160a01b0316876001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382878787604051610df193929190612464565b60405180910390a35050610e2460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6000610e356118d7565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610e62611939565b610e6c60006119ad565b565b83600003610ea8576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eb3338486611a36565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a486868686604051610efc949392919061247e565b60405180910390a35050505050565b6000546001600160a01b031615610f4e576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610f8e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610fd0611664565b6000546001600160a01b03163314801590610ff657506002546001600160a01b03163314155b1561102d576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003611067576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61107b6001600160a01b0386168585611b81565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638fcaa0b5906110c29085908590600401612448565b600060405180830381600087803b1580156110dc57600080fd5b505af11580156110f0573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda785858560405161113b93929190612464565b60405180910390a3610e2460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611174611939565b6001600160a01b0381166111bc576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6111c5816119ad565b50565b34600003611202576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d806000811461124f576040519150601f19603f3d011682016040523d82523d6000602084013e611254565b606091505b5090915050801515600003611295576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b81600003611327576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611332338284611a36565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a484846040516105699291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b6060600080856001600160a01b03163486866040516113b89291906124e2565b60006040518083038185875af1925050503d80600081146113f5576040519150601f19603f3d011682016040523d82523d6000602084013e6113fa565b606091505b509150915081611436576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b95945050505050565b611447611bf5565b6111c581611c5c565b610e6c611bf5565b611460611bf5565b610e6c611c64565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061150157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114f57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15610e6c576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111c5611939565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156115b8575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526115b5918101906124c9565b60015b6115f9576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016111b3565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611655576040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600481018290526024016111b3565b61165f8383611c6c565b505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016116df576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af1158015611751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061491906124a7565b6003546001600160a01b0390811690831603611897576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af11580156117f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181b91906124a7565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b15801561187b57600080fd5b505af115801561188f573d6000803e3d6000fd5b505050505050565b600054610b20906001600160a01b03848116911683611b81565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e6c576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3361196b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610e6c576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016111b3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6003546001600160a01b0390811690831603611b6557611a616001600160a01b038316843084611cc2565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611acd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af191906124a7565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611b5157600080fd5b505af1158015610afc573d6000803e3d6000fd5b60005461165f906001600160a01b038481169186911684611cc2565b6040516001600160a01b0383811660248301526044820183905261165f91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d01565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610e6c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611174611bf5565b6118b1611bf5565b611c7582611d7d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cba5761165f8282611e25565b610b20611e92565b6040516001600160a01b038481166024830152838116604483015260648201839052611cfb9186918216906323b872dd90608401611bae565b50505050565b6000611d166001600160a01b03841683611eca565b90508051600014158015611d3b575080806020019051810190611d3991906124a7565b155b1561165f576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016111b3565b806001600160a01b03163b600003611dcc576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016111b3565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611e4291906124f2565b600060405180830381855af49150503d8060008114611e7d576040519150601f19603f3d011682016040523d82523d6000602084013e611e82565b606091505b5091509150611436858383611ed8565b3415610e6c576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606061061483836000611f4d565b606082611eed57611ee882612003565b610614565b8151158015611f0457506001600160a01b0384163b155b15611f46576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016111b3565b5080610614565b606081471015611f8b576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016111b3565b600080856001600160a01b03168486604051611fa791906124f2565b60006040518083038185875af1925050503d8060008114611fe4576040519150601f19603f3d011682016040523d82523d6000602084013e611fe9565b606091505b5091509150611ff9868383611ed8565b9695505050505050565b8051156120135780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b038116811461205c57600080fd5b919050565b60006020828403121561207357600080fd5b61061482612045565b60008083601f84011261208e57600080fd5b50813567ffffffffffffffff8111156120a657600080fd5b6020830191508360208285010111156120be57600080fd5b9250929050565b6000806000604084860312156120da57600080fd5b6120e384612045565b9250602084013567ffffffffffffffff8111156120ff57600080fd5b61210b8682870161207c565b9497909650939450505050565b60005b8381101561213357818101518382015260200161211b565b50506000910152565b60008151808452612154816020860160208601612118565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610614602083018461213c565b600080604083850312156121ac57600080fd5b6121b583612045565b91506121c360208401612045565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561220e57600080fd5b61221783612045565b9150602083013567ffffffffffffffff81111561223357600080fd5b8301601f8101851361224457600080fd5b803567ffffffffffffffff81111561225e5761225e6121cc565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156122ca576122ca6121cc565b6040528181528282016020018710156122e257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008060008060006080868803121561231a57600080fd5b61232386612045565b945061233160208701612045565b935060408601359250606086013567ffffffffffffffff81111561235457600080fd5b6123608882890161207c565b969995985093965092949392505050565b60008060008060006080868803121561238957600080fd5b61239286612045565b9450602086013593506123a760408701612045565b9250606086013567ffffffffffffffff81111561235457600080fd5b6000806000606084860312156123d857600080fd5b6123e184612045565b9250602084013591506123f660408501612045565b90509250925092565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208152600061245c6020830184866123ff565b949350505050565b8381526040602082015260006114366040830184866123ff565b8481526001600160a01b0384166020820152606060408201526000611ff96060830184866123ff565b6000602082840312156124b957600080fd5b8151801515811461061457600080fd5b6000602082840312156124db57600080fd5b5051919050565b8183823760009101908152919050565b60008251612504818460208701612118565b919091019291505056fea2646970667358221220de349acfc8741efa6db137df12b279146aa84392e947dfc852fc83fbe89954ff64736f6c634300081a0033"; + +type GatewayEVMUpgradeTestConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: GatewayEVMUpgradeTestConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class GatewayEVMUpgradeTest__factory extends ContractFactory { + constructor(...args: GatewayEVMUpgradeTestConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + GatewayEVMUpgradeTest & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): GatewayEVMUpgradeTest__factory { + return super.connect(runner) as GatewayEVMUpgradeTest__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): GatewayEVMUpgradeTestInterface { + return new Interface(_abi) as GatewayEVMUpgradeTestInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): GatewayEVMUpgradeTest { + return new Contract( + address, + _abi, + runner + ) as unknown as GatewayEVMUpgradeTest; + } +} diff --git a/v2/typechain-types/factories/GatewayEVM__factory.ts b/v2/typechain-types/factories/GatewayEVM__factory.ts new file mode 100644 index 00000000..59f29d9f --- /dev/null +++ b/v2/typechain-types/factories/GatewayEVM__factory.ts @@ -0,0 +1,803 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { GatewayEVM, GatewayEVMInterface } from "../GatewayEVM"; + +const _abi = [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "call", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "payload", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "custody", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "asset", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "depositAndCall", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "payload", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "depositAndCall", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "asset", + type: "address", + internalType: "address", + }, + { + name: "payload", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "execute", + inputs: [ + { + name: "destination", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "payable", + }, + { + type: "function", + name: "executeRevert", + inputs: [ + { + name: "destination", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "executeWithERC20", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "_tssAddress", + type: "address", + internalType: "address", + }, + { + name: "_zetaToken", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "owner", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revertWithERC20", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setConnector", + inputs: [ + { + name: "_zetaConnector", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setCustody", + inputs: [ + { + name: "_custody", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferOwnership", + inputs: [ + { + name: "newOwner", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "zetaConnector", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "zetaToken", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "Call", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "payload", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "asset", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "payload", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Executed", + inputs: [ + { + name: "destination", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ExecutedWithERC20", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "OwnershipTransferred", + inputs: [ + { + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Reverted", + inputs: [ + { + name: "destination", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RevertedWithERC20", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ApprovalFailed", + inputs: [], + }, + { + type: "error", + name: "CustodyInitialized", + inputs: [], + }, + { + type: "error", + name: "DepositFailed", + inputs: [], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "ExecutionFailed", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InsufficientERC20Amount", + inputs: [], + }, + { + type: "error", + name: "InsufficientETHAmount", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "OwnableInvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516125cc6100fd600039600081816114fb01528181611524015261196a01526125cc6000f3fe6080604052600436106101755760003560e01c80635b112591116100cb578063ae7a3a6f1161007f578063f2fde38b11610059578063f2fde38b14610414578063f340fa0114610434578063f45346dc1461044757600080fd5b8063ae7a3a6f146103b4578063b8969bd4146103d4578063dda79b75146103f457600080fd5b80638c6f037f116100b05780638c6f037f1461030e5780638da5cb5b1461032e578063ad3cb1cc1461036b57600080fd5b80635b112591146102d9578063715018a6146102f957600080fd5b806335c018db1161012d5780635131ab59116101075780635131ab591461027657806352d1902d1461029657806357bec62f146102b957600080fd5b806335c018db14610230578063485cc955146102435780634f1ef2861461026357600080fd5b80631cff79cd1161015e5780631cff79cd146101bc57806321e093b1146101e557806329c59b5d1461021d57600080fd5b806310188aef1461017a5780631b8b921d1461019c575b600080fd5b34801561018657600080fd5b5061019a6101953660046120e9565b610467565b005b3480156101a857600080fd5b5061019a6101b736600461214d565b610568565b6101cf6101ca36600461214d565b6105ba565b6040516101dc919061220e565b60405180910390f35b3480156101f157600080fd5b50600354610205906001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b61019a61022b36600461214d565b61065f565b61019a61023e36600461214d565b610784565b34801561024f57600080fd5b5061019a61025e366004612221565b61091c565b61019a610271366004612283565b610b49565b34801561028257600080fd5b5061019a61029136600461238a565b610b68565b3480156102a257600080fd5b506102ab610e6f565b6040519081526020016101dc565b3480156102c557600080fd5b50600254610205906001600160a01b031681565b3480156102e557600080fd5b50600154610205906001600160a01b031681565b34801561030557600080fd5b5061019a610e9e565b34801561031a57600080fd5b5061019a6103293660046123f9565b610eb2565b34801561033a57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610205565b34801561037757600080fd5b506101cf6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156103c057600080fd5b5061019a6103cf3660046120e9565b610f4f565b3480156103e057600080fd5b5061019a6103ef36600461238a565b611050565b34801561040057600080fd5b50600054610205906001600160a01b031681565b34801561042057600080fd5b5061019a61042f3660046120e9565b6111f4565b61019a6104423660046120e9565b611250565b34801561045357600080fd5b5061019a61046236600461244b565b611375565b6001546001600160a01b031633146104ab576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546001600160a01b0316156104ee576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811661052e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde384846040516105ad9291906124d0565b60405180910390a3505050565b6001546060906001600160a01b03163314610601576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061060e858585611420565b9050846001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34868660405161064d939291906124ec565b60405180910390a290505b9392505050565b34600003610699576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146106e6576040519150601f19603f3d011682016040523d82523d6000602084013e6106eb565b606091505b509091505080151560000361072c576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600087876040516107769493929190612506565b60405180910390a350505050565b6001546001600160a01b031633146107c8576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080846001600160a01b03163460405160006040518083038185875af1925050503d8060008114610816576040519150601f19603f3d011682016040523d82523d6000602084013e61081b565b606091505b509150915081610857576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b59061089e90879087906004016124d0565b600060405180830381600087803b1580156108b857600080fd5b505af11580156108cc573d6000803e3d6000fd5b50505050846001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c34868660405161090d939291906124ec565b60405180910390a25050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109675750825b905060008267ffffffffffffffff1660011480156109845750303b155b905081158015610992575080155b156109c9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610a2a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b0387161580610a4757506001600160a01b038616155b15610a7e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a87336114c7565b610a8f6114d8565b610a976114e0565b600180546001600160a01b03808a167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560038054928916929091169190911790558315610b405784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610b516114f0565b610b5a826115c0565b610b6482826115c8565b5050565b610b706116ec565b6000546001600160a01b03163314801590610b9657506002546001600160a01b03163314155b15610bcd576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003610c07576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c11858561176d565b610c47576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905286169063095ea7b3906044016020604051808303816000875af1158015610caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd3919061252f565b610d09576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d16858484611420565b9050610d22868661176d565b610d58576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610db8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc9190612551565b90508015610dee57610dee87826117fd565b856001600160a01b0316876001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382878787604051610e35939291906124ec565b60405180910390a35050610e6860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6000610e7961195f565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610ea66119c1565b610eb06000611a35565b565b83600003610eec576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ef7338486611abe565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a486868686604051610f409493929190612506565b60405180910390a35050505050565b6001546001600160a01b03163314610f93576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b031615610fd6576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116611016576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6110586116ec565b6000546001600160a01b0316331480159061107e57506002546001600160a01b03163314155b156110b5576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826000036110ef576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111036001600160a01b0386168585611c09565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638fcaa0b59061114a90859085906004016124d0565b600060405180830381600087803b15801561116457600080fd5b505af1158015611178573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78585856040516111c3939291906124ec565b60405180910390a3610e6860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6111fc6119c1565b6001600160a01b038116611244576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b61124d81611a35565b50565b3460000361128a576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146112d7576040519150601f19603f3d011682016040523d82523d6000602084013e6112dc565b606091505b509091505080151560000361131d576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b816000036113af576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba338284611abe565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a484846040516105ad9291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b6060600080856001600160a01b031634868660405161144092919061256a565b60006040518083038185875af1925050503d806000811461147d576040519150601f19603f3d011682016040523d82523d6000602084013e611482565b606091505b5091509150816114be576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b95945050505050565b6114cf611c7d565b61124d81611ce4565b610eb0611c7d565b6114e8611c7d565b610eb0611cec565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061158957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661157d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15610eb0576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61124d6119c1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611640575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261163d91810190612551565b60015b611681576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b038316600482015260240161123b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146116dd576040517faa1d49a40000000000000000000000000000000000000000000000000000000081526004810182905260240161123b565b6116e78383611cf4565b505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611767576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af11580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610658919061252f565b6003546001600160a01b039081169083160361191f576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af115801561187f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a3919061252f565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b15801561190357600080fd5b505af1158015611917573d6000803e3d6000fd5b505050505050565b600054610b64906001600160a01b03848116911683611c09565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610eb0576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336119f37f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610eb0576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161123b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6003546001600160a01b0390811690831603611bed57611ae96001600160a01b038316843084611d4a565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b79919061252f565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611bd957600080fd5b505af1158015610b40573d6000803e3d6000fd5b6000546116e7906001600160a01b038481169186911684611d4a565b6040516001600160a01b038381166024830152604482018390526116e791859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d89565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610eb0576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111fc611c7d565b611939611c7d565b611cfd82611e05565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611d42576116e78282611ead565b610b64611f1a565b6040516001600160a01b038481166024830152838116604483015260648201839052611d839186918216906323b872dd90608401611c36565b50505050565b6000611d9e6001600160a01b03841683611f52565b90508051600014158015611dc3575080806020019051810190611dc1919061252f565b155b156116e7576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260240161123b565b806001600160a01b03163b600003611e54576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260240161123b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611eca919061257a565b600060405180830381855af49150503d8060008114611f05576040519150601f19603f3d011682016040523d82523d6000602084013e611f0a565b606091505b50915091506114be858383611f60565b3415610eb0576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606061065883836000611fd5565b606082611f7557611f708261208b565b610658565b8151158015611f8c57506001600160a01b0384163b155b15611fce576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260240161123b565b5080610658565b606081471015612013576040517fcd78605900000000000000000000000000000000000000000000000000000000815230600482015260240161123b565b600080856001600160a01b0316848660405161202f919061257a565b60006040518083038185875af1925050503d806000811461206c576040519150601f19603f3d011682016040523d82523d6000602084013e612071565b606091505b5091509150612081868383611f60565b9695505050505050565b80511561209b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b03811681146120e457600080fd5b919050565b6000602082840312156120fb57600080fd5b610658826120cd565b60008083601f84011261211657600080fd5b50813567ffffffffffffffff81111561212e57600080fd5b60208301915083602082850101111561214657600080fd5b9250929050565b60008060006040848603121561216257600080fd5b61216b846120cd565b9250602084013567ffffffffffffffff81111561218757600080fd5b61219386828701612104565b9497909650939450505050565b60005b838110156121bb5781810151838201526020016121a3565b50506000910152565b600081518084526121dc8160208601602086016121a0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061065860208301846121c4565b6000806040838503121561223457600080fd5b61223d836120cd565b915061224b602084016120cd565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561229657600080fd5b61229f836120cd565b9150602083013567ffffffffffffffff8111156122bb57600080fd5b8301601f810185136122cc57600080fd5b803567ffffffffffffffff8111156122e6576122e6612254565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561235257612352612254565b60405281815282820160200187101561236a57600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000806000806000608086880312156123a257600080fd5b6123ab866120cd565b94506123b9602087016120cd565b935060408601359250606086013567ffffffffffffffff8111156123dc57600080fd5b6123e888828901612104565b969995985093965092949392505050565b60008060008060006080868803121561241157600080fd5b61241a866120cd565b94506020860135935061242f604087016120cd565b9250606086013567ffffffffffffffff8111156123dc57600080fd5b60008060006060848603121561246057600080fd5b612469846120cd565b92506020840135915061247e604085016120cd565b90509250925092565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6020815260006124e4602083018486612487565b949350505050565b8381526040602082015260006114be604083018486612487565b8481526001600160a01b0384166020820152606060408201526000612081606083018486612487565b60006020828403121561254157600080fd5b8151801515811461065857600080fd5b60006020828403121561256357600080fd5b5051919050565b8183823760009101908152919050565b6000825161258c8184602087016121a0565b919091019291505056fea2646970667358221220e61dbe900f49590d1bcc0dbd88158d680a474b3ee3da9c5f5d8252f09253a6d964736f6c634300081a0033"; + +type GatewayEVMConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: GatewayEVMConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class GatewayEVM__factory extends ContractFactory { + constructor(...args: GatewayEVMConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + GatewayEVM & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): GatewayEVM__factory { + return super.connect(runner) as GatewayEVM__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): GatewayEVMInterface { + return new Interface(_abi) as GatewayEVMInterface; + } + static connect(address: string, runner?: ContractRunner | null): GatewayEVM { + return new Contract(address, _abi, runner) as unknown as GatewayEVM; + } +} diff --git a/v2/typechain-types/factories/GatewayZEVM__factory.ts b/v2/typechain-types/factories/GatewayZEVM__factory.ts new file mode 100644 index 00000000..d1a8225b --- /dev/null +++ b/v2/typechain-types/factories/GatewayZEVM__factory.ts @@ -0,0 +1,808 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { GatewayZEVM, GatewayZEVMInterface } from "../GatewayZEVM"; + +const _abi = [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "receive", + stateMutability: "payable", + }, + { + type: "function", + name: "FUNGIBLE_MODULE_ADDRESS", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "call", + inputs: [ + { + name: "receiver", + type: "bytes", + internalType: "bytes", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "depositAndCall", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct zContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "depositAndCall", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct zContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "depositAndRevert", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct revertContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "execute", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct zContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "executeRevert", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct revertContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "_zetaToken", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "owner", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferOwnership", + inputs: [ + { + name: "newOwner", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "receiver", + type: "bytes", + internalType: "bytes", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndCall", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndCall", + inputs: [ + { + name: "receiver", + type: "bytes", + internalType: "bytes", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "zetaToken", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "Call", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "message", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "OwnershipTransferred", + inputs: [ + { + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdrawal", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "zrc20", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "to", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "gasfee", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "protocolFlatFee", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "message", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "CallerIsNotFungibleModule", + inputs: [], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "FailedZetaSent", + inputs: [], + }, + { + type: "error", + name: "GasFeeTransferFailed", + inputs: [], + }, + { + type: "error", + name: "InsufficientZRC20Amount", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "InvalidTarget", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "OnlyWZETAOrFungible", + inputs: [], + }, + { + type: "error", + name: "OwnableInvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "WithdrawalFailed", + inputs: [], + }, + { + type: "error", + name: "ZRC20BurnFailed", + inputs: [], + }, + { + type: "error", + name: "ZRC20TransferFailed", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516125536100fd600039600081816117c7015281816117f001526119a001526125536000f3fe6080604052600436106101635760003560e01c80635af65967116100c0578063bcf7f32b11610074578063c4d66de811610059578063c4d66de814610458578063f2fde38b14610478578063f45346dc1461049857600080fd5b8063bcf7f32b14610418578063c39aca371461043857600080fd5b80637993c1e0116100a55780637993c1e0146103655780638da5cb5b14610385578063ad3cb1cc146103c257600080fd5b80635af6596714610330578063715018a61461035057600080fd5b80632e1a7d4d116101175780633ce4a5bc116100fc5780633ce4a5bc146102d25780634f1ef286146102fa57806352d1902d1461030d57600080fd5b80632e1a7d4d14610292578063309f5004146102b257600080fd5b806321501a951161014857806321501a951461021557806321e093b114610235578063267e75a01461027257600080fd5b80630ac7c44c146101d5578063135390f9146101f557600080fd5b366101d0576000546001600160a01b0316331480159061019757503373735b14bb79463307aacbed86daf3322b1e6226ab14155b156101ce576040517f229930b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b3480156101e157600080fd5b506101ce6101f0366004611f02565b6104b8565b34801561020157600080fd5b506101ce610210366004611f85565b610533565b34801561022157600080fd5b506101ce610230366004611ff8565b61061d565b34801561024157600080fd5b50600054610255906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027e57600080fd5b506101ce61028d366004612084565b610768565b34801561029e57600080fd5b506101ce6102ad3660046120b7565b610813565b3480156102be57600080fd5b506101ce6102cd3660046120d0565b6108ee565b3480156102de57600080fd5b5061025573735b14bb79463307aacbed86daf3322b1e6226ab81565b6101ce61030836600461216e565b6109c2565b34801561031957600080fd5b506103226109e1565b604051908152602001610269565b34801561033c57600080fd5b506101ce61034b3660046120d0565b610a10565b34801561035c57600080fd5b506101ce610ba1565b34801561037157600080fd5b506101ce6103803660046121be565b610bb5565b34801561039157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610255565b3480156103ce57600080fd5b5061040b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516102699190612249565b34801561042457600080fd5b506101ce6104333660046120d0565b610caa565b34801561044457600080fd5b506101ce6104533660046120d0565b610d44565b34801561046457600080fd5b506101ce61047336600461225c565b610ed5565b34801561048457600080fd5b506101ce61049336600461225c565b6110d8565b3480156104a457600080fd5b506101ce6104b3366004612279565b611131565b6104c061127a565b336001600160a01b03167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f8484846040516104fd939291906122db565b60405180910390a261052e60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050565b61053b61127a565b60006105478383611321565b9050336001600160a01b03167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771683868685876001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da919061230b565b6040516105eb959493929190612324565b60405180910390a25061052e60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461066a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab148061069d57506001600160a01b03831630145b156106d4576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106de84846115ee565b6000546040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b038086169263de43156e9261072f928a921690899088908890600401612415565b600060405180830381600087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b505050505050505050565b61077061127a565b61078e8373735b14bb79463307aacbed86daf3322b1e6226ab6115ee565b6000546040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015233917f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716916001600160a01b039091169060340160408051601f19818403018152908290526104fd9291889060009081908a908a9061245c565b61081b61127a565b6108398173735b14bb79463307aacbed86daf3322b1e6226ab6115ee565b6000546040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015233917f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716916001600160a01b039091169060340160408051601f19818403018152908290526108ba929186906000908190612324565b60405180910390a26108eb60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461093b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f69582bee0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906369582bee906109889089908990899088908890600401612415565b600060405180830381600087803b1580156109a257600080fd5b505af11580156109b6573d6000803e3d6000fd5b50505050505050505050565b6109ca6117bc565b6109d38261188c565b6109dd8282611894565b5050565b60006109eb611995565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610a5d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab1480610a9057506001600160a01b03831630145b15610ac7576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015610b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5391906124b1565b506040517f69582bee0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906369582bee906109889089908990899088908890600401612415565b610ba96119f7565b610bb36000611a6b565b565b610bbd61127a565b6000610bc98585611321565b9050336001600160a01b03167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771685888885896001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5c919061230b565b8989604051610c71979695949392919061245c565b60405180910390a250610ca360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610cf7576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063de43156e906109889089908990899088908890600401612415565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610d91576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab1480610dc457506001600160a01b03831630145b15610dfb576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015610e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8791906124b1565b506040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063de43156e906109889089908990899088908890600401612415565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610f205750825b905060008267ffffffffffffffff166001148015610f3d5750303b155b905081158015610f4b575080155b15610f82576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610fe35784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038616611023576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61102c33611af4565b611034611b05565b61103c611b0d565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03881617905583156110d05784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b6110e06119f7565b6001600160a01b038116611128576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6108eb81611a6b565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461117e576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811673735b14bb79463307aacbed86daf3322b1e6226ab14806111b157506001600160a01b03811630145b156111e8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152602482018490528416906347e7ef24906044016020604051808303816000875af1158015611250573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127491906124b1565b50505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016112f5576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6000806000836001600160a01b031663d9eeebed6040518163ffffffff1660e01b81526004016040805180830381865afa158015611363573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138791906124d3565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab60248201526044810182905291935091506001600160a01b038316906323b872dd906064016020604051808303816000875af115801561140c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143091906124b1565b611466576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526001600160a01b038516906323b872dd906064016020604051808303816000875af11580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f691906124b1565b61152c576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038516906342966c68906024016020604051808303816000875af115801561158c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b091906124b1565b6115e6576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b949350505050565b6000546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561165e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168291906124b1565b6116b8576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561171757600080fd5b505af115801561172b573d6000803e3d6000fd5b505050506000816001600160a01b03168360405160006040518083038185875af1925050503d806000811461177c576040519150601f19603f3d011682016040523d82523d6000602084013e611781565b606091505b505090508061052e576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061185557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118497f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15610bb3576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108eb6119f7565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156118ee575060408051601f3d908101601f191682019092526118eb9181019061230b565b60015b61192f576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b038316600482015260240161111f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461198b576040517faa1d49a40000000000000000000000000000000000000000000000000000000081526004810182905260240161111f565b61052e8383611b1d565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bb3576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33611a297f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610bb3576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161111f565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b611afc611b73565b6108eb81611bda565b610bb3611b73565b611b15611b73565b610bb3611be2565b611b2682611bea565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b6b5761052e8282611c92565b6109dd611d08565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610bb3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110e0611b73565b6112fb611b73565b806001600160a01b03163b600003611c39576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260240161111f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611caf9190612501565b600060405180830381855af49150503d8060008114611cea576040519150601f19603f3d011682016040523d82523d6000602084013e611cef565b606091505b5091509150611cff858383611d40565b95945050505050565b3415610bb3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606082611d5557611d5082611db8565b611db1565b8151158015611d6c57506001600160a01b0384163b155b15611dae576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260240161111f565b50805b9392505050565b805115611dc85780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112611e3a57600080fd5b813567ffffffffffffffff811115611e5457611e54611dfa565b604051601f19603f601f19601f8501160116810181811067ffffffffffffffff82111715611e8457611e84611dfa565b604052818152838201602001851015611e9c57600080fd5b816020850160208301376000918101602001919091529392505050565b60008083601f840112611ecb57600080fd5b50813567ffffffffffffffff811115611ee357600080fd5b602083019150836020828501011115611efb57600080fd5b9250929050565b600080600060408486031215611f1757600080fd5b833567ffffffffffffffff811115611f2e57600080fd5b611f3a86828701611e29565b935050602084013567ffffffffffffffff811115611f5757600080fd5b611f6386828701611eb9565b9497909650939450505050565b6001600160a01b03811681146108eb57600080fd5b600080600060608486031215611f9a57600080fd5b833567ffffffffffffffff811115611fb157600080fd5b611fbd86828701611e29565b935050602084013591506040840135611fd581611f70565b809150509250925092565b600060608284031215611ff257600080fd5b50919050565b60008060008060006080868803121561201057600080fd5b853567ffffffffffffffff81111561202757600080fd5b61203388828901611fe0565b95505060208601359350604086013561204b81611f70565b9250606086013567ffffffffffffffff81111561206757600080fd5b61207388828901611eb9565b969995985093965092949392505050565b60008060006040848603121561209957600080fd5b83359250602084013567ffffffffffffffff811115611f5757600080fd5b6000602082840312156120c957600080fd5b5035919050565b60008060008060008060a087890312156120e957600080fd5b863567ffffffffffffffff81111561210057600080fd5b61210c89828a01611fe0565b965050602087013561211d81611f70565b945060408701359350606087013561213481611f70565b9250608087013567ffffffffffffffff81111561215057600080fd5b61215c89828a01611eb9565b979a9699509497509295939492505050565b6000806040838503121561218157600080fd5b823561218c81611f70565b9150602083013567ffffffffffffffff8111156121a857600080fd5b6121b485828601611e29565b9150509250929050565b6000806000806000608086880312156121d657600080fd5b853567ffffffffffffffff8111156121ed57600080fd5b61203388828901611e29565b60005b838110156122145781810151838201526020016121fc565b50506000910152565b600081518084526122358160208601602086016121f9565b601f01601f19169290920160200192915050565b602081526000611db1602083018461221d565b60006020828403121561226e57600080fd5b8135611db181611f70565b60008060006060848603121561228e57600080fd5b833561229981611f70565b9250602084013591506040840135611fd581611f70565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6040815260006122ee604083018661221d565b82810360208401526123018185876122b0565b9695505050505050565b60006020828403121561231d57600080fd5b5051919050565b6001600160a01b038616815260c06020820152600061234660c083018761221d565b6040830195909552506060810192909252608082015280820360a0909101526000815260200192915050565b600081357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18336030181126123a657600080fd5b820160208101903567ffffffffffffffff8111156123c357600080fd5b8036038213156123d257600080fd5b606085526123e46060860182846122b0565b91505060208301356123f581611f70565b6001600160a01b0316602085015260409283013592909301919091525090565b6080815260006124286080830188612372565b6001600160a01b038716602084015285604084015282810360608401526124508185876122b0565b98975050505050505050565b6001600160a01b038816815260c06020820152600061247e60c083018961221d565b87604084015286606084015285608084015282810360a08401526124a38185876122b0565b9a9950505050505050505050565b6000602082840312156124c357600080fd5b81518015158114611db157600080fd5b600080604083850312156124e657600080fd5b82516124f181611f70565b6020939093015192949293505050565b600082516125138184602087016121f9565b919091019291505056fea2646970667358221220d8d50a67f6aea88515e2af6733e3b64f97273a2f0b00d518adc713b4a35c370164736f6c634300081a0033"; + +type GatewayZEVMConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: GatewayZEVMConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class GatewayZEVM__factory extends ContractFactory { + constructor(...args: GatewayZEVMConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + GatewayZEVM & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): GatewayZEVM__factory { + return super.connect(runner) as GatewayZEVM__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): GatewayZEVMInterface { + return new Interface(_abi) as GatewayZEVMInterface; + } + static connect(address: string, runner?: ContractRunner | null): GatewayZEVM { + return new Contract(address, _abi, runner) as unknown as GatewayZEVM; + } +} diff --git a/v2/typechain-types/factories/IBeacon__factory.ts b/v2/typechain-types/factories/IBeacon__factory.ts new file mode 100644 index 00000000..055aee58 --- /dev/null +++ b/v2/typechain-types/factories/IBeacon__factory.ts @@ -0,0 +1,32 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IBeacon, IBeaconInterface } from "../IBeacon"; + +const _abi = [ + { + type: "function", + name: "implementation", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, +] as const; + +export class IBeacon__factory { + static readonly abi = _abi; + static createInterface(): IBeaconInterface { + return new Interface(_abi) as IBeaconInterface; + } + static connect(address: string, runner?: ContractRunner | null): IBeacon { + return new Contract(address, _abi, runner) as unknown as IBeacon; + } +} diff --git a/v2/typechain-types/factories/IERC165__factory.ts b/v2/typechain-types/factories/IERC165__factory.ts new file mode 100644 index 00000000..77202ee7 --- /dev/null +++ b/v2/typechain-types/factories/IERC165__factory.ts @@ -0,0 +1,38 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IERC165, IERC165Interface } from "../IERC165"; + +const _abi = [ + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceID", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, +] as const; + +export class IERC165__factory { + static readonly abi = _abi; + static createInterface(): IERC165Interface { + return new Interface(_abi) as IERC165Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC165 { + return new Contract(address, _abi, runner) as unknown as IERC165; + } +} diff --git a/v2/typechain-types/factories/IERC1967__factory.ts b/v2/typechain-types/factories/IERC1967__factory.ts new file mode 100644 index 00000000..a1610365 --- /dev/null +++ b/v2/typechain-types/factories/IERC1967__factory.ts @@ -0,0 +1,64 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IERC1967, IERC1967Interface } from "../IERC1967"; + +const _abi = [ + { + type: "event", + name: "AdminChanged", + inputs: [ + { + name: "previousAdmin", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "newAdmin", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "BeaconUpgraded", + inputs: [ + { + name: "beacon", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, +] as const; + +export class IERC1967__factory { + static readonly abi = _abi; + static createInterface(): IERC1967Interface { + return new Interface(_abi) as IERC1967Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC1967 { + return new Contract(address, _abi, runner) as unknown as IERC1967; + } +} diff --git a/v2/typechain-types/factories/IERC20CustodyNew.sol/IERC20CustodyNewErrors__factory.ts b/v2/typechain-types/factories/IERC20CustodyNew.sol/IERC20CustodyNewErrors__factory.ts new file mode 100644 index 00000000..de0b1108 --- /dev/null +++ b/v2/typechain-types/factories/IERC20CustodyNew.sol/IERC20CustodyNewErrors__factory.ts @@ -0,0 +1,39 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20CustodyNewErrors, + IERC20CustodyNewErrorsInterface, +} from "../../IERC20CustodyNew.sol/IERC20CustodyNewErrors"; + +const _abi = [ + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +export class IERC20CustodyNewErrors__factory { + static readonly abi = _abi; + static createInterface(): IERC20CustodyNewErrorsInterface { + return new Interface(_abi) as IERC20CustodyNewErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20CustodyNewErrors { + return new Contract( + address, + _abi, + runner + ) as unknown as IERC20CustodyNewErrors; + } +} diff --git a/v2/typechain-types/factories/IERC20CustodyNew.sol/IERC20CustodyNewEvents__factory.ts b/v2/typechain-types/factories/IERC20CustodyNew.sol/IERC20CustodyNewEvents__factory.ts new file mode 100644 index 00000000..ab4aec0c --- /dev/null +++ b/v2/typechain-types/factories/IERC20CustodyNew.sol/IERC20CustodyNewEvents__factory.ts @@ -0,0 +1,116 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20CustodyNewEvents, + IERC20CustodyNewEventsInterface, +} from "../../IERC20CustodyNew.sol/IERC20CustodyNewEvents"; + +const _abi = [ + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndCall", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndRevert", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, +] as const; + +export class IERC20CustodyNewEvents__factory { + static readonly abi = _abi; + static createInterface(): IERC20CustodyNewEventsInterface { + return new Interface(_abi) as IERC20CustodyNewEventsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20CustodyNewEvents { + return new Contract( + address, + _abi, + runner + ) as unknown as IERC20CustodyNewEvents; + } +} diff --git a/v2/typechain-types/factories/IERC20CustodyNew.sol/index.ts b/v2/typechain-types/factories/IERC20CustodyNew.sol/index.ts new file mode 100644 index 00000000..9f3d2112 --- /dev/null +++ b/v2/typechain-types/factories/IERC20CustodyNew.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC20CustodyNewErrors__factory } from "./IERC20CustodyNewErrors__factory"; +export { IERC20CustodyNewEvents__factory } from "./IERC20CustodyNewEvents__factory"; diff --git a/v2/typechain-types/factories/IERC20Metadata__factory.ts b/v2/typechain-types/factories/IERC20Metadata__factory.ts new file mode 100644 index 00000000..fff75af5 --- /dev/null +++ b/v2/typechain-types/factories/IERC20Metadata__factory.ts @@ -0,0 +1,247 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20Metadata, + IERC20MetadataInterface, +} from "../IERC20Metadata"; + +const _abi = [ + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class IERC20Metadata__factory { + static readonly abi = _abi; + static createInterface(): IERC20MetadataInterface { + return new Interface(_abi) as IERC20MetadataInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20Metadata { + return new Contract(address, _abi, runner) as unknown as IERC20Metadata; + } +} diff --git a/v2/typechain-types/factories/IERC20Permit__factory.ts b/v2/typechain-types/factories/IERC20Permit__factory.ts new file mode 100644 index 00000000..24090d2d --- /dev/null +++ b/v2/typechain-types/factories/IERC20Permit__factory.ts @@ -0,0 +1,97 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IERC20Permit, IERC20PermitInterface } from "../IERC20Permit"; + +const _abi = [ + { + type: "function", + name: "DOMAIN_SEPARATOR", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "nonces", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "permit", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + { + name: "deadline", + type: "uint256", + internalType: "uint256", + }, + { + name: "v", + type: "uint8", + internalType: "uint8", + }, + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, +] as const; + +export class IERC20Permit__factory { + static readonly abi = _abi; + static createInterface(): IERC20PermitInterface { + return new Interface(_abi) as IERC20PermitInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20Permit { + return new Contract(address, _abi, runner) as unknown as IERC20Permit; + } +} diff --git a/v2/typechain-types/factories/IERC20__factory.ts b/v2/typechain-types/factories/IERC20__factory.ts new file mode 100644 index 00000000..b55e3c17 --- /dev/null +++ b/v2/typechain-types/factories/IERC20__factory.ts @@ -0,0 +1,241 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IERC20, IERC20Interface } from "../IERC20"; + +const _abi = [ + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class IERC20__factory { + static readonly abi = _abi; + static createInterface(): IERC20Interface { + return new Interface(_abi) as IERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC20 { + return new Contract(address, _abi, runner) as unknown as IERC20; + } +} diff --git a/v2/typechain-types/factories/IERC721.sol/IERC721Enumerable__factory.ts b/v2/typechain-types/factories/IERC721.sol/IERC721Enumerable__factory.ts new file mode 100644 index 00000000..2d67ea00 --- /dev/null +++ b/v2/typechain-types/factories/IERC721.sol/IERC721Enumerable__factory.ts @@ -0,0 +1,366 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC721Enumerable, + IERC721EnumerableInterface, +} from "../../IERC721.sol/IERC721Enumerable"; + +const _abi = [ + { + type: "function", + name: "approve", + inputs: [ + { + name: "_approved", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "_owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getApproved", + inputs: [ + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isApprovedForAll", + inputs: [ + { + name: "_owner", + type: "address", + internalType: "address", + }, + { + name: "_operator", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "ownerOf", + inputs: [ + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_to", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_to", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "setApprovalForAll", + inputs: [ + { + name: "_operator", + type: "address", + internalType: "address", + }, + { + name: "_approved", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceID", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tokenByIndex", + inputs: [ + { + name: "_index", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tokenOfOwnerByIndex", + inputs: [ + { + name: "_owner", + type: "address", + internalType: "address", + }, + { + name: "_index", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_to", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "_owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_approved", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ApprovalForAll", + inputs: [ + { + name: "_owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_approved", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "_from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class IERC721Enumerable__factory { + static readonly abi = _abi; + static createInterface(): IERC721EnumerableInterface { + return new Interface(_abi) as IERC721EnumerableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC721Enumerable { + return new Contract(address, _abi, runner) as unknown as IERC721Enumerable; + } +} diff --git a/v2/typechain-types/factories/IERC721.sol/IERC721Metadata__factory.ts b/v2/typechain-types/factories/IERC721.sol/IERC721Metadata__factory.ts new file mode 100644 index 00000000..49408fb9 --- /dev/null +++ b/v2/typechain-types/factories/IERC721.sol/IERC721Metadata__factory.ts @@ -0,0 +1,355 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC721Metadata, + IERC721MetadataInterface, +} from "../../IERC721.sol/IERC721Metadata"; + +const _abi = [ + { + type: "function", + name: "approve", + inputs: [ + { + name: "_approved", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "_owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getApproved", + inputs: [ + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isApprovedForAll", + inputs: [ + { + name: "_owner", + type: "address", + internalType: "address", + }, + { + name: "_operator", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "_name", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "ownerOf", + inputs: [ + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_to", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_to", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "setApprovalForAll", + inputs: [ + { + name: "_operator", + type: "address", + internalType: "address", + }, + { + name: "_approved", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceID", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "_symbol", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tokenURI", + inputs: [ + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_to", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "_owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_approved", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ApprovalForAll", + inputs: [ + { + name: "_owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_approved", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "_from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class IERC721Metadata__factory { + static readonly abi = _abi; + static createInterface(): IERC721MetadataInterface { + return new Interface(_abi) as IERC721MetadataInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC721Metadata { + return new Contract(address, _abi, runner) as unknown as IERC721Metadata; + } +} diff --git a/v2/typechain-types/factories/IERC721.sol/IERC721TokenReceiver__factory.ts b/v2/typechain-types/factories/IERC721.sol/IERC721TokenReceiver__factory.ts new file mode 100644 index 00000000..07fff32e --- /dev/null +++ b/v2/typechain-types/factories/IERC721.sol/IERC721TokenReceiver__factory.ts @@ -0,0 +1,63 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC721TokenReceiver, + IERC721TokenReceiverInterface, +} from "../../IERC721.sol/IERC721TokenReceiver"; + +const _abi = [ + { + type: "function", + name: "onERC721Received", + inputs: [ + { + name: "_operator", + type: "address", + internalType: "address", + }, + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + { + name: "_data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "", + type: "bytes4", + internalType: "bytes4", + }, + ], + stateMutability: "nonpayable", + }, +] as const; + +export class IERC721TokenReceiver__factory { + static readonly abi = _abi; + static createInterface(): IERC721TokenReceiverInterface { + return new Interface(_abi) as IERC721TokenReceiverInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC721TokenReceiver { + return new Contract( + address, + _abi, + runner + ) as unknown as IERC721TokenReceiver; + } +} diff --git a/v2/typechain-types/factories/IERC721.sol/IERC721__factory.ts b/v2/typechain-types/factories/IERC721.sol/IERC721__factory.ts new file mode 100644 index 00000000..f4b91ccd --- /dev/null +++ b/v2/typechain-types/factories/IERC721.sol/IERC721__factory.ts @@ -0,0 +1,304 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IERC721, IERC721Interface } from "../../IERC721.sol/IERC721"; + +const _abi = [ + { + type: "function", + name: "approve", + inputs: [ + { + name: "_approved", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "_owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getApproved", + inputs: [ + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isApprovedForAll", + inputs: [ + { + name: "_owner", + type: "address", + internalType: "address", + }, + { + name: "_operator", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "ownerOf", + inputs: [ + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_to", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_to", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "setApprovalForAll", + inputs: [ + { + name: "_operator", + type: "address", + internalType: "address", + }, + { + name: "_approved", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceID", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_to", + type: "address", + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "_owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_approved", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ApprovalForAll", + inputs: [ + { + name: "_owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_approved", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "_from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class IERC721__factory { + static readonly abi = _abi; + static createInterface(): IERC721Interface { + return new Interface(_abi) as IERC721Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC721 { + return new Contract(address, _abi, runner) as unknown as IERC721; + } +} diff --git a/v2/typechain-types/factories/IERC721.sol/index.ts b/v2/typechain-types/factories/IERC721.sol/index.ts new file mode 100644 index 00000000..93147b21 --- /dev/null +++ b/v2/typechain-types/factories/IERC721.sol/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC721__factory } from "./IERC721__factory"; +export { IERC721Enumerable__factory } from "./IERC721Enumerable__factory"; +export { IERC721Metadata__factory } from "./IERC721Metadata__factory"; +export { IERC721TokenReceiver__factory } from "./IERC721TokenReceiver__factory"; diff --git a/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts new file mode 100644 index 00000000..be6c8b1a --- /dev/null +++ b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts @@ -0,0 +1,65 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayEVMErrors, + IGatewayEVMErrorsInterface, +} from "../../IGatewayEVM.sol/IGatewayEVMErrors"; + +const _abi = [ + { + type: "error", + name: "ApprovalFailed", + inputs: [], + }, + { + type: "error", + name: "CustodyInitialized", + inputs: [], + }, + { + type: "error", + name: "DepositFailed", + inputs: [], + }, + { + type: "error", + name: "ExecutionFailed", + inputs: [], + }, + { + type: "error", + name: "InsufficientERC20Amount", + inputs: [], + }, + { + type: "error", + name: "InsufficientETHAmount", + inputs: [], + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +export class IGatewayEVMErrors__factory { + static readonly abi = _abi; + static createInterface(): IGatewayEVMErrorsInterface { + return new Interface(_abi) as IGatewayEVMErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IGatewayEVMErrors { + return new Contract(address, _abi, runner) as unknown as IGatewayEVMErrors; + } +} diff --git a/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts new file mode 100644 index 00000000..aff49e3a --- /dev/null +++ b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts @@ -0,0 +1,199 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayEVMEvents, + IGatewayEVMEventsInterface, +} from "../../IGatewayEVM.sol/IGatewayEVMEvents"; + +const _abi = [ + { + type: "event", + name: "Call", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "payload", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "asset", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "payload", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Executed", + inputs: [ + { + name: "destination", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ExecutedWithERC20", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Reverted", + inputs: [ + { + name: "destination", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RevertedWithERC20", + inputs: [ + { + name: "token", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, +] as const; + +export class IGatewayEVMEvents__factory { + static readonly abi = _abi; + static createInterface(): IGatewayEVMEventsInterface { + return new Interface(_abi) as IGatewayEVMEventsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IGatewayEVMEvents { + return new Contract(address, _abi, runner) as unknown as IGatewayEVMEvents; + } +} diff --git a/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVM__factory.ts b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVM__factory.ts new file mode 100644 index 00000000..46d1bca3 --- /dev/null +++ b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVM__factory.ts @@ -0,0 +1,102 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayEVM, + IGatewayEVMInterface, +} from "../../IGatewayEVM.sol/IGatewayEVM"; + +const _abi = [ + { + type: "function", + name: "execute", + inputs: [ + { + name: "destination", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "payable", + }, + { + type: "function", + name: "executeWithERC20", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revertWithERC20", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, +] as const; + +export class IGatewayEVM__factory { + static readonly abi = _abi; + static createInterface(): IGatewayEVMInterface { + return new Interface(_abi) as IGatewayEVMInterface; + } + static connect(address: string, runner?: ContractRunner | null): IGatewayEVM { + return new Contract(address, _abi, runner) as unknown as IGatewayEVM; + } +} diff --git a/v2/typechain-types/factories/IGatewayEVM.sol/Revertable__factory.ts b/v2/typechain-types/factories/IGatewayEVM.sol/Revertable__factory.ts new file mode 100644 index 00000000..75f50695 --- /dev/null +++ b/v2/typechain-types/factories/IGatewayEVM.sol/Revertable__factory.ts @@ -0,0 +1,35 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + Revertable, + RevertableInterface, +} from "../../IGatewayEVM.sol/Revertable"; + +const _abi = [ + { + type: "function", + name: "onRevert", + inputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, +] as const; + +export class Revertable__factory { + static readonly abi = _abi; + static createInterface(): RevertableInterface { + return new Interface(_abi) as RevertableInterface; + } + static connect(address: string, runner?: ContractRunner | null): Revertable { + return new Contract(address, _abi, runner) as unknown as Revertable; + } +} diff --git a/v2/typechain-types/factories/IGatewayEVM.sol/index.ts b/v2/typechain-types/factories/IGatewayEVM.sol/index.ts new file mode 100644 index 00000000..5f406b5d --- /dev/null +++ b/v2/typechain-types/factories/IGatewayEVM.sol/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IGatewayEVM__factory } from "./IGatewayEVM__factory"; +export { IGatewayEVMErrors__factory } from "./IGatewayEVMErrors__factory"; +export { IGatewayEVMEvents__factory } from "./IGatewayEVMEvents__factory"; +export { Revertable__factory } from "./Revertable__factory"; diff --git a/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts new file mode 100644 index 00000000..28a247d5 --- /dev/null +++ b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts @@ -0,0 +1,70 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayZEVMErrors, + IGatewayZEVMErrorsInterface, +} from "../../IGatewayZEVM.sol/IGatewayZEVMErrors"; + +const _abi = [ + { + type: "error", + name: "CallerIsNotFungibleModule", + inputs: [], + }, + { + type: "error", + name: "FailedZetaSent", + inputs: [], + }, + { + type: "error", + name: "GasFeeTransferFailed", + inputs: [], + }, + { + type: "error", + name: "InsufficientZRC20Amount", + inputs: [], + }, + { + type: "error", + name: "InvalidTarget", + inputs: [], + }, + { + type: "error", + name: "OnlyWZETAOrFungible", + inputs: [], + }, + { + type: "error", + name: "WithdrawalFailed", + inputs: [], + }, + { + type: "error", + name: "ZRC20BurnFailed", + inputs: [], + }, + { + type: "error", + name: "ZRC20TransferFailed", + inputs: [], + }, +] as const; + +export class IGatewayZEVMErrors__factory { + static readonly abi = _abi; + static createInterface(): IGatewayZEVMErrorsInterface { + return new Interface(_abi) as IGatewayZEVMErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IGatewayZEVMErrors { + return new Contract(address, _abi, runner) as unknown as IGatewayZEVMErrors; + } +} diff --git a/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts new file mode 100644 index 00000000..c9d953f6 --- /dev/null +++ b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts @@ -0,0 +1,99 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayZEVMEvents, + IGatewayZEVMEventsInterface, +} from "../../IGatewayZEVM.sol/IGatewayZEVMEvents"; + +const _abi = [ + { + type: "event", + name: "Call", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "message", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdrawal", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "zrc20", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "to", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "gasfee", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "protocolFlatFee", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "message", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, +] as const; + +export class IGatewayZEVMEvents__factory { + static readonly abi = _abi; + static createInterface(): IGatewayZEVMEventsInterface { + return new Interface(_abi) as IGatewayZEVMEventsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IGatewayZEVMEvents { + return new Contract(address, _abi, runner) as unknown as IGatewayZEVMEvents; + } +} diff --git a/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVM__factory.ts b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVM__factory.ts new file mode 100644 index 00000000..149b91e6 --- /dev/null +++ b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVM__factory.ts @@ -0,0 +1,217 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayZEVM, + IGatewayZEVMInterface, +} from "../../IGatewayZEVM.sol/IGatewayZEVM"; + +const _abi = [ + { + type: "function", + name: "call", + inputs: [ + { + name: "receiver", + type: "bytes", + internalType: "bytes", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "depositAndCall", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct zContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "execute", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct zContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "receiver", + type: "bytes", + internalType: "bytes", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndCall", + inputs: [ + { + name: "receiver", + type: "bytes", + internalType: "bytes", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, +] as const; + +export class IGatewayZEVM__factory { + static readonly abi = _abi; + static createInterface(): IGatewayZEVMInterface { + return new Interface(_abi) as IGatewayZEVMInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IGatewayZEVM { + return new Contract(address, _abi, runner) as unknown as IGatewayZEVM; + } +} diff --git a/v2/typechain-types/factories/IGatewayZEVM.sol/index.ts b/v2/typechain-types/factories/IGatewayZEVM.sol/index.ts new file mode 100644 index 00000000..0b6212ee --- /dev/null +++ b/v2/typechain-types/factories/IGatewayZEVM.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IGatewayZEVM__factory } from "./IGatewayZEVM__factory"; +export { IGatewayZEVMErrors__factory } from "./IGatewayZEVMErrors__factory"; +export { IGatewayZEVMEvents__factory } from "./IGatewayZEVMEvents__factory"; diff --git a/v2/typechain-types/factories/IMulticall3__factory.ts b/v2/typechain-types/factories/IMulticall3__factory.ts new file mode 100644 index 00000000..199236db --- /dev/null +++ b/v2/typechain-types/factories/IMulticall3__factory.ts @@ -0,0 +1,457 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IMulticall3, IMulticall3Interface } from "../IMulticall3"; + +const _abi = [ + { + type: "function", + name: "aggregate", + inputs: [ + { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call[]", + components: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "callData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + outputs: [ + { + name: "blockNumber", + type: "uint256", + internalType: "uint256", + }, + { + name: "returnData", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + stateMutability: "payable", + }, + { + type: "function", + name: "aggregate3", + inputs: [ + { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call3[]", + components: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "allowFailure", + type: "bool", + internalType: "bool", + }, + { + name: "callData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + outputs: [ + { + name: "returnData", + type: "tuple[]", + internalType: "struct IMulticall3.Result[]", + components: [ + { + name: "success", + type: "bool", + internalType: "bool", + }, + { + name: "returnData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + stateMutability: "payable", + }, + { + type: "function", + name: "aggregate3Value", + inputs: [ + { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call3Value[]", + components: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "allowFailure", + type: "bool", + internalType: "bool", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + { + name: "callData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + outputs: [ + { + name: "returnData", + type: "tuple[]", + internalType: "struct IMulticall3.Result[]", + components: [ + { + name: "success", + type: "bool", + internalType: "bool", + }, + { + name: "returnData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + stateMutability: "payable", + }, + { + type: "function", + name: "blockAndAggregate", + inputs: [ + { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call[]", + components: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "callData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + outputs: [ + { + name: "blockNumber", + type: "uint256", + internalType: "uint256", + }, + { + name: "blockHash", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "returnData", + type: "tuple[]", + internalType: "struct IMulticall3.Result[]", + components: [ + { + name: "success", + type: "bool", + internalType: "bool", + }, + { + name: "returnData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + stateMutability: "payable", + }, + { + type: "function", + name: "getBasefee", + inputs: [], + outputs: [ + { + name: "basefee", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getBlockHash", + inputs: [ + { + name: "blockNumber", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "blockHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getBlockNumber", + inputs: [], + outputs: [ + { + name: "blockNumber", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getChainId", + inputs: [], + outputs: [ + { + name: "chainid", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getCurrentBlockCoinbase", + inputs: [], + outputs: [ + { + name: "coinbase", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getCurrentBlockDifficulty", + inputs: [], + outputs: [ + { + name: "difficulty", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getCurrentBlockGasLimit", + inputs: [], + outputs: [ + { + name: "gaslimit", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getCurrentBlockTimestamp", + inputs: [], + outputs: [ + { + name: "timestamp", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getEthBalance", + inputs: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getLastBlockHash", + inputs: [], + outputs: [ + { + name: "blockHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tryAggregate", + inputs: [ + { + name: "requireSuccess", + type: "bool", + internalType: "bool", + }, + { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call[]", + components: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "callData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + outputs: [ + { + name: "returnData", + type: "tuple[]", + internalType: "struct IMulticall3.Result[]", + components: [ + { + name: "success", + type: "bool", + internalType: "bool", + }, + { + name: "returnData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + stateMutability: "payable", + }, + { + type: "function", + name: "tryBlockAndAggregate", + inputs: [ + { + name: "requireSuccess", + type: "bool", + internalType: "bool", + }, + { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call[]", + components: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "callData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + outputs: [ + { + name: "blockNumber", + type: "uint256", + internalType: "uint256", + }, + { + name: "blockHash", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "returnData", + type: "tuple[]", + internalType: "struct IMulticall3.Result[]", + components: [ + { + name: "success", + type: "bool", + internalType: "bool", + }, + { + name: "returnData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + stateMutability: "payable", + }, +] as const; + +export class IMulticall3__factory { + static readonly abi = _abi; + static createInterface(): IMulticall3Interface { + return new Interface(_abi) as IMulticall3Interface; + } + static connect(address: string, runner?: ContractRunner | null): IMulticall3 { + return new Contract(address, _abi, runner) as unknown as IMulticall3; + } +} diff --git a/v2/typechain-types/factories/IProxyAdmin__factory.ts b/v2/typechain-types/factories/IProxyAdmin__factory.ts new file mode 100644 index 00000000..4bb1886d --- /dev/null +++ b/v2/typechain-types/factories/IProxyAdmin__factory.ts @@ -0,0 +1,60 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IProxyAdmin, IProxyAdminInterface } from "../IProxyAdmin"; + +const _abi = [ + { + type: "function", + name: "upgrade", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "upgradeAndCall", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, +] as const; + +export class IProxyAdmin__factory { + static readonly abi = _abi; + static createInterface(): IProxyAdminInterface { + return new Interface(_abi) as IProxyAdminInterface; + } + static connect(address: string, runner?: ContractRunner | null): IProxyAdmin { + return new Contract(address, _abi, runner) as unknown as IProxyAdmin; + } +} diff --git a/v2/typechain-types/factories/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts b/v2/typechain-types/factories/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts new file mode 100644 index 00000000..dab09064 --- /dev/null +++ b/v2/typechain-types/factories/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts @@ -0,0 +1,156 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IReceiverEVMEvents, + IReceiverEVMEventsInterface, +} from "../../IReceiverEVM.sol/IReceiverEVMEvents"; + +const _abi = [ + { + type: "event", + name: "ReceivedERC20", + inputs: [ + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "token", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "destination", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ReceivedNoParams", + inputs: [ + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ReceivedNonPayable", + inputs: [ + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "strs", + type: "string[]", + indexed: false, + internalType: "string[]", + }, + { + name: "nums", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + { + name: "flag", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ReceivedPayable", + inputs: [ + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "str", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "num", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "flag", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ReceivedRevert", + inputs: [ + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, +] as const; + +export class IReceiverEVMEvents__factory { + static readonly abi = _abi; + static createInterface(): IReceiverEVMEventsInterface { + return new Interface(_abi) as IReceiverEVMEventsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IReceiverEVMEvents { + return new Contract(address, _abi, runner) as unknown as IReceiverEVMEvents; + } +} diff --git a/v2/typechain-types/factories/IReceiverEVM.sol/index.ts b/v2/typechain-types/factories/IReceiverEVM.sol/index.ts new file mode 100644 index 00000000..49a704f0 --- /dev/null +++ b/v2/typechain-types/factories/IReceiverEVM.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IReceiverEVMEvents__factory } from "./IReceiverEVMEvents__factory"; diff --git a/v2/typechain-types/factories/ISystem__factory.ts b/v2/typechain-types/factories/ISystem__factory.ts new file mode 100644 index 00000000..32be743d --- /dev/null +++ b/v2/typechain-types/factories/ISystem__factory.ts @@ -0,0 +1,115 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { ISystem, ISystemInterface } from "../ISystem"; + +const _abi = [ + { + type: "function", + name: "FUNGIBLE_MODULE_ADDRESS", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gasCoinZRC20ByChainId", + inputs: [ + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gasPriceByChainId", + inputs: [ + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gasZetaPoolByChainId", + inputs: [ + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "uniswapv2FactoryAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "wZetaContractAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, +] as const; + +export class ISystem__factory { + static readonly abi = _abi; + static createInterface(): ISystemInterface { + return new Interface(_abi) as ISystemInterface; + } + static connect(address: string, runner?: ContractRunner | null): ISystem { + return new Contract(address, _abi, runner) as unknown as ISystem; + } +} diff --git a/v2/typechain-types/factories/IUpgradeableBeacon__factory.ts b/v2/typechain-types/factories/IUpgradeableBeacon__factory.ts new file mode 100644 index 00000000..2e857a90 --- /dev/null +++ b/v2/typechain-types/factories/IUpgradeableBeacon__factory.ts @@ -0,0 +1,38 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUpgradeableBeacon, + IUpgradeableBeaconInterface, +} from "../IUpgradeableBeacon"; + +const _abi = [ + { + type: "function", + name: "upgradeTo", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, +] as const; + +export class IUpgradeableBeacon__factory { + static readonly abi = _abi; + static createInterface(): IUpgradeableBeaconInterface { + return new Interface(_abi) as IUpgradeableBeaconInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUpgradeableBeacon { + return new Contract(address, _abi, runner) as unknown as IUpgradeableBeacon; + } +} diff --git a/v2/typechain-types/factories/IUpgradeableProxy__factory.ts b/v2/typechain-types/factories/IUpgradeableProxy__factory.ts new file mode 100644 index 00000000..734deb6c --- /dev/null +++ b/v2/typechain-types/factories/IUpgradeableProxy__factory.ts @@ -0,0 +1,56 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUpgradeableProxy, + IUpgradeableProxyInterface, +} from "../IUpgradeableProxy"; + +const _abi = [ + { + type: "function", + name: "upgradeTo", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, +] as const; + +export class IUpgradeableProxy__factory { + static readonly abi = _abi; + static createInterface(): IUpgradeableProxyInterface { + return new Interface(_abi) as IUpgradeableProxyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUpgradeableProxy { + return new Contract(address, _abi, runner) as unknown as IUpgradeableProxy; + } +} diff --git a/v2/typechain-types/factories/IWZETA.sol/IWETH9__factory.ts b/v2/typechain-types/factories/IWZETA.sol/IWETH9__factory.ts new file mode 100644 index 00000000..de75b149 --- /dev/null +++ b/v2/typechain-types/factories/IWZETA.sol/IWETH9__factory.ts @@ -0,0 +1,260 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IWETH9, IWETH9Interface } from "../../IWZETA.sol/IWETH9"; + +const _abi = [ + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "dst", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "wad", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdrawal", + inputs: [ + { + name: "src", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "wad", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class IWETH9__factory { + static readonly abi = _abi; + static createInterface(): IWETH9Interface { + return new Interface(_abi) as IWETH9Interface; + } + static connect(address: string, runner?: ContractRunner | null): IWETH9 { + return new Contract(address, _abi, runner) as unknown as IWETH9; + } +} diff --git a/v2/typechain-types/factories/IWZETA.sol/index.ts b/v2/typechain-types/factories/IWZETA.sol/index.ts new file mode 100644 index 00000000..d3b0ed8d --- /dev/null +++ b/v2/typechain-types/factories/IWZETA.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IWETH9__factory } from "./IWETH9__factory"; diff --git a/v2/typechain-types/factories/IZRC20.sol/IZRC20Metadata__factory.ts b/v2/typechain-types/factories/IZRC20.sol/IZRC20Metadata__factory.ts new file mode 100644 index 00000000..3352f12f --- /dev/null +++ b/v2/typechain-types/factories/IZRC20.sol/IZRC20Metadata__factory.ts @@ -0,0 +1,295 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZRC20Metadata, + IZRC20MetadataInterface, +} from "../../IZRC20.sol/IZRC20Metadata"; + +const _abi = [ + { + type: "function", + name: "PROTOCOL_FLAT_FEE", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "burn", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "recipient", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "recipient", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "to", + type: "bytes", + internalType: "bytes", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawGasFee", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, +] as const; + +export class IZRC20Metadata__factory { + static readonly abi = _abi; + static createInterface(): IZRC20MetadataInterface { + return new Interface(_abi) as IZRC20MetadataInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IZRC20Metadata { + return new Contract(address, _abi, runner) as unknown as IZRC20Metadata; + } +} diff --git a/v2/typechain-types/factories/IZRC20.sol/IZRC20__factory.ts b/v2/typechain-types/factories/IZRC20.sol/IZRC20__factory.ts new file mode 100644 index 00000000..12c53aa6 --- /dev/null +++ b/v2/typechain-types/factories/IZRC20.sol/IZRC20__factory.ts @@ -0,0 +1,250 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IZRC20, IZRC20Interface } from "../../IZRC20.sol/IZRC20"; + +const _abi = [ + { + type: "function", + name: "PROTOCOL_FLAT_FEE", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "burn", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "recipient", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "recipient", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "to", + type: "bytes", + internalType: "bytes", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawGasFee", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, +] as const; + +export class IZRC20__factory { + static readonly abi = _abi; + static createInterface(): IZRC20Interface { + return new Interface(_abi) as IZRC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IZRC20 { + return new Contract(address, _abi, runner) as unknown as IZRC20; + } +} diff --git a/v2/typechain-types/factories/IZRC20.sol/ZRC20Events__factory.ts b/v2/typechain-types/factories/IZRC20.sol/ZRC20Events__factory.ts new file mode 100644 index 00000000..6cf7538f --- /dev/null +++ b/v2/typechain-types/factories/IZRC20.sol/ZRC20Events__factory.ts @@ -0,0 +1,173 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZRC20Events, + ZRC20EventsInterface, +} from "../../IZRC20.sol/ZRC20Events"; + +const _abi = [ + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "from", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "UpdatedGasLimit", + inputs: [ + { + name: "gasLimit", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "UpdatedProtocolFlatFee", + inputs: [ + { + name: "protocolFlatFee", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "UpdatedSystemContract", + inputs: [ + { + name: "systemContract", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdrawal", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "gasFee", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "protocolFlatFee", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class ZRC20Events__factory { + static readonly abi = _abi; + static createInterface(): ZRC20EventsInterface { + return new Interface(_abi) as ZRC20EventsInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZRC20Events { + return new Contract(address, _abi, runner) as unknown as ZRC20Events; + } +} diff --git a/v2/typechain-types/factories/IZRC20.sol/index.ts b/v2/typechain-types/factories/IZRC20.sol/index.ts new file mode 100644 index 00000000..98e010d3 --- /dev/null +++ b/v2/typechain-types/factories/IZRC20.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IZRC20__factory } from "./IZRC20__factory"; +export { IZRC20Metadata__factory } from "./IZRC20Metadata__factory"; +export { ZRC20Events__factory } from "./ZRC20Events__factory"; diff --git a/v2/typechain-types/factories/IZetaConnector.sol/IZetaConnectorEvents__factory.ts b/v2/typechain-types/factories/IZetaConnector.sol/IZetaConnectorEvents__factory.ts new file mode 100644 index 00000000..92dae62d --- /dev/null +++ b/v2/typechain-types/factories/IZetaConnector.sol/IZetaConnectorEvents__factory.ts @@ -0,0 +1,98 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZetaConnectorEvents, + IZetaConnectorEventsInterface, +} from "../../IZetaConnector.sol/IZetaConnectorEvents"; + +const _abi = [ + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndCall", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndRevert", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, +] as const; + +export class IZetaConnectorEvents__factory { + static readonly abi = _abi; + static createInterface(): IZetaConnectorEventsInterface { + return new Interface(_abi) as IZetaConnectorEventsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IZetaConnectorEvents { + return new Contract( + address, + _abi, + runner + ) as unknown as IZetaConnectorEvents; + } +} diff --git a/v2/typechain-types/factories/IZetaConnector.sol/index.ts b/v2/typechain-types/factories/IZetaConnector.sol/index.ts new file mode 100644 index 00000000..a60ddc89 --- /dev/null +++ b/v2/typechain-types/factories/IZetaConnector.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IZetaConnectorEvents__factory } from "./IZetaConnectorEvents__factory"; diff --git a/v2/typechain-types/factories/IZetaNonEthNew__factory.ts b/v2/typechain-types/factories/IZetaNonEthNew__factory.ts new file mode 100644 index 00000000..362f9de6 --- /dev/null +++ b/v2/typechain-types/factories/IZetaNonEthNew__factory.ts @@ -0,0 +1,249 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZetaNonEthNew, + IZetaNonEthNewInterface, +} from "../IZetaNonEthNew"; + +const _abi = [ + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "burnFrom", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "mint", + inputs: [ + { + name: "mintee", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class IZetaNonEthNew__factory { + static readonly abi = _abi; + static createInterface(): IZetaNonEthNewInterface { + return new Interface(_abi) as IZetaNonEthNewInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IZetaNonEthNew { + return new Contract(address, _abi, runner) as unknown as IZetaNonEthNew; + } +} diff --git a/v2/typechain-types/factories/Initializable__factory.ts b/v2/typechain-types/factories/Initializable__factory.ts new file mode 100644 index 00000000..d6c76134 --- /dev/null +++ b/v2/typechain-types/factories/Initializable__factory.ts @@ -0,0 +1,45 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Initializable, InitializableInterface } from "../Initializable"; + +const _abi = [ + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, +] as const; + +export class Initializable__factory { + static readonly abi = _abi; + static createInterface(): InitializableInterface { + return new Interface(_abi) as InitializableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): Initializable { + return new Contract(address, _abi, runner) as unknown as Initializable; + } +} diff --git a/v2/typechain-types/factories/Math__factory.ts b/v2/typechain-types/factories/Math__factory.ts new file mode 100644 index 00000000..77764d8f --- /dev/null +++ b/v2/typechain-types/factories/Math__factory.ts @@ -0,0 +1,66 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { Math, MathInterface } from "../Math"; + +const _abi = [ + { + type: "error", + name: "MathOverflowedMulDiv", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0b270b0be59fe690f25903756d3c17b6ea12af9948ddfe45caafa979d407cf964736f6c634300081a0033"; + +type MathConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: MathConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Math__factory extends ContractFactory { + constructor(...args: MathConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Math & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Math__factory { + return super.connect(runner) as Math__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MathInterface { + return new Interface(_abi) as MathInterface; + } + static connect(address: string, runner?: ContractRunner | null): Math { + return new Contract(address, _abi, runner) as unknown as Math; + } +} diff --git a/v2/typechain-types/factories/MockERC20__factory.ts b/v2/typechain-types/factories/MockERC20__factory.ts new file mode 100644 index 00000000..5effecad --- /dev/null +++ b/v2/typechain-types/factories/MockERC20__factory.ts @@ -0,0 +1,381 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { MockERC20, MockERC20Interface } from "../MockERC20"; + +const _abi = [ + { + type: "function", + name: "DOMAIN_SEPARATOR", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "name_", + type: "string", + internalType: "string", + }, + { + name: "symbol_", + type: "string", + internalType: "string", + }, + { + name: "decimals_", + type: "uint8", + internalType: "uint8", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "nonces", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "permit", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + { + name: "deadline", + type: "uint256", + internalType: "uint256", + }, + { + name: "v", + type: "uint8", + internalType: "uint8", + }, + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +const _bytecode = + "0x6080604052348015600f57600080fd5b5061113e8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101d2578063a9059cbb146101da578063d505accf146101ed578063dd62ed3e1461020057600080fd5b80633644e5151461017457806370a082311461017c5780637ecebe00146101b257600080fd5b806318160ddd116100bd57806318160ddd1461013a57806323b872dd1461014c578063313ce5671461015f57600080fd5b806306fdde03146100e4578063095ea7b3146101025780631624f6c614610125575b600080fd5b6100ec610246565b6040516100f99190610b6b565b60405180910390f35b610115610110366004610be2565b6102d8565b60405190151581526020016100f9565b610138610133366004610cdc565b610352565b005b6003545b6040519081526020016100f9565b61011561015a366004610d55565b610451565b60025460405160ff90911681526020016100f9565b61013e6105c5565b61013e61018a366004610d92565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b61013e6101c0366004610d92565b60086020526000908152604090205481565b6100ec6105eb565b6101156101e8366004610be2565b6105fa565b6101386101fb366004610dad565b6106ab565b61013e61020e366004610e18565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b60606000805461025590610e4b565b80601f016020809104026020016040519081016040528092919081815260200182805461028190610e4b565b80156102ce5780601f106102a3576101008083540402835291602001916102ce565b820191906000526020600020905b8154815290600101906020018083116102b157829003601f168201915b5050505050905090565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103409086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b60006103d08482610eed565b5060016103dd8382610eed565b50600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff83161790556104136109b5565b60065561041e6109ce565b6007555050600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b73ffffffffffffffffffffffffffffffffffffffff831660009081526005602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146104e5576104b38184610a71565b73ffffffffffffffffffffffffffffffffffffffff861660009081526005602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460205260409020546105159084610a71565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526004602052604080822093909355908616815220546105519084610aee565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105b29087815260200190565b60405180910390a3506001949350505050565b60006006546105d26109b5565b146105e4576105df6109ce565b905090565b5060075490565b60606001805461025590610e4b565b336000908152600460205260408120546106149083610a71565b336000908152600460205260408082209290925573ffffffffffffffffffffffffffffffffffffffff85168152205461064d9083610aee565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103409086815260200190565b42841015610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016103bb565b600060016107216105c5565b73ffffffffffffffffffffffffffffffffffffffff8a16600090815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061077c83611017565b9091555060408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810188905260e0016040516020818303038152906040528051906020012060405160200161081d9291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561087b573d6000803e3d6000fd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906108d857508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61093e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016103bb565b73ffffffffffffffffffffffffffffffffffffffff81811660009081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b6000610b67806109c763ffffffff8216565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610a00919061104f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6610a316109b5565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600081831015610add576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f770000000060448201526064016103bb565b610ae782846110e2565b9392505050565b600080610afb83856110f5565b905083811015610ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f77000000000000000060448201526064016103bb565b4690565b602081526000825180602084015260005b81811015610b995760208186018101516040868401015201610b7c565b506000604082850101526040601f19601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bdd57600080fd5b919050565b60008060408385031215610bf557600080fd5b610bfe83610bb9565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610c4c57600080fd5b813567ffffffffffffffff811115610c6657610c66610c0c565b604051601f19603f601f19601f8501160116810181811067ffffffffffffffff82111715610c9657610c96610c0c565b604052818152838201602001851015610cae57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114610bdd57600080fd5b600080600060608486031215610cf157600080fd5b833567ffffffffffffffff811115610d0857600080fd5b610d1486828701610c3b565b935050602084013567ffffffffffffffff811115610d3157600080fd5b610d3d86828701610c3b565b925050610d4c60408501610ccb565b90509250925092565b600080600060608486031215610d6a57600080fd5b610d7384610bb9565b9250610d8160208501610bb9565b929592945050506040919091013590565b600060208284031215610da457600080fd5b610ae782610bb9565b600080600080600080600060e0888a031215610dc857600080fd5b610dd188610bb9565b9650610ddf60208901610bb9565b95506040880135945060608801359350610dfb60808901610ccb565b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610e2b57600080fd5b610e3483610bb9565b9150610e4260208401610bb9565b90509250929050565b600181811c90821680610e5f57607f821691505b602082108103610e98577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610ee857806000526020600020601f840160051c81016020851015610ec55750805b601f840160051c820191505b81811015610ee55760008155600101610ed1565b50505b505050565b815167ffffffffffffffff811115610f0757610f07610c0c565b610f1b81610f158454610e4b565b84610e9e565b6020601f821160018114610f6d5760008315610f375750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455610ee5565b600084815260208120601f198516915b82811015610f9d5787850151825560209485019460019092019101610f7d565b5084821015610fd957868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361104857611048610fe8565b5060010190565b600080835461105d81610e4b565b60018216801561107457600181146110a7576110d7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00831686528115158202860193506110d7565b86600052602060002060005b838110156110cf578154888201526001909101906020016110b3565b505081860193505b509195945050505050565b8181038181111561034c5761034c610fe8565b8082018082111561034c5761034c610fe856fea2646970667358221220851d97dae90e79fa61b9e1ffe627628587a83f0e58ff9e31aa3727a08c88fd7d64736f6c634300081a0033"; + +type MockERC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: MockERC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class MockERC20__factory extends ContractFactory { + constructor(...args: MockERC20ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + MockERC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): MockERC20__factory { + return super.connect(runner) as MockERC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MockERC20Interface { + return new Interface(_abi) as MockERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): MockERC20 { + return new Contract(address, _abi, runner) as unknown as MockERC20; + } +} diff --git a/v2/typechain-types/factories/MockERC721__factory.ts b/v2/typechain-types/factories/MockERC721__factory.ts new file mode 100644 index 00000000..60e495a3 --- /dev/null +++ b/v2/typechain-types/factories/MockERC721__factory.ts @@ -0,0 +1,409 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { MockERC721, MockERC721Interface } from "../MockERC721"; + +const _abi = [ + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getApproved", + inputs: [ + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "name_", + type: "string", + internalType: "string", + }, + { + name: "symbol_", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "isApprovedForAll", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "ownerOf", + inputs: [ + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "setApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "approved", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tokenURI", + inputs: [ + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "_owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_approved", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ApprovalForAll", + inputs: [ + { + name: "_owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_approved", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "_from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "_tokenId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +const _bytecode = + "0x6080604052348015600f57600080fd5b506114b88061001f6000396000f3fe6080604052600436106100dd5760003560e01c80636352211e1161007f578063a22cb46511610059578063a22cb4651461025f578063b88d4fde1461027f578063c87b56dd14610292578063e985e9c5146102b357600080fd5b80636352211e146101fc57806370a082311461021c57806395d89b411461024a57600080fd5b8063095ea7b3116100bb578063095ea7b3146101a157806323b872dd146101b657806342842e0e146101c95780634cd88b76146101dc57600080fd5b806301ffc9a7146100e257806306fdde0314610117578063081812fc14610139575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610e1f565b610309565b60405190151581526020015b60405180910390f35b34801561012357600080fd5b5061012c6103ee565b60405161010e9190610ea7565b34801561014557600080fd5b5061017c610154366004610eba565b60009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010e565b6101b46101af366004610ef7565b610480565b005b6101b46101c4366004610f21565b6105cf565b6101b46101d7366004610f21565b6108c4565b3480156101e857600080fd5b506101b46101f7366004611045565b610a18565b34801561020857600080fd5b5061017c610217366004610eba565b610ace565b34801561022857600080fd5b5061023c6102373660046110ae565b610b5f565b60405190815260200161010e565b34801561025657600080fd5b5061012c610c07565b34801561026b57600080fd5b506101b461027a3660046110c9565b610c16565b6101b461028d366004611105565b610cad565b34801561029e57600080fd5b5061012c6102ad366004610eba565b50606090565b3480156102bf57600080fd5b506101026102ce366004611181565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061039c57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806103e857507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600080546103fd906111b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610429906111b4565b80156104765780601f1061044b57610100808354040283529160200191610476565b820191906000526020600020905b81548152906001019060200180831161045957829003601f168201915b5050505050905090565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16338114806104e3575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b61054e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff84811691161461065f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d000000000000000000000000000000000000000000006044820152606401610545565b73ffffffffffffffffffffffffffffffffffffffff82166106dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e540000000000000000000000000000006044820152606401610545565b3373ffffffffffffffffffffffffffffffffffffffff84161480610730575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b8061075e575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b6107c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610545565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081208054916107f583611236565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040812080549161082b8361126b565b90915550506000818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff000000000000000000000000000000000000000092831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6108cf8383836105cf565b813b15806109ad57506040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610965573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098991906112a3565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610a13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610545565b505050565b60065460ff1615610a85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f414c52454144595f494e495449414c495a4544000000000000000000000000006044820152606401610545565b6000610a91838261130e565b506001610a9e828261130e565b5050600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610b5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e544544000000000000000000000000000000000000000000006044820152606401610545565b919050565b600073ffffffffffffffffffffffffffffffffffffffff8216610bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f4144445245535300000000000000000000000000000000000000006044820152606401610545565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6060600180546103fd906111b4565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610cb88484846105cf565b823b1580610d8257506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290610d1b903390899088908890600401611427565b6020604051808303816000875af1158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e91906112a3565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610de8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610545565b50505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610e1c57600080fd5b50565b600060208284031215610e3157600080fd5b8135610e3c81610dee565b9392505050565b6000815180845260005b81811015610e6957602081850181015186830182015201610e4d565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610e3c6020830184610e43565b600060208284031215610ecc57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b5a57600080fd5b60008060408385031215610f0a57600080fd5b610f1383610ed3565b946020939093013593505050565b600080600060608486031215610f3657600080fd5b610f3f84610ed3565b9250610f4d60208501610ed3565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008067ffffffffffffffff841115610fa857610fa8610f5e565b506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85018116603f0116810181811067ffffffffffffffff82111715610ff557610ff5610f5e565b60405283815290508082840185101561100d57600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261103657600080fd5b610e3c83833560208501610f8d565b6000806040838503121561105857600080fd5b823567ffffffffffffffff81111561106f57600080fd5b61107b85828601611025565b925050602083013567ffffffffffffffff81111561109857600080fd5b6110a485828601611025565b9150509250929050565b6000602082840312156110c057600080fd5b610e3c82610ed3565b600080604083850312156110dc57600080fd5b6110e583610ed3565b9150602083013580151581146110fa57600080fd5b809150509250929050565b6000806000806080858703121561111b57600080fd5b61112485610ed3565b935061113260208601610ed3565b925060408501359150606085013567ffffffffffffffff81111561115557600080fd5b8501601f8101871361116657600080fd5b61117587823560208401610f8d565b91505092959194509250565b6000806040838503121561119457600080fd5b61119d83610ed3565b91506111ab60208401610ed3565b90509250929050565b600181811c908216806111c857607f821691505b602082108103611201577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008161124557611245611207565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361129c5761129c611207565b5060010190565b6000602082840312156112b557600080fd5b8151610e3c81610dee565b601f821115610a1357806000526020600020601f840160051c810160208510156112e75750805b601f840160051c820191505b8181101561130757600081556001016112f3565b5050505050565b815167ffffffffffffffff81111561132857611328610f5e565b61133c8161133684546111b4565b846112c0565b6020601f82116001811461138e57600083156113585750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455611307565b6000848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156113dc57878501518255602094850194600190920191016113bc565b508482101561141857868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff841660208201528260408201526080606082015260006114786080830184610e43565b969550505050505056fea26469706673582212202332803a16bf7eaf4a68e83df79b845e756649c92da3b94bb9b4061f246da5be64736f6c634300081a0033"; + +type MockERC721ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: MockERC721ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class MockERC721__factory extends ContractFactory { + constructor(...args: MockERC721ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + MockERC721 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): MockERC721__factory { + return super.connect(runner) as MockERC721__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MockERC721Interface { + return new Interface(_abi) as MockERC721Interface; + } + static connect(address: string, runner?: ContractRunner | null): MockERC721 { + return new Contract(address, _abi, runner) as unknown as MockERC721; + } +} diff --git a/v2/typechain-types/factories/OwnableUpgradeable__factory.ts b/v2/typechain-types/factories/OwnableUpgradeable__factory.ts new file mode 100644 index 00000000..024cfecf --- /dev/null +++ b/v2/typechain-types/factories/OwnableUpgradeable__factory.ts @@ -0,0 +1,122 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + OwnableUpgradeable, + OwnableUpgradeableInterface, +} from "../OwnableUpgradeable"; + +const _abi = [ + { + type: "function", + name: "owner", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferOwnership", + inputs: [ + { + name: "newOwner", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "OwnershipTransferred", + inputs: [ + { + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "OwnableInvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, +] as const; + +export class OwnableUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): OwnableUpgradeableInterface { + return new Interface(_abi) as OwnableUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): OwnableUpgradeable { + return new Contract(address, _abi, runner) as unknown as OwnableUpgradeable; + } +} diff --git a/v2/typechain-types/factories/Ownable__factory.ts b/v2/typechain-types/factories/Ownable__factory.ts new file mode 100644 index 00000000..d7eebd03 --- /dev/null +++ b/v2/typechain-types/factories/Ownable__factory.ts @@ -0,0 +1,93 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Ownable, OwnableInterface } from "../Ownable"; + +const _abi = [ + { + type: "function", + name: "owner", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferOwnership", + inputs: [ + { + name: "newOwner", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "OwnershipTransferred", + inputs: [ + { + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "OwnableInvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, +] as const; + +export class Ownable__factory { + static readonly abi = _abi; + static createInterface(): OwnableInterface { + return new Interface(_abi) as OwnableInterface; + } + static connect(address: string, runner?: ContractRunner | null): Ownable { + return new Contract(address, _abi, runner) as unknown as Ownable; + } +} diff --git a/v2/typechain-types/factories/ProxyAdmin__factory.ts b/v2/typechain-types/factories/ProxyAdmin__factory.ts new file mode 100644 index 00000000..f38082f3 --- /dev/null +++ b/v2/typechain-types/factories/ProxyAdmin__factory.ts @@ -0,0 +1,191 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { ProxyAdmin, ProxyAdminInterface } from "../ProxyAdmin"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "initialOwner", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "owner", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferOwnership", + inputs: [ + { + name: "newOwner", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "upgradeAndCall", + inputs: [ + { + name: "proxy", + type: "address", + internalType: "contract ITransparentUpgradeableProxy", + }, + { + name: "implementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "event", + name: "OwnershipTransferred", + inputs: [ + { + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "OwnableInvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b5060405161068438038061068483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610587806100fd6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100b0578063ad3cb1cc146100c3578063f2fde38b1461011957600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b50610074610139565b005b34801561008257600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100746100be366004610364565b61014d565b3480156100cf57600080fd5b5061010c6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a791906104e3565b34801561012557600080fd5b506100746101343660046104fd565b6101e2565b61014161024b565b61014b600061029e565b565b61015561024b565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef2869034906101ab908690869060040161051a565b6000604051808303818588803b1580156101c457600080fd5b505af11580156101d8573d6000803e3d6000fd5b5050505050505050565b6101ea61024b565b73ffffffffffffffffffffffffffffffffffffffff811661023f576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6102488161029e565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461014b576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610236565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff8116811461024857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561037957600080fd5b833561038481610313565b9250602084013561039481610313565b9150604084013567ffffffffffffffff8111156103b057600080fd5b8401601f810186136103c157600080fd5b803567ffffffffffffffff8111156103db576103db610335565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561044757610447610335565b60405281815282820160200188101561045f57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b818110156104a557602081850181015186830182015201610489565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006104f6602083018461047f565b9392505050565b60006020828403121561050f57600080fd5b81356104f681610313565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000610549604083018461047f565b94935050505056fea2646970667358221220b68ea0eca96d97adca0a037e1efb26b5d3e690e9fbc1913bb4a08e597cfc70f164736f6c634300081a0033"; + +type ProxyAdminConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ProxyAdminConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ProxyAdmin__factory extends ContractFactory { + constructor(...args: ProxyAdminConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + initialOwner: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(initialOwner, overrides || {}); + } + override deploy( + initialOwner: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(initialOwner, overrides || {}) as Promise< + ProxyAdmin & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ProxyAdmin__factory { + return super.connect(runner) as ProxyAdmin__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ProxyAdminInterface { + return new Interface(_abi) as ProxyAdminInterface; + } + static connect(address: string, runner?: ContractRunner | null): ProxyAdmin { + return new Contract(address, _abi, runner) as unknown as ProxyAdmin; + } +} diff --git a/v2/typechain-types/factories/Proxy__factory.ts b/v2/typechain-types/factories/Proxy__factory.ts new file mode 100644 index 00000000..3b29df3b --- /dev/null +++ b/v2/typechain-types/factories/Proxy__factory.ts @@ -0,0 +1,23 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Proxy, ProxyInterface } from "../Proxy"; + +const _abi = [ + { + type: "fallback", + stateMutability: "payable", + }, +] as const; + +export class Proxy__factory { + static readonly abi = _abi; + static createInterface(): ProxyInterface { + return new Interface(_abi) as ProxyInterface; + } + static connect(address: string, runner?: ContractRunner | null): Proxy { + return new Contract(address, _abi, runner) as unknown as Proxy; + } +} diff --git a/v2/typechain-types/factories/ReceiverEVM__factory.ts b/v2/typechain-types/factories/ReceiverEVM__factory.ts new file mode 100644 index 00000000..3cd1a430 --- /dev/null +++ b/v2/typechain-types/factories/ReceiverEVM__factory.ts @@ -0,0 +1,360 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { ReceiverEVM, ReceiverEVMInterface } from "../ReceiverEVM"; + +const _abi = [ + { + type: "fallback", + stateMutability: "payable", + }, + { + type: "receive", + stateMutability: "payable", + }, + { + type: "function", + name: "onRevert", + inputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "receiveERC20", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "destination", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "receiveERC20Partial", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "token", + type: "address", + internalType: "address", + }, + { + name: "destination", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "receiveNoParams", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "receiveNonPayable", + inputs: [ + { + name: "strs", + type: "string[]", + internalType: "string[]", + }, + { + name: "nums", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "flag", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "receivePayable", + inputs: [ + { + name: "str", + type: "string", + internalType: "string", + }, + { + name: "num", + type: "uint256", + internalType: "uint256", + }, + { + name: "flag", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "event", + name: "ReceivedERC20", + inputs: [ + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "token", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "destination", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ReceivedNoParams", + inputs: [ + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ReceivedNonPayable", + inputs: [ + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "strs", + type: "string[]", + indexed: false, + internalType: "string[]", + }, + { + name: "nums", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + { + name: "flag", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ReceivedPayable", + inputs: [ + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "str", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "num", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "flag", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ReceivedRevert", + inputs: [ + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ZeroAmount", + inputs: [], + }, +] as const; + +const _bytecode = + "0x6080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a0033"; + +type ReceiverEVMConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ReceiverEVMConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ReceiverEVM__factory extends ContractFactory { + constructor(...args: ReceiverEVMConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + ReceiverEVM & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ReceiverEVM__factory { + return super.connect(runner) as ReceiverEVM__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ReceiverEVMInterface { + return new Interface(_abi) as ReceiverEVMInterface; + } + static connect(address: string, runner?: ContractRunner | null): ReceiverEVM { + return new Contract(address, _abi, runner) as unknown as ReceiverEVM; + } +} diff --git a/v2/typechain-types/factories/ReentrancyGuardUpgradeable__factory.ts b/v2/typechain-types/factories/ReentrancyGuardUpgradeable__factory.ts new file mode 100644 index 00000000..6371f807 --- /dev/null +++ b/v2/typechain-types/factories/ReentrancyGuardUpgradeable__factory.ts @@ -0,0 +1,57 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ReentrancyGuardUpgradeable, + ReentrancyGuardUpgradeableInterface, +} from "../ReentrancyGuardUpgradeable"; + +const _abi = [ + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, +] as const; + +export class ReentrancyGuardUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): ReentrancyGuardUpgradeableInterface { + return new Interface(_abi) as ReentrancyGuardUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ReentrancyGuardUpgradeable { + return new Contract( + address, + _abi, + runner + ) as unknown as ReentrancyGuardUpgradeable; + } +} diff --git a/v2/typechain-types/factories/ReentrancyGuard__factory.ts b/v2/typechain-types/factories/ReentrancyGuard__factory.ts new file mode 100644 index 00000000..26a1cce5 --- /dev/null +++ b/v2/typechain-types/factories/ReentrancyGuard__factory.ts @@ -0,0 +1,30 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ReentrancyGuard, + ReentrancyGuardInterface, +} from "../ReentrancyGuard"; + +const _abi = [ + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, +] as const; + +export class ReentrancyGuard__factory { + static readonly abi = _abi; + static createInterface(): ReentrancyGuardInterface { + return new Interface(_abi) as ReentrancyGuardInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ReentrancyGuard { + return new Contract(address, _abi, runner) as unknown as ReentrancyGuard; + } +} diff --git a/v2/typechain-types/factories/SafeERC20__factory.ts b/v2/typechain-types/factories/SafeERC20__factory.ts new file mode 100644 index 00000000..9740e0a3 --- /dev/null +++ b/v2/typechain-types/factories/SafeERC20__factory.ts @@ -0,0 +1,93 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { SafeERC20, SafeERC20Interface } from "../SafeERC20"; + +const _abi = [ + { + type: "error", + name: "SafeERC20FailedDecreaseAllowance", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "currentAllowance", + type: "uint256", + internalType: "uint256", + }, + { + name: "requestedDecrease", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, +] as const; + +const _bytecode = + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b149ed6660f3fbf5a50e73e0348cd9d9861a3fa7d998ed32eee66773e3cb05b864736f6c634300081a0033"; + +type SafeERC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SafeERC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class SafeERC20__factory extends ContractFactory { + constructor(...args: SafeERC20ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + SafeERC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): SafeERC20__factory { + return super.connect(runner) as SafeERC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SafeERC20Interface { + return new Interface(_abi) as SafeERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): SafeERC20 { + return new Contract(address, _abi, runner) as unknown as SafeERC20; + } +} diff --git a/v2/typechain-types/factories/SenderZEVM__factory.ts b/v2/typechain-types/factories/SenderZEVM__factory.ts new file mode 100644 index 00000000..4a7c1876 --- /dev/null +++ b/v2/typechain-types/factories/SenderZEVM__factory.ts @@ -0,0 +1,165 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { SenderZEVM, SenderZEVMInterface } from "../SenderZEVM"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "_gateway", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "callReceiver", + inputs: [ + { + name: "receiver", + type: "bytes", + internalType: "bytes", + }, + { + name: "str", + type: "string", + internalType: "string", + }, + { + name: "num", + type: "uint256", + internalType: "uint256", + }, + { + name: "flag", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "gateway", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdrawAndCallReceiver", + inputs: [ + { + name: "receiver", + type: "bytes", + internalType: "bytes", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "str", + type: "string", + internalType: "string", + }, + { + name: "num", + type: "uint256", + internalType: "uint256", + }, + { + name: "flag", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "error", + name: "ApprovalFailed", + inputs: [], + }, +] as const; + +const _bytecode = + "0x6080604052348015600f57600080fd5b506040516107f63803806107f6833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b6107698061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b61461005b578063a0a1730b146100a4575b600080fd5b6100596100543660046104c1565b6100b7565b005b60005461007b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100596100b236600461057c565b6102af565b60008383836040516024016100ce93929190610665565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810189905291925086169063095ea7b3906044016020604051808303816000875af11580156101be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e2919061068f565b610218576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517f7993c1e000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690637993c1e090610274908a908a908a9087906004016106b3565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008383836040516024016102c693929190610665565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f0ac7c44c00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690630ac7c44c906103949088908590600401610705565b600060405180830381600087803b1580156103ae57600080fd5b505af11580156103c2573d6000803e3d6000fd5b505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261040d57600080fd5b81356020830160008067ffffffffffffffff84111561042e5761042e6103cd565b506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85018116603f0116810181811067ffffffffffffffff8211171561047b5761047b6103cd565b60405283815290508082840187101561049357600080fd5b838360208301376000602085830101528094505050505092915050565b80151581146104be57600080fd5b50565b60008060008060008060c087890312156104da57600080fd5b863567ffffffffffffffff8111156104f157600080fd5b6104fd89828a016103fc565b96505060208701359450604087013573ffffffffffffffffffffffffffffffffffffffff8116811461052e57600080fd5b9350606087013567ffffffffffffffff81111561054a57600080fd5b61055689828a016103fc565b9350506080870135915060a087013561056e816104b0565b809150509295509295509295565b6000806000806080858703121561059257600080fd5b843567ffffffffffffffff8111156105a957600080fd5b6105b5878288016103fc565b945050602085013567ffffffffffffffff8111156105d257600080fd5b6105de878288016103fc565b9350506040850135915060608501356105f6816104b0565b939692955090935050565b6000815180845260005b818110156106275760208185018101518683018201520161060b565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6060815260006106786060830186610601565b602083019490945250901515604090910152919050565b6000602082840312156106a157600080fd5b81516106ac816104b0565b9392505050565b6080815260006106c66080830187610601565b85602084015273ffffffffffffffffffffffffffffffffffffffff8516604084015282810360608401526106fa8185610601565b979650505050505050565b6040815260006107186040830185610601565b828103602084015261072a8185610601565b9594505050505056fea26469706673582212204babda0c6b9bc7b1d80b616dce92ddfbe79ae0bb96aad4f2c77ffb6a8c63da7f64736f6c634300081a0033"; + +type SenderZEVMConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SenderZEVMConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class SenderZEVM__factory extends ContractFactory { + constructor(...args: SenderZEVMConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _gateway: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(_gateway, overrides || {}); + } + override deploy( + _gateway: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(_gateway, overrides || {}) as Promise< + SenderZEVM & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): SenderZEVM__factory { + return super.connect(runner) as SenderZEVM__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SenderZEVMInterface { + return new Interface(_abi) as SenderZEVMInterface; + } + static connect(address: string, runner?: ContractRunner | null): SenderZEVM { + return new Contract(address, _abi, runner) as unknown as SenderZEVM; + } +} diff --git a/v2/typechain-types/factories/StdAssertions__factory.ts b/v2/typechain-types/factories/StdAssertions__factory.ts new file mode 100644 index 00000000..7ba2478b --- /dev/null +++ b/v2/typechain-types/factories/StdAssertions__factory.ts @@ -0,0 +1,399 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { StdAssertions, StdAssertionsInterface } from "../StdAssertions"; + +const _abi = [ + { + type: "function", + name: "failed", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "log", + inputs: [ + { + name: "", + type: "string", + indexed: false, + internalType: "string", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_address", + inputs: [ + { + name: "", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_array", + inputs: [ + { + name: "val", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_array", + inputs: [ + { + name: "val", + type: "int256[]", + indexed: false, + internalType: "int256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_array", + inputs: [ + { + name: "val", + type: "address[]", + indexed: false, + internalType: "address[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_bytes", + inputs: [ + { + name: "", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_bytes32", + inputs: [ + { + name: "", + type: "bytes32", + indexed: false, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_int", + inputs: [ + { + name: "", + type: "int256", + indexed: false, + internalType: "int256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_address", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_array", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_array", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "int256[]", + indexed: false, + internalType: "int256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_array", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "address[]", + indexed: false, + internalType: "address[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_bytes", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_bytes32", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "bytes32", + indexed: false, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_decimal_int", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "int256", + indexed: false, + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_decimal_uint", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_int", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "int256", + indexed: false, + internalType: "int256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_string", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "string", + indexed: false, + internalType: "string", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_uint", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_string", + inputs: [ + { + name: "", + type: "string", + indexed: false, + internalType: "string", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_uint", + inputs: [ + { + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "logs", + inputs: [ + { + name: "", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, +] as const; + +export class StdAssertions__factory { + static readonly abi = _abi; + static createInterface(): StdAssertionsInterface { + return new Interface(_abi) as StdAssertionsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): StdAssertions { + return new Contract(address, _abi, runner) as unknown as StdAssertions; + } +} diff --git a/v2/typechain-types/factories/StdError.sol/StdError__factory.ts b/v2/typechain-types/factories/StdError.sol/StdError__factory.ts new file mode 100644 index 00000000..6f702f39 --- /dev/null +++ b/v2/typechain-types/factories/StdError.sol/StdError__factory.ts @@ -0,0 +1,178 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { StdError, StdErrorInterface } from "../../StdError.sol/StdError"; + +const _abi = [ + { + type: "function", + name: "arithmeticError", + inputs: [], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "assertionError", + inputs: [], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "divisionError", + inputs: [], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "encodeStorageError", + inputs: [], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "enumConversionError", + inputs: [], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "indexOOBError", + inputs: [], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "memOverflowError", + inputs: [], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "popError", + inputs: [], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "zeroVarError", + inputs: [], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, +] as const; + +const _bytecode = + "0x6102c9610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b602081526000825180602084015260005b818110156102555760208186018101516040868401015201610238565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509291505056fea26469706673582212209d55015f4a99eb82983bead015f4946ac9e7ee7d323094e4fb909dc07bb134c164736f6c634300081a0033"; + +type StdErrorConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: StdErrorConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class StdError__factory extends ContractFactory { + constructor(...args: StdErrorConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + StdError & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): StdError__factory { + return super.connect(runner) as StdError__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): StdErrorInterface { + return new Interface(_abi) as StdErrorInterface; + } + static connect(address: string, runner?: ContractRunner | null): StdError { + return new Contract(address, _abi, runner) as unknown as StdError; + } +} diff --git a/v2/typechain-types/factories/StdError.sol/index.ts b/v2/typechain-types/factories/StdError.sol/index.ts new file mode 100644 index 00000000..5c898ac1 --- /dev/null +++ b/v2/typechain-types/factories/StdError.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { StdError__factory } from "./StdError__factory"; diff --git a/v2/typechain-types/factories/StdInvariant__factory.ts b/v2/typechain-types/factories/StdInvariant__factory.ts new file mode 100644 index 00000000..e216a1e4 --- /dev/null +++ b/v2/typechain-types/factories/StdInvariant__factory.ts @@ -0,0 +1,200 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { StdInvariant, StdInvariantInterface } from "../StdInvariant"; + +const _abi = [ + { + type: "function", + name: "excludeArtifacts", + inputs: [], + outputs: [ + { + name: "excludedArtifacts_", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "excludeContracts", + inputs: [], + outputs: [ + { + name: "excludedContracts_", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "excludeSelectors", + inputs: [], + outputs: [ + { + name: "excludedSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzSelector[]", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "selectors", + type: "bytes4[]", + internalType: "bytes4[]", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "excludeSenders", + inputs: [], + outputs: [ + { + name: "excludedSenders_", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetArtifactSelectors", + inputs: [], + outputs: [ + { + name: "targetedArtifactSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + components: [ + { + name: "artifact", + type: "string", + internalType: "string", + }, + { + name: "selectors", + type: "bytes4[]", + internalType: "bytes4[]", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetArtifacts", + inputs: [], + outputs: [ + { + name: "targetedArtifacts_", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetContracts", + inputs: [], + outputs: [ + { + name: "targetedContracts_", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetInterfaces", + inputs: [], + outputs: [ + { + name: "targetedInterfaces_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzInterface[]", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "artifacts", + type: "string[]", + internalType: "string[]", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetSelectors", + inputs: [], + outputs: [ + { + name: "targetedSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzSelector[]", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "selectors", + type: "bytes4[]", + internalType: "bytes4[]", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetSenders", + inputs: [], + outputs: [ + { + name: "targetedSenders_", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, +] as const; + +export class StdInvariant__factory { + static readonly abi = _abi; + static createInterface(): StdInvariantInterface { + return new Interface(_abi) as StdInvariantInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): StdInvariant { + return new Contract(address, _abi, runner) as unknown as StdInvariant; + } +} diff --git a/v2/typechain-types/factories/StdStorage.sol/StdStorageSafe__factory.ts b/v2/typechain-types/factories/StdStorage.sol/StdStorageSafe__factory.ts new file mode 100644 index 00000000..826a2270 --- /dev/null +++ b/v2/typechain-types/factories/StdStorage.sol/StdStorageSafe__factory.ts @@ -0,0 +1,117 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { + StdStorageSafe, + StdStorageSafeInterface, +} from "../../StdStorage.sol/StdStorageSafe"; + +const _abi = [ + { + type: "event", + name: "SlotFound", + inputs: [ + { + name: "who", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "fsig", + type: "bytes4", + indexed: false, + internalType: "bytes4", + }, + { + name: "keysHash", + type: "bytes32", + indexed: false, + internalType: "bytes32", + }, + { + name: "slot", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WARNING_UninitedSlot", + inputs: [ + { + name: "who", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "slot", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +const _bytecode = + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d6473a3e455f11b00943e19d62d02cf957dec4d27a7a7ddb023bf40264d580b064736f6c634300081a0033"; + +type StdStorageSafeConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: StdStorageSafeConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class StdStorageSafe__factory extends ContractFactory { + constructor(...args: StdStorageSafeConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + StdStorageSafe & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): StdStorageSafe__factory { + return super.connect(runner) as StdStorageSafe__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): StdStorageSafeInterface { + return new Interface(_abi) as StdStorageSafeInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): StdStorageSafe { + return new Contract(address, _abi, runner) as unknown as StdStorageSafe; + } +} diff --git a/v2/typechain-types/factories/StdStorage.sol/index.ts b/v2/typechain-types/factories/StdStorage.sol/index.ts new file mode 100644 index 00000000..4f4de1e2 --- /dev/null +++ b/v2/typechain-types/factories/StdStorage.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { StdStorageSafe__factory } from "./StdStorageSafe__factory"; diff --git a/v2/typechain-types/factories/SystemContract.sol/SystemContractErrors__factory.ts b/v2/typechain-types/factories/SystemContract.sol/SystemContractErrors__factory.ts new file mode 100644 index 00000000..6f5be47a --- /dev/null +++ b/v2/typechain-types/factories/SystemContract.sol/SystemContractErrors__factory.ts @@ -0,0 +1,54 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + SystemContractErrors, + SystemContractErrorsInterface, +} from "../../SystemContract.sol/SystemContractErrors"; + +const _abi = [ + { + type: "error", + name: "CallerIsNotFungibleModule", + inputs: [], + }, + { + type: "error", + name: "CantBeIdenticalAddresses", + inputs: [], + }, + { + type: "error", + name: "CantBeZeroAddress", + inputs: [], + }, + { + type: "error", + name: "InvalidTarget", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +export class SystemContractErrors__factory { + static readonly abi = _abi; + static createInterface(): SystemContractErrorsInterface { + return new Interface(_abi) as SystemContractErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): SystemContractErrors { + return new Contract( + address, + _abi, + runner + ) as unknown as SystemContractErrors; + } +} diff --git a/v2/typechain-types/factories/SystemContract.sol/SystemContract__factory.ts b/v2/typechain-types/factories/SystemContract.sol/SystemContract__factory.ts new file mode 100644 index 00000000..9dcf65a1 --- /dev/null +++ b/v2/typechain-types/factories/SystemContract.sol/SystemContract__factory.ts @@ -0,0 +1,506 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { + SystemContract, + SystemContractInterface, +} from "../../SystemContract.sol/SystemContract"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "wzeta_", + type: "address", + internalType: "address", + }, + { + name: "uniswapv2Factory_", + type: "address", + internalType: "address", + }, + { + name: "uniswapv2Router02_", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "FUNGIBLE_MODULE_ADDRESS", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "depositAndCall", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct zContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "gasCoinZRC20ByChainId", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gasPriceByChainId", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gasZetaPoolByChainId", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "setConnectorZEVMAddress", + inputs: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setGasCoinZRC20", + inputs: [ + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setGasPrice", + inputs: [ + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + { + name: "price", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setGasZetaPool", + inputs: [ + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + { + name: "erc20", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setWZETAContractAddress", + inputs: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "uniswapv2FactoryAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "uniswapv2PairFor", + inputs: [ + { + name: "factory", + type: "address", + internalType: "address", + }, + { + name: "tokenA", + type: "address", + internalType: "address", + }, + { + name: "tokenB", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "pair", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "uniswapv2Router02Address", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "wZetaContractAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "zetaConnectorZEVMAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "SetConnectorZEVM", + inputs: [ + { + name: "", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SetGasCoin", + inputs: [ + { + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SetGasPrice", + inputs: [ + { + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SetGasZetaPool", + inputs: [ + { + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SetWZeta", + inputs: [ + { + name: "", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SystemContractDeployed", + inputs: [], + anonymous: false, + }, + { + type: "error", + name: "CallerIsNotFungibleModule", + inputs: [], + }, + { + type: "error", + name: "CantBeIdenticalAddresses", + inputs: [], + }, + { + type: "error", + name: "CantBeZeroAddress", + inputs: [], + }, + { + type: "error", + name: "InvalidTarget", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60c060405234801561001057600080fd5b5060405161106f38038061106f83398101604081905261002f916100db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0385811691909117909155828116608052811660a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac590600090a150505061011e565b80516001600160a01b03811681146100d657600080fd5b919050565b6000806000606084860312156100f057600080fd5b6100f9846100bf565b9250610107602085016100bf565b9150610115604085016100bf565b90509250925092565b60805160a051610f2561014a60003960006101e50152600081816102b9015261045b0152610f256000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806397770dff11610097578063c63585cc11610066578063c63585cc14610273578063d7fd7afb14610286578063d936a012146102b4578063ee2815ba146102db57600080fd5b806397770dff1461021a578063a7cb05071461022d578063c39aca3714610240578063c62178ac1461025357600080fd5b8063513a9c05116100d3578063513a9c051461018a578063569541b9146101c0578063842da36d146101e057806391dd645f1461020757600080fd5b80630be15547146100fa5780631f0e251b1461015a5780633ce4a5bc1461016f575b600080fd5b610130610108366004610bd1565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61016d610168366004610c13565b6102ee565b005b61013073735b14bb79463307aacbed86daf3322b1e6226ab81565b610130610198366004610bd1565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6003546101309073ffffffffffffffffffffffffffffffffffffffff1681565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d610215366004610c35565b610402565b61016d610228366004610c13565b610526565b61016d61023b366004610c61565b610633565b61016d61024e366004610c83565b6106ce565b6004546101309073ffffffffffffffffffffffffffffffffffffffff1681565b610130610281366004610d53565b6108cd565b6102a6610294366004610bd1565b60006020819052908152604090205481565b604051908152602001610151565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d6102e9366004610c35565b610a02565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461033b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610388576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c906020015b60405180910390a150565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461044f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354600090610497907f00000000000000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff16846108cd565b60008481526002602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251878152918201529192507f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e910160405180910390a1505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610573576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166105c0576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e906020016103f7565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610680576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152602081815260409182902083905581518481529081018390527f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d91015b60405180910390a15050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461071b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831673735b14bb79463307aacbed86daf3322b1e6226ab1480610768575073ffffffffffffffffffffffffffffffffffffffff831630145b1561079f576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef2400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015610814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108389190610d96565b506040517fde43156e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063de43156e906108939089908990899088908890600401610e01565b600060405180830381600087803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b50505050505050505050565b60008060006108dc8585610ad3565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084811b8216602084015283901b16603482015291935091508690604801604051602081830303815290604052805190602001206040516020016109c29291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610a4f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91016106c2565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b3b576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610b75578284610b78565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610bca576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b600060208284031215610be357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c0e57600080fd5b919050565b600060208284031215610c2557600080fd5b610c2e82610bea565b9392505050565b60008060408385031215610c4857600080fd5b82359150610c5860208401610bea565b90509250929050565b60008060408385031215610c7457600080fd5b50508035926020909101359150565b60008060008060008060a08789031215610c9c57600080fd5b863567ffffffffffffffff811115610cb357600080fd5b87016060818a031215610cc557600080fd5b9550610cd360208801610bea565b945060408701359350610ce860608801610bea565b9250608087013567ffffffffffffffff811115610d0457600080fd5b8701601f81018913610d1557600080fd5b803567ffffffffffffffff811115610d2c57600080fd5b896020828401011115610d3e57600080fd5b60208201935080925050509295509295509295565b600080600060608486031215610d6857600080fd5b610d7184610bea565b9250610d7f60208501610bea565b9150610d8d60408501610bea565b90509250925092565b600060208284031215610da857600080fd5b81518015158114610c2e57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600086357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1883603018112610e3957600080fd5b870160208101903567ffffffffffffffff811115610e5657600080fd5b803603821315610e6557600080fd5b60606080850152610e7a60e085018284610db8565b91505073ffffffffffffffffffffffffffffffffffffffff610e9e60208a01610bea565b1660a0840152604088013560c084015273ffffffffffffffffffffffffffffffffffffffff871660208401528560408401528281036060840152610ee3818587610db8565b9897505050505050505056fea264697066735822122017543d2c8189b581ace78b1ea401266087d4800c1923634417b929e7efd8a9b764736f6c634300081a0033"; + +type SystemContractConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SystemContractConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class SystemContract__factory extends ContractFactory { + constructor(...args: SystemContractConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + wzeta_: AddressLike, + uniswapv2Factory_: AddressLike, + uniswapv2Router02_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + wzeta_, + uniswapv2Factory_, + uniswapv2Router02_, + overrides || {} + ); + } + override deploy( + wzeta_: AddressLike, + uniswapv2Factory_: AddressLike, + uniswapv2Router02_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + wzeta_, + uniswapv2Factory_, + uniswapv2Router02_, + overrides || {} + ) as Promise< + SystemContract & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): SystemContract__factory { + return super.connect(runner) as SystemContract__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SystemContractInterface { + return new Interface(_abi) as SystemContractInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): SystemContract { + return new Contract(address, _abi, runner) as unknown as SystemContract; + } +} diff --git a/v2/typechain-types/factories/SystemContract.sol/index.ts b/v2/typechain-types/factories/SystemContract.sol/index.ts new file mode 100644 index 00000000..32da62eb --- /dev/null +++ b/v2/typechain-types/factories/SystemContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { SystemContract__factory } from "./SystemContract__factory"; +export { SystemContractErrors__factory } from "./SystemContractErrors__factory"; diff --git a/v2/typechain-types/factories/SystemContractMock.sol/SystemContractErrors__factory.ts b/v2/typechain-types/factories/SystemContractMock.sol/SystemContractErrors__factory.ts new file mode 100644 index 00000000..c211372f --- /dev/null +++ b/v2/typechain-types/factories/SystemContractMock.sol/SystemContractErrors__factory.ts @@ -0,0 +1,49 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + SystemContractErrors, + SystemContractErrorsInterface, +} from "../../SystemContractMock.sol/SystemContractErrors"; + +const _abi = [ + { + type: "error", + name: "CallerIsNotFungibleModule", + inputs: [], + }, + { + type: "error", + name: "CantBeIdenticalAddresses", + inputs: [], + }, + { + type: "error", + name: "CantBeZeroAddress", + inputs: [], + }, + { + type: "error", + name: "InvalidTarget", + inputs: [], + }, +] as const; + +export class SystemContractErrors__factory { + static readonly abi = _abi; + static createInterface(): SystemContractErrorsInterface { + return new Interface(_abi) as SystemContractErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): SystemContractErrors { + return new Contract( + address, + _abi, + runner + ) as unknown as SystemContractErrors; + } +} diff --git a/v2/typechain-types/factories/SystemContractMock.sol/SystemContractMock__factory.ts b/v2/typechain-types/factories/SystemContractMock.sol/SystemContractMock__factory.ts new file mode 100644 index 00000000..0135ac55 --- /dev/null +++ b/v2/typechain-types/factories/SystemContractMock.sol/SystemContractMock__factory.ts @@ -0,0 +1,409 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { + SystemContractMock, + SystemContractMockInterface, +} from "../../SystemContractMock.sol/SystemContractMock"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "wzeta_", + type: "address", + internalType: "address", + }, + { + name: "uniswapv2Factory_", + type: "address", + internalType: "address", + }, + { + name: "uniswapv2Router02_", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "gasCoinZRC20ByChainId", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gasPriceByChainId", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gasZetaPoolByChainId", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "onCrossChainCall", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setGasCoinZRC20", + inputs: [ + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setGasPrice", + inputs: [ + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + { + name: "price", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setWZETAContractAddress", + inputs: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "uniswapv2FactoryAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "uniswapv2PairFor", + inputs: [ + { + name: "factory", + type: "address", + internalType: "address", + }, + { + name: "tokenA", + type: "address", + internalType: "address", + }, + { + name: "tokenB", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "pair", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "uniswapv2Router02Address", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "wZetaContractAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "SetGasCoin", + inputs: [ + { + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SetGasPrice", + inputs: [ + { + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SetGasZetaPool", + inputs: [ + { + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SetWZeta", + inputs: [ + { + name: "", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SystemContractDeployed", + inputs: [], + anonymous: false, + }, + { + type: "error", + name: "CallerIsNotFungibleModule", + inputs: [], + }, + { + type: "error", + name: "CantBeIdenticalAddresses", + inputs: [], + }, + { + type: "error", + name: "CantBeZeroAddress", + inputs: [], + }, + { + type: "error", + name: "InvalidTarget", + inputs: [], + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051610b3f380380610b3f83398101604081905261002f916100b9565b600380546001600160a01b038086166001600160a01b0319928316179092556004805485841690831617905560058054928416929091169190911790556040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac590600090a15050506100fc565b80516001600160a01b03811681146100b457600080fd5b919050565b6000806000606084860312156100ce57600080fd5b6100d78461009d565b92506100e56020850161009d565b91506100f36040850161009d565b90509250925092565b610a348061010b6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806397770dff11610081578063d7fd7afb1161005b578063d7fd7afb146101f2578063d936a01214610220578063ee2815ba1461024057600080fd5b806397770dff146101b9578063a7cb0507146101cc578063c63585cc146101df57600080fd5b8063513a9c05116100b2578063513a9c0514610143578063569541b914610179578063842da36d1461019957600080fd5b80630be15547146100ce5780633c669d551461012e575b600080fd5b6101046100dc36600461071e565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61014161013c366004610760565b610253565b005b61010461015136600461071e565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6003546101049073ffffffffffffffffffffffffffffffffffffffff1681565b6005546101049073ffffffffffffffffffffffffffffffffffffffff1681565b6101416101c73660046107fd565b6103a0565b6101416101da36600461081f565b610419565b6101046101ed366004610841565b610467565b61021261020036600461071e565b60006020819052908152604090205481565b604051908152602001610125565b6004546101049073ffffffffffffffffffffffffffffffffffffffff1681565b61014161024e366004610884565b61059c565b604080516080810182526000606082019081528152336020820152468183015290517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526024820186905286169063a9059cbb906044016020604051808303816000875af11580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b91906108b0565b506040517fde43156e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063de43156e90610366908490899089908990899060040161091b565b600060405180830381600087803b15801561038057600080fd5b505af1158015610394573d6000803e3d6000fd5b50505050505050505050565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e9060200160405180910390a150565b6000828152602081815260409182902083905581518481529081018390527f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d91015b60405180910390a15050565b60008060006104768585610620565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084811b8216602084015283901b166034820152919350915086906048016040516020818303038152906040528051906020012060405160200161055c9291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b60008281526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d910161045b565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610688576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106106c25782846106c5565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610717576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b60006020828403121561073057600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461075b57600080fd5b919050565b60008060008060006080868803121561077857600080fd5b61078186610737565b945061078f60208701610737565b935060408601359250606086013567ffffffffffffffff8111156107b257600080fd5b8601601f810188136107c357600080fd5b803567ffffffffffffffff8111156107da57600080fd5b8860208284010111156107ec57600080fd5b959894975092955050506020019190565b60006020828403121561080f57600080fd5b61081882610737565b9392505050565b6000806040838503121561083257600080fd5b50508035926020909101359150565b60008060006060848603121561085657600080fd5b61085f84610737565b925061086d60208501610737565b915061087b60408501610737565b90509250925092565b6000806040838503121561089757600080fd5b823591506108a760208401610737565b90509250929050565b6000602082840312156108c257600080fd5b8151801515811461081857600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600086516060608084015280518060e085015260005b81811015610953576020818401810151610100878401015201610935565b5060008482016101000152602089015173ffffffffffffffffffffffffffffffffffffffff811660a0860152601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168401915050604088015160c084015273ffffffffffffffffffffffffffffffffffffffff871660208401528560408401526101008382030160608401526109f2610100820185876108d2565b9897505050505050505056fea2646970667358221220fbd69f8a6a30bdc247946500ad2bb4f7e9f585a260ef649595b89d427fb12f2064736f6c634300081a0033"; + +type SystemContractMockConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SystemContractMockConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class SystemContractMock__factory extends ContractFactory { + constructor(...args: SystemContractMockConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + wzeta_: AddressLike, + uniswapv2Factory_: AddressLike, + uniswapv2Router02_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + wzeta_, + uniswapv2Factory_, + uniswapv2Router02_, + overrides || {} + ); + } + override deploy( + wzeta_: AddressLike, + uniswapv2Factory_: AddressLike, + uniswapv2Router02_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + wzeta_, + uniswapv2Factory_, + uniswapv2Router02_, + overrides || {} + ) as Promise< + SystemContractMock & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): SystemContractMock__factory { + return super.connect(runner) as SystemContractMock__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SystemContractMockInterface { + return new Interface(_abi) as SystemContractMockInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): SystemContractMock { + return new Contract(address, _abi, runner) as unknown as SystemContractMock; + } +} diff --git a/v2/typechain-types/factories/SystemContractMock.sol/index.ts b/v2/typechain-types/factories/SystemContractMock.sol/index.ts new file mode 100644 index 00000000..006bdc5d --- /dev/null +++ b/v2/typechain-types/factories/SystemContractMock.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { SystemContractErrors__factory } from "./SystemContractErrors__factory"; +export { SystemContractMock__factory } from "./SystemContractMock__factory"; diff --git a/v2/typechain-types/factories/TestERC20__factory.ts b/v2/typechain-types/factories/TestERC20__factory.ts new file mode 100644 index 00000000..3c8adeb0 --- /dev/null +++ b/v2/typechain-types/factories/TestERC20__factory.ts @@ -0,0 +1,409 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { TestERC20, TestERC20Interface } from "../TestERC20"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "symbol", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "mint", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "ERC20InsufficientAllowance", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "allowance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSpender", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033"; + +type TestERC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TestERC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class TestERC20__factory extends ContractFactory { + constructor(...args: TestERC20ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + name: string, + symbol: string, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(name, symbol, overrides || {}); + } + override deploy( + name: string, + symbol: string, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(name, symbol, overrides || {}) as Promise< + TestERC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): TestERC20__factory { + return super.connect(runner) as TestERC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestERC20Interface { + return new Interface(_abi) as TestERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): TestERC20 { + return new Contract(address, _abi, runner) as unknown as TestERC20; + } +} diff --git a/v2/typechain-types/factories/TestZContract__factory.ts b/v2/typechain-types/factories/TestZContract__factory.ts new file mode 100644 index 00000000..3f8682b4 --- /dev/null +++ b/v2/typechain-types/factories/TestZContract__factory.ts @@ -0,0 +1,236 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { TestZContract, TestZContractInterface } from "../TestZContract"; + +const _abi = [ + { + type: "fallback", + stateMutability: "payable", + }, + { + type: "receive", + stateMutability: "payable", + }, + { + type: "function", + name: "onCrossChainCall", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct zContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "onRevert", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct revertContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "ContextData", + inputs: [ + { + name: "origin", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "msgSender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "message", + type: "string", + indexed: false, + internalType: "string", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ContextDataRevert", + inputs: [ + { + name: "origin", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "msgSender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "message", + type: "string", + indexed: false, + internalType: "string", + }, + ], + anonymous: false, + }, +] as const; + +const _bytecode = + "0x6080604052348015600f57600080fd5b506105208061001f6000396000f3fe60806040526004361061002a5760003560e01c806369582bee14610033578063de43156e1461005357005b3661003157005b005b34801561003f57600080fd5b5061003161004e3660046101ba565b610073565b34801561005f57600080fd5b5061003161006e3660046101ba565b6100ee565b6060811561008a5761008782840184610273565b90505b7ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999486100b58780610369565b6100c560408a0160208b016103ce565b896040013533866040516100de969594939291906103f0565b60405180910390a1505050505050565b606081156101055761010282840184610273565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e6100b58780610369565b60006060828403121561014257600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461016c57600080fd5b919050565b60008083601f84011261018357600080fd5b50813567ffffffffffffffff81111561019b57600080fd5b6020830191508360208285010111156101b357600080fd5b9250929050565b6000806000806000608086880312156101d257600080fd5b853567ffffffffffffffff8111156101e957600080fd5b6101f588828901610130565b95505061020460208701610148565b935060408601359250606086013567ffffffffffffffff81111561022757600080fd5b61023388828901610171565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561028557600080fd5b813567ffffffffffffffff81111561029c57600080fd5b8201601f810184136102ad57600080fd5b803567ffffffffffffffff8111156102c7576102c7610244565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561033357610333610244565b60405281815282820160200186101561034b57600080fd5b81602084016020830137600091810160200191909152949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261039e57600080fd5b83018035915067ffffffffffffffff8211156103b957600080fd5b6020019150368190038213156101b357600080fd5b6000602082840312156103e057600080fd5b6103e982610148565b9392505050565b60a081528560a0820152858760c0830137600060c0878301015260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f880116820173ffffffffffffffffffffffffffffffffffffffff8716602084015285604084015273ffffffffffffffffffffffffffffffffffffffff8516606084015260c083820301608084015283518060c083015260005b818110156104a557602081870181015184830160e0015201610488565b50600060e0838301810191909152601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101019897505050505050505056fea2646970667358221220f4d1ccb9c8450e782e1c77412473fd37637a5c83a2a3272307d8c8bc8e8c7a3364736f6c634300081a0033"; + +type TestZContractConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TestZContractConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class TestZContract__factory extends ContractFactory { + constructor(...args: TestZContractConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + TestZContract & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): TestZContract__factory { + return super.connect(runner) as TestZContract__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestZContractInterface { + return new Interface(_abi) as TestZContractInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): TestZContract { + return new Contract(address, _abi, runner) as unknown as TestZContract; + } +} diff --git a/v2/typechain-types/factories/Test__factory.ts b/v2/typechain-types/factories/Test__factory.ts new file mode 100644 index 00000000..1ddaff9b --- /dev/null +++ b/v2/typechain-types/factories/Test__factory.ts @@ -0,0 +1,587 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Test, TestInterface } from "../Test"; + +const _abi = [ + { + type: "function", + name: "IS_TEST", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "excludeArtifacts", + inputs: [], + outputs: [ + { + name: "excludedArtifacts_", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "excludeContracts", + inputs: [], + outputs: [ + { + name: "excludedContracts_", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "excludeSelectors", + inputs: [], + outputs: [ + { + name: "excludedSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzSelector[]", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "selectors", + type: "bytes4[]", + internalType: "bytes4[]", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "excludeSenders", + inputs: [], + outputs: [ + { + name: "excludedSenders_", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "failed", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetArtifactSelectors", + inputs: [], + outputs: [ + { + name: "targetedArtifactSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + components: [ + { + name: "artifact", + type: "string", + internalType: "string", + }, + { + name: "selectors", + type: "bytes4[]", + internalType: "bytes4[]", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetArtifacts", + inputs: [], + outputs: [ + { + name: "targetedArtifacts_", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetContracts", + inputs: [], + outputs: [ + { + name: "targetedContracts_", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetInterfaces", + inputs: [], + outputs: [ + { + name: "targetedInterfaces_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzInterface[]", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "artifacts", + type: "string[]", + internalType: "string[]", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetSelectors", + inputs: [], + outputs: [ + { + name: "targetedSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzSelector[]", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "selectors", + type: "bytes4[]", + internalType: "bytes4[]", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetSenders", + inputs: [], + outputs: [ + { + name: "targetedSenders_", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "log", + inputs: [ + { + name: "", + type: "string", + indexed: false, + internalType: "string", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_address", + inputs: [ + { + name: "", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_array", + inputs: [ + { + name: "val", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_array", + inputs: [ + { + name: "val", + type: "int256[]", + indexed: false, + internalType: "int256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_array", + inputs: [ + { + name: "val", + type: "address[]", + indexed: false, + internalType: "address[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_bytes", + inputs: [ + { + name: "", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_bytes32", + inputs: [ + { + name: "", + type: "bytes32", + indexed: false, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_int", + inputs: [ + { + name: "", + type: "int256", + indexed: false, + internalType: "int256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_address", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_array", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_array", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "int256[]", + indexed: false, + internalType: "int256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_array", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "address[]", + indexed: false, + internalType: "address[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_bytes", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_bytes32", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "bytes32", + indexed: false, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_decimal_int", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "int256", + indexed: false, + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_decimal_uint", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_int", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "int256", + indexed: false, + internalType: "int256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_string", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "string", + indexed: false, + internalType: "string", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_uint", + inputs: [ + { + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_string", + inputs: [ + { + name: "", + type: "string", + indexed: false, + internalType: "string", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_uint", + inputs: [ + { + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "logs", + inputs: [ + { + name: "", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, +] as const; + +export class Test__factory { + static readonly abi = _abi; + static createInterface(): TestInterface { + return new Interface(_abi) as TestInterface; + } + static connect(address: string, runner?: ContractRunner | null): Test { + return new Contract(address, _abi, runner) as unknown as Test; + } +} diff --git a/v2/typechain-types/factories/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.ts b/v2/typechain-types/factories/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.ts new file mode 100644 index 00000000..0e89439e --- /dev/null +++ b/v2/typechain-types/factories/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.ts @@ -0,0 +1,92 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ITransparentUpgradeableProxy, + ITransparentUpgradeableProxyInterface, +} from "../../TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy"; + +const _abi = [ + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "event", + name: "AdminChanged", + inputs: [ + { + name: "previousAdmin", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "newAdmin", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "BeaconUpgraded", + inputs: [ + { + name: "beacon", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, +] as const; + +export class ITransparentUpgradeableProxy__factory { + static readonly abi = _abi; + static createInterface(): ITransparentUpgradeableProxyInterface { + return new Interface(_abi) as ITransparentUpgradeableProxyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ITransparentUpgradeableProxy { + return new Contract( + address, + _abi, + runner + ) as unknown as ITransparentUpgradeableProxy; + } +} diff --git a/v2/typechain-types/factories/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.ts b/v2/typechain-types/factories/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.ts new file mode 100644 index 00000000..4423fc5e --- /dev/null +++ b/v2/typechain-types/factories/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.ts @@ -0,0 +1,202 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BytesLike, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { PayableOverrides } from "../../common"; +import type { + TransparentUpgradeableProxy, + TransparentUpgradeableProxyInterface, +} from "../../TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "_logic", + type: "address", + internalType: "address", + }, + { + name: "initialOwner", + type: "address", + internalType: "address", + }, + { + name: "_data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "payable", + }, + { + type: "fallback", + stateMutability: "payable", + }, + { + type: "event", + name: "AdminChanged", + inputs: [ + { + name: "previousAdmin", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "newAdmin", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidAdmin", + inputs: [ + { + name: "admin", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "ProxyDeniedAdminAccess", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60a060405260405161117a38038061117a8339810160408190526100229161039d565b828161002e828261008f565b50508160405161003d9061033a565b6001600160a01b039091168152602001604051809103906000f080158015610069573d6000803e3d6000fd5b506001600160a01b031660805261008761008260805190565b6100ee565b50505061048f565b6100988261015c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100e2576100dd82826101db565b505050565b6100ea610252565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012e60008051602061115a833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015981610273565b50565b806001600160a01b03163b60000361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101f89190610473565b600060405180830381855af49150503d8060008114610233576040519150601f19603f3d011682016040523d82523d6000602084013e610238565b606091505b5090925090506102498583836102b2565b95945050505050565b34156102715760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029d57604051633173bdd160e11b81526000600482015260240161018e565b8060008051602061115a8339815191526101ba565b6060826102c7576102c282610311565b61030a565b81511580156102de57506001600160a01b0384163b155b1561030757604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b8051156103215780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b61068480610ad683390190565b80516001600160a01b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561039457818101518382015260200161037c565b50506000910152565b6000806000606084860312156103b257600080fd5b6103bb84610347565b92506103c960208501610347565b60408501519092506001600160401b038111156103e557600080fd5b8401601f810186136103f657600080fd5b80516001600160401b0381111561040f5761040f610363565b604051601f8201601f19908116603f011681016001600160401b038111828210171561043d5761043d610363565b60405281815282820160200188101561045557600080fd5b610466826020830160208601610379565b8093505050509250925092565b60008251610485818460208701610379565b9190910192915050565b60805161062d6104a960003960006010015261062d6000f3fe608060405261000c61000e565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036100d2576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100c8576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100d06100da565b565b6100d0610109565b6000806100ea366004818461044d565b8101906100f791906104a6565b915091506101058282610119565b5050565b6100d0610114610181565b6101c6565b610122826101ea565b60405173ffffffffffffffffffffffffffffffffffffffff8316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101795761017482826102be565b505050565b610105610341565b60006101c17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156101e5573d6000f35b3d6000fd5b8073ffffffffffffffffffffffffffffffffffffffff163b600003610258576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102e891906105c8565b600060405180830381855af49150503d8060008114610323576040519150601f19603f3d011682016040523d82523d6000602084013e610328565b606091505b5091509150610338858383610379565b95945050505050565b34156100d0576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608261038e576103898261040b565b610404565b81511580156103b2575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610401576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161024f565b50805b9392505050565b80511561041b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808585111561045d57600080fd5b8386111561046a57600080fd5b5050820193919092039150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156104b957600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146104dd57600080fd5b9150602083013567ffffffffffffffff8111156104f957600080fd5b8301601f8101851361050a57600080fd5b803567ffffffffffffffff81111561052457610524610477565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561059057610590610477565b6040528181528282016020018710156105a857600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000825160005b818110156105e957602081860181015185830152016105cf565b50600092019182525091905056fea2646970667358221220fd77e8da75db1db8869da9f85c4ad64fb3db9f30cb52edf1c23c9afbda1e8dc664736f6c634300081a0033608060405234801561001057600080fd5b5060405161068438038061068483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610587806100fd6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100b0578063ad3cb1cc146100c3578063f2fde38b1461011957600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b50610074610139565b005b34801561008257600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100746100be366004610364565b61014d565b3480156100cf57600080fd5b5061010c6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a791906104e3565b34801561012557600080fd5b506100746101343660046104fd565b6101e2565b61014161024b565b61014b600061029e565b565b61015561024b565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef2869034906101ab908690869060040161051a565b6000604051808303818588803b1580156101c457600080fd5b505af11580156101d8573d6000803e3d6000fd5b5050505050505050565b6101ea61024b565b73ffffffffffffffffffffffffffffffffffffffff811661023f576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6102488161029e565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461014b576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610236565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff8116811461024857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561037957600080fd5b833561038481610313565b9250602084013561039481610313565b9150604084013567ffffffffffffffff8111156103b057600080fd5b8401601f810186136103c157600080fd5b803567ffffffffffffffff8111156103db576103db610335565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561044757610447610335565b60405281815282820160200188101561045f57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b818110156104a557602081850181015186830182015201610489565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006104f6602083018461047f565b9392505050565b60006020828403121561050f57600080fd5b81356104f681610313565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000610549604083018461047f565b94935050505056fea2646970667358221220b68ea0eca96d97adca0a037e1efb26b5d3e690e9fbc1913bb4a08e597cfc70f164736f6c634300081a0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"; + +type TransparentUpgradeableProxyConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TransparentUpgradeableProxyConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class TransparentUpgradeableProxy__factory extends ContractFactory { + constructor(...args: TransparentUpgradeableProxyConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _logic: AddressLike, + initialOwner: AddressLike, + _data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + _logic, + initialOwner, + _data, + overrides || {} + ); + } + override deploy( + _logic: AddressLike, + initialOwner: AddressLike, + _data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ) { + return super.deploy( + _logic, + initialOwner, + _data, + overrides || {} + ) as Promise< + TransparentUpgradeableProxy & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): TransparentUpgradeableProxy__factory { + return super.connect(runner) as TransparentUpgradeableProxy__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TransparentUpgradeableProxyInterface { + return new Interface(_abi) as TransparentUpgradeableProxyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): TransparentUpgradeableProxy { + return new Contract( + address, + _abi, + runner + ) as unknown as TransparentUpgradeableProxy; + } +} diff --git a/v2/typechain-types/factories/TransparentUpgradeableProxy.sol/index.ts b/v2/typechain-types/factories/TransparentUpgradeableProxy.sol/index.ts new file mode 100644 index 00000000..1114d38c --- /dev/null +++ b/v2/typechain-types/factories/TransparentUpgradeableProxy.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ITransparentUpgradeableProxy__factory } from "./ITransparentUpgradeableProxy__factory"; +export { TransparentUpgradeableProxy__factory } from "./TransparentUpgradeableProxy__factory"; diff --git a/v2/typechain-types/factories/UUPSUpgradeable__factory.ts b/v2/typechain-types/factories/UUPSUpgradeable__factory.ts new file mode 100644 index 00000000..2f4fc594 --- /dev/null +++ b/v2/typechain-types/factories/UUPSUpgradeable__factory.ts @@ -0,0 +1,153 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + UUPSUpgradeable, + UUPSUpgradeableInterface, +} from "../UUPSUpgradeable"; + +const _abi = [ + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, +] as const; + +export class UUPSUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): UUPSUpgradeableInterface { + return new Interface(_abi) as UUPSUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UUPSUpgradeable { + return new Contract(address, _abi, runner) as unknown as UUPSUpgradeable; + } +} diff --git a/v2/typechain-types/factories/UpgradeableBeacon__factory.ts b/v2/typechain-types/factories/UpgradeableBeacon__factory.ts new file mode 100644 index 00000000..2b6d399f --- /dev/null +++ b/v2/typechain-types/factories/UpgradeableBeacon__factory.ts @@ -0,0 +1,226 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { + UpgradeableBeacon, + UpgradeableBeaconInterface, +} from "../UpgradeableBeacon"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "implementation_", + type: "address", + internalType: "address", + }, + { + name: "initialOwner", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "implementation", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "owner", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferOwnership", + inputs: [ + { + name: "newOwner", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "upgradeTo", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "OwnershipTransferred", + inputs: [ + { + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "BeaconInvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableInvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b5060405161054538038061054583398101604081905261002f91610165565b806001600160a01b03811661005f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61006881610079565b50610072826100c9565b5050610198565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b6000036100ff5760405163211eb15960e21b81526001600160a01b0382166004820152602401610056565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b80516001600160a01b038116811461016057600080fd5b919050565b6000806040838503121561017857600080fd5b61018183610149565b915061018f60208401610149565b90509250929050565b61039e806101a76000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063715018a611610050578063715018a6146100c45780638da5cb5b146100cc578063f2fde38b146100ea57600080fd5b80633659cfe61461006c5780635c60da1b14610081575b600080fd5b61007f61007a36600461032b565b6100fd565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f610111565b60005473ffffffffffffffffffffffffffffffffffffffff1661009b565b61007f6100f836600461032b565b610125565b61010561018b565b61010e816101de565b50565b61011961018b565b61012360006102b6565b565b61012d61018b565b73ffffffffffffffffffffffffffffffffffffffff8116610182576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b61010e816102b6565b60005473ffffffffffffffffffffffffffffffffffffffff163314610123576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610179565b8073ffffffffffffffffffffffffffffffffffffffff163b600003610247576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610179565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561033d57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461036157600080fd5b939250505056fea264697066735822122063e6ac8c10cb14b9254b2b497f04ed7c7aa519086cae45504282764c66a749f364736f6c634300081a0033"; + +type UpgradeableBeaconConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: UpgradeableBeaconConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class UpgradeableBeacon__factory extends ContractFactory { + constructor(...args: UpgradeableBeaconConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + implementation_: AddressLike, + initialOwner: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + implementation_, + initialOwner, + overrides || {} + ); + } + override deploy( + implementation_: AddressLike, + initialOwner: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + implementation_, + initialOwner, + overrides || {} + ) as Promise< + UpgradeableBeacon & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): UpgradeableBeacon__factory { + return super.connect(runner) as UpgradeableBeacon__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UpgradeableBeaconInterface { + return new Interface(_abi) as UpgradeableBeaconInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UpgradeableBeacon { + return new Contract(address, _abi, runner) as unknown as UpgradeableBeacon; + } +} diff --git a/v2/typechain-types/factories/Vm.sol/VmSafe__factory.ts b/v2/typechain-types/factories/Vm.sol/VmSafe__factory.ts new file mode 100644 index 00000000..c77af7eb --- /dev/null +++ b/v2/typechain-types/factories/Vm.sol/VmSafe__factory.ts @@ -0,0 +1,7526 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { VmSafe, VmSafeInterface } from "../../Vm.sol/VmSafe"; + +const _abi = [ + { + type: "function", + name: "accesses", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "readSlots", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "writeSlots", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "addr", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "keyAddr", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbs", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbs", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbs", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbs", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbsDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbsDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbsDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbsDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRel", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRel", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRel", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRel", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRelDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRelDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRelDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRelDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "right", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "right", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "address", + internalType: "address", + }, + { + name: "right", + type: "address", + internalType: "address", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "string", + internalType: "string", + }, + { + name: "right", + type: "string", + internalType: "string", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "address[]", + internalType: "address[]", + }, + { + name: "right", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "address[]", + internalType: "address[]", + }, + { + name: "right", + type: "address[]", + internalType: "address[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bool", + internalType: "bool", + }, + { + name: "right", + type: "bool", + internalType: "bool", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "address", + internalType: "address", + }, + { + name: "right", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "right", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "right", + type: "bool[]", + internalType: "bool[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "right", + type: "int256[]", + internalType: "int256[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "right", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "right", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes", + internalType: "bytes", + }, + { + name: "right", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "right", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "string[]", + internalType: "string[]", + }, + { + name: "right", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "right", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes", + internalType: "bytes", + }, + { + name: "right", + type: "bytes", + internalType: "bytes", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "right", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "right", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "string[]", + internalType: "string[]", + }, + { + name: "right", + type: "string[]", + internalType: "string[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "string", + internalType: "string", + }, + { + name: "right", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "right", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bool", + internalType: "bool", + }, + { + name: "right", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEqDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEqDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEqDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEqDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertFalse", + inputs: [ + { + name: "condition", + type: "bool", + internalType: "bool", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertFalse", + inputs: [ + { + name: "condition", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGe", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGe", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGe", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGe", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGeDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGeDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGeDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGeDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGt", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGt", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGt", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGt", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGtDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGtDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGtDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGtDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLe", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLe", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLe", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLe", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLeDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLeDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLeDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLeDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLt", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLt", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLt", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLt", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLtDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLtDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLtDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLtDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "right", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "right", + type: "int256[]", + internalType: "int256[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bool", + internalType: "bool", + }, + { + name: "right", + type: "bool", + internalType: "bool", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "right", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bool", + internalType: "bool", + }, + { + name: "right", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "right", + type: "bool[]", + internalType: "bool[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes", + internalType: "bytes", + }, + { + name: "right", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "address[]", + internalType: "address[]", + }, + { + name: "right", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "right", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "right", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "string", + internalType: "string", + }, + { + name: "right", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "address[]", + internalType: "address[]", + }, + { + name: "right", + type: "address[]", + internalType: "address[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "string", + internalType: "string", + }, + { + name: "right", + type: "string", + internalType: "string", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "address", + internalType: "address", + }, + { + name: "right", + type: "address", + internalType: "address", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "right", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes", + internalType: "bytes", + }, + { + name: "right", + type: "bytes", + internalType: "bytes", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "right", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "address", + internalType: "address", + }, + { + name: "right", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "right", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "string[]", + internalType: "string[]", + }, + { + name: "right", + type: "string[]", + internalType: "string[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "right", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "string[]", + internalType: "string[]", + }, + { + name: "right", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "right", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "right", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEqDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEqDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEqDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEqDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertTrue", + inputs: [ + { + name: "condition", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertTrue", + inputs: [ + { + name: "condition", + type: "bool", + internalType: "bool", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assume", + inputs: [ + { + name: "condition", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "breakpoint", + inputs: [ + { + name: "char", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "breakpoint", + inputs: [ + { + name: "char", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "broadcast", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "broadcast", + inputs: [ + { + name: "signer", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "broadcast", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "closeFile", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "computeCreate2Address", + inputs: [ + { + name: "salt", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "initCodeHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "computeCreate2Address", + inputs: [ + { + name: "salt", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "initCodeHash", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "deployer", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "computeCreateAddress", + inputs: [ + { + name: "deployer", + type: "address", + internalType: "address", + }, + { + name: "nonce", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "copyFile", + inputs: [ + { + name: "from", + type: "string", + internalType: "string", + }, + { + name: "to", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "copied", + type: "uint64", + internalType: "uint64", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "recursive", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createWallet", + inputs: [ + { + name: "walletLabel", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "publicKeyX", + type: "uint256", + internalType: "uint256", + }, + { + name: "publicKeyY", + type: "uint256", + internalType: "uint256", + }, + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createWallet", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "publicKeyX", + type: "uint256", + internalType: "uint256", + }, + { + name: "publicKeyY", + type: "uint256", + internalType: "uint256", + }, + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createWallet", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + { + name: "walletLabel", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "publicKeyX", + type: "uint256", + internalType: "uint256", + }, + { + name: "publicKeyY", + type: "uint256", + internalType: "uint256", + }, + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deployCode", + inputs: [ + { + name: "artifactPath", + type: "string", + internalType: "string", + }, + { + name: "constructorArgs", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "deployedAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deployCode", + inputs: [ + { + name: "artifactPath", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "deployedAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deriveKey", + inputs: [ + { + name: "mnemonic", + type: "string", + internalType: "string", + }, + { + name: "derivationPath", + type: "string", + internalType: "string", + }, + { + name: "index", + type: "uint32", + internalType: "uint32", + }, + { + name: "language", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "deriveKey", + inputs: [ + { + name: "mnemonic", + type: "string", + internalType: "string", + }, + { + name: "index", + type: "uint32", + internalType: "uint32", + }, + { + name: "language", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "deriveKey", + inputs: [ + { + name: "mnemonic", + type: "string", + internalType: "string", + }, + { + name: "index", + type: "uint32", + internalType: "uint32", + }, + ], + outputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "deriveKey", + inputs: [ + { + name: "mnemonic", + type: "string", + internalType: "string", + }, + { + name: "derivationPath", + type: "string", + internalType: "string", + }, + { + name: "index", + type: "uint32", + internalType: "uint32", + }, + ], + outputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "ensNamehash", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "envAddress", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envAddress", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBool", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBool", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bool[]", + internalType: "bool[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBytes", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBytes", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBytes32", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBytes32", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envExists", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "result", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envInt", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "int256[]", + internalType: "int256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envInt", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "int256", + internalType: "int256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [ + { + name: "value", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "int256[]", + internalType: "int256[]", + }, + ], + outputs: [ + { + name: "value", + type: "int256[]", + internalType: "int256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bool", + internalType: "bool", + }, + ], + outputs: [ + { + name: "value", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "value", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + outputs: [ + { + name: "value", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "value", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [ + { + name: "value", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "int256", + internalType: "int256", + }, + ], + outputs: [ + { + name: "value", + type: "int256", + internalType: "int256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [ + { + name: "value", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bool[]", + internalType: "bool[]", + }, + ], + outputs: [ + { + name: "value", + type: "bool[]", + internalType: "bool[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envString", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envString", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envUint", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envUint", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "eth_getLogs", + inputs: [ + { + name: "fromBlock", + type: "uint256", + internalType: "uint256", + }, + { + name: "toBlock", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "topics", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [ + { + name: "logs", + type: "tuple[]", + internalType: "struct VmSafe.EthGetLogs[]", + components: [ + { + name: "emitter", + type: "address", + internalType: "address", + }, + { + name: "topics", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "blockHash", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "blockNumber", + type: "uint64", + internalType: "uint64", + }, + { + name: "transactionHash", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "transactionIndex", + type: "uint64", + internalType: "uint64", + }, + { + name: "logIndex", + type: "uint256", + internalType: "uint256", + }, + { + name: "removed", + type: "bool", + internalType: "bool", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "exists", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "result", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "ffi", + inputs: [ + { + name: "commandInput", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [ + { + name: "result", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "fsMetadata", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "metadata", + type: "tuple", + internalType: "struct VmSafe.FsMetadata", + components: [ + { + name: "isDir", + type: "bool", + internalType: "bool", + }, + { + name: "isSymlink", + type: "bool", + internalType: "bool", + }, + { + name: "length", + type: "uint256", + internalType: "uint256", + }, + { + name: "readOnly", + type: "bool", + internalType: "bool", + }, + { + name: "modified", + type: "uint256", + internalType: "uint256", + }, + { + name: "accessed", + type: "uint256", + internalType: "uint256", + }, + { + name: "created", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getBlobBaseFee", + inputs: [], + outputs: [ + { + name: "blobBaseFee", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getBlockNumber", + inputs: [], + outputs: [ + { + name: "height", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getBlockTimestamp", + inputs: [], + outputs: [ + { + name: "timestamp", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getCode", + inputs: [ + { + name: "artifactPath", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "creationBytecode", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getDeployedCode", + inputs: [ + { + name: "artifactPath", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "runtimeBytecode", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getLabel", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "currentLabel", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getMappingKeyAndParentOf", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "elementSlot", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "found", + type: "bool", + internalType: "bool", + }, + { + name: "key", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "parent", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "getMappingLength", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "mappingSlot", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "length", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "getMappingSlotAt", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "mappingSlot", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "idx", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "getNonce", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "nonce", + type: "uint64", + internalType: "uint64", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getNonce", + inputs: [ + { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "publicKeyX", + type: "uint256", + internalType: "uint256", + }, + { + name: "publicKeyY", + type: "uint256", + internalType: "uint256", + }, + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + outputs: [ + { + name: "nonce", + type: "uint64", + internalType: "uint64", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "getRecordedLogs", + inputs: [], + outputs: [ + { + name: "logs", + type: "tuple[]", + internalType: "struct VmSafe.Log[]", + components: [ + { + name: "topics", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "emitter", + type: "address", + internalType: "address", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "indexOf", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "isContext", + inputs: [ + { + name: "context", + type: "uint8", + internalType: "enum VmSafe.ForgeContext", + }, + ], + outputs: [ + { + name: "result", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "result", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "isFile", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "result", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "keyExists", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "keyExistsJson", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "keyExistsToml", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "label", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "newLabel", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "lastCallGas", + inputs: [], + outputs: [ + { + name: "gas", + type: "tuple", + internalType: "struct VmSafe.Gas", + components: [ + { + name: "gasLimit", + type: "uint64", + internalType: "uint64", + }, + { + name: "gasTotalUsed", + type: "uint64", + internalType: "uint64", + }, + { + name: "gasMemoryUsed", + type: "uint64", + internalType: "uint64", + }, + { + name: "gasRefunded", + type: "int64", + internalType: "int64", + }, + { + name: "gasRemaining", + type: "uint64", + internalType: "uint64", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "load", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "data", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "parseAddress", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseBool", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseBytes", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseBytes32", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseInt", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "int256", + internalType: "int256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJson", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "abiEncodedData", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJson", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "abiEncodedData", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonAddress", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonAddressArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBool", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBoolArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool[]", + internalType: "bool[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBytes", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBytes32", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBytes32Array", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBytesArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonInt", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "int256", + internalType: "int256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonIntArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "int256[]", + internalType: "int256[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonKeys", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "keys", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonString", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonStringArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonType", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "typeDescription", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonType", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + { + name: "typeDescription", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonTypeArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + { + name: "typeDescription", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonUint", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonUintArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseToml", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "abiEncodedData", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseToml", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "abiEncodedData", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlAddress", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlAddressArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBool", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBoolArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool[]", + internalType: "bool[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBytes", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBytes32", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBytes32Array", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBytesArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlInt", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "int256", + internalType: "int256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlIntArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "int256[]", + internalType: "int256[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlKeys", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "keys", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlString", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlStringArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlUint", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlUintArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseUint", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "pauseGasMetering", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "projectRoot", + inputs: [], + outputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "prompt", + inputs: [ + { + name: "promptText", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "promptAddress", + inputs: [ + { + name: "promptText", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "promptSecret", + inputs: [ + { + name: "promptText", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "promptSecretUint", + inputs: [ + { + name: "promptText", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "promptUint", + inputs: [ + { + name: "promptText", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "randomAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "randomUint", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "randomUint", + inputs: [ + { + name: "min", + type: "uint256", + internalType: "uint256", + }, + { + name: "max", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "readDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "maxDepth", + type: "uint64", + internalType: "uint64", + }, + ], + outputs: [ + { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", + components: [ + { + name: "errorMessage", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "depth", + type: "uint64", + internalType: "uint64", + }, + { + name: "isDir", + type: "bool", + internalType: "bool", + }, + { + name: "isSymlink", + type: "bool", + internalType: "bool", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "maxDepth", + type: "uint64", + internalType: "uint64", + }, + { + name: "followLinks", + type: "bool", + internalType: "bool", + }, + ], + outputs: [ + { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", + components: [ + { + name: "errorMessage", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "depth", + type: "uint64", + internalType: "uint64", + }, + { + name: "isDir", + type: "bool", + internalType: "bool", + }, + { + name: "isSymlink", + type: "bool", + internalType: "bool", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", + components: [ + { + name: "errorMessage", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "depth", + type: "uint64", + internalType: "uint64", + }, + { + name: "isDir", + type: "bool", + internalType: "bool", + }, + { + name: "isSymlink", + type: "bool", + internalType: "bool", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readFile", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "data", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readFileBinary", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readLine", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "line", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readLink", + inputs: [ + { + name: "linkPath", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "targetPath", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "record", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "recordLogs", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rememberKey", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "keyAddr", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "removeDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "recursive", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "removeFile", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "replace", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + { + name: "from", + type: "string", + internalType: "string", + }, + { + name: "to", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "output", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "resumeGasMetering", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rpc", + inputs: [ + { + name: "urlOrAlias", + type: "string", + internalType: "string", + }, + { + name: "method", + type: "string", + internalType: "string", + }, + { + name: "params", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rpc", + inputs: [ + { + name: "method", + type: "string", + internalType: "string", + }, + { + name: "params", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rpcUrl", + inputs: [ + { + name: "rpcAlias", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "rpcUrlStructs", + inputs: [], + outputs: [ + { + name: "urls", + type: "tuple[]", + internalType: "struct VmSafe.Rpc[]", + components: [ + { + name: "key", + type: "string", + internalType: "string", + }, + { + name: "url", + type: "string", + internalType: "string", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "rpcUrls", + inputs: [], + outputs: [ + { + name: "urls", + type: "string[2][]", + internalType: "string[2][]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "serializeAddress", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeAddress", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBool", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "bool[]", + internalType: "bool[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBool", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bool", + internalType: "bool", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBytes", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBytes", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBytes32", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBytes32", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeInt", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "int256", + internalType: "int256", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeInt", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "int256[]", + internalType: "int256[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeJson", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeJsonType", + inputs: [ + { + name: "typeDescription", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "serializeJsonType", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "typeDescription", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeString", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeString", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeUint", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeUint", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeUintToHex", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setEnv", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "sign", + inputs: [ + { + name: "digest", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "v", + type: "uint8", + internalType: "uint8", + }, + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "sign", + inputs: [ + { + name: "signer", + type: "address", + internalType: "address", + }, + { + name: "digest", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "v", + type: "uint8", + internalType: "uint8", + }, + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "sign", + inputs: [ + { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "publicKeyX", + type: "uint256", + internalType: "uint256", + }, + { + name: "publicKeyY", + type: "uint256", + internalType: "uint256", + }, + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "digest", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "v", + type: "uint8", + internalType: "uint8", + }, + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "sign", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + { + name: "digest", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "v", + type: "uint8", + internalType: "uint8", + }, + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "signP256", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + { + name: "digest", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "sleep", + inputs: [ + { + name: "duration", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "split", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + { + name: "delimiter", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "outputs", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "startBroadcast", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "startBroadcast", + inputs: [ + { + name: "signer", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "startBroadcast", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "startMappingRecording", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "startStateDiffRecording", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "stopAndReturnStateDiff", + inputs: [], + outputs: [ + { + name: "accountAccesses", + type: "tuple[]", + internalType: "struct VmSafe.AccountAccess[]", + components: [ + { + name: "chainInfo", + type: "tuple", + internalType: "struct VmSafe.ChainInfo", + components: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + { + name: "chainId", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "kind", + type: "uint8", + internalType: "enum VmSafe.AccountAccessKind", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "accessor", + type: "address", + internalType: "address", + }, + { + name: "initialized", + type: "bool", + internalType: "bool", + }, + { + name: "oldBalance", + type: "uint256", + internalType: "uint256", + }, + { + name: "newBalance", + type: "uint256", + internalType: "uint256", + }, + { + name: "deployedCode", + type: "bytes", + internalType: "bytes", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "reverted", + type: "bool", + internalType: "bool", + }, + { + name: "storageAccesses", + type: "tuple[]", + internalType: "struct VmSafe.StorageAccess[]", + components: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "isWrite", + type: "bool", + internalType: "bool", + }, + { + name: "previousValue", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "newValue", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "reverted", + type: "bool", + internalType: "bool", + }, + ], + }, + { + name: "depth", + type: "uint64", + internalType: "uint64", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "stopBroadcast", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "stopMappingRecording", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "toBase64", + inputs: [ + { + name: "data", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toBase64", + inputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toBase64URL", + inputs: [ + { + name: "data", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toBase64URL", + inputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toLowercase", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "output", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "bool", + internalType: "bool", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "int256", + internalType: "int256", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toUppercase", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "output", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "trim", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "output", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "tryFfi", + inputs: [ + { + name: "commandInput", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [ + { + name: "result", + type: "tuple", + internalType: "struct VmSafe.FfiResult", + components: [ + { + name: "exitCode", + type: "int32", + internalType: "int32", + }, + { + name: "stdout", + type: "bytes", + internalType: "bytes", + }, + { + name: "stderr", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "unixTime", + inputs: [], + outputs: [ + { + name: "milliseconds", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeFile", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "data", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeFileBinary", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeJson", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeJson", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeLine", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "data", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeToml", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeToml", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, +] as const; + +export class VmSafe__factory { + static readonly abi = _abi; + static createInterface(): VmSafeInterface { + return new Interface(_abi) as VmSafeInterface; + } + static connect(address: string, runner?: ContractRunner | null): VmSafe { + return new Contract(address, _abi, runner) as unknown as VmSafe; + } +} diff --git a/v2/typechain-types/factories/Vm.sol/Vm__factory.ts b/v2/typechain-types/factories/Vm.sol/Vm__factory.ts new file mode 100644 index 00000000..722aee90 --- /dev/null +++ b/v2/typechain-types/factories/Vm.sol/Vm__factory.ts @@ -0,0 +1,8965 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Vm, VmInterface } from "../../Vm.sol/Vm"; + +const _abi = [ + { + type: "function", + name: "accesses", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "readSlots", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "writeSlots", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "activeFork", + inputs: [], + outputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "addr", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "keyAddr", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "allowCheatcodes", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "assertApproxEqAbs", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbs", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbs", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbs", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbsDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbsDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbsDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqAbsDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRel", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRel", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRel", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRel", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRelDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRelDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRelDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertApproxEqRelDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "maxPercentDelta", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "right", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "right", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "address", + internalType: "address", + }, + { + name: "right", + type: "address", + internalType: "address", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "string", + internalType: "string", + }, + { + name: "right", + type: "string", + internalType: "string", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "address[]", + internalType: "address[]", + }, + { + name: "right", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "address[]", + internalType: "address[]", + }, + { + name: "right", + type: "address[]", + internalType: "address[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bool", + internalType: "bool", + }, + { + name: "right", + type: "bool", + internalType: "bool", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "address", + internalType: "address", + }, + { + name: "right", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "right", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "right", + type: "bool[]", + internalType: "bool[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "right", + type: "int256[]", + internalType: "int256[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "right", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "right", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes", + internalType: "bytes", + }, + { + name: "right", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "right", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "string[]", + internalType: "string[]", + }, + { + name: "right", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "right", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes", + internalType: "bytes", + }, + { + name: "right", + type: "bytes", + internalType: "bytes", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "right", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "right", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "string[]", + internalType: "string[]", + }, + { + name: "right", + type: "string[]", + internalType: "string[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "string", + internalType: "string", + }, + { + name: "right", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "right", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "bool", + internalType: "bool", + }, + { + name: "right", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEq", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEqDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEqDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEqDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertEqDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertFalse", + inputs: [ + { + name: "condition", + type: "bool", + internalType: "bool", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertFalse", + inputs: [ + { + name: "condition", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGe", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGe", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGe", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGe", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGeDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGeDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGeDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGeDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGt", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGt", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGt", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGt", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGtDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGtDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGtDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertGtDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLe", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLe", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLe", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLe", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLeDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLeDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLeDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLeDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLt", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLt", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLt", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLt", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLtDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLtDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLtDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertLtDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "right", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "right", + type: "int256[]", + internalType: "int256[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bool", + internalType: "bool", + }, + { + name: "right", + type: "bool", + internalType: "bool", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "right", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bool", + internalType: "bool", + }, + { + name: "right", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "right", + type: "bool[]", + internalType: "bool[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes", + internalType: "bytes", + }, + { + name: "right", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "address[]", + internalType: "address[]", + }, + { + name: "right", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "right", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "right", + type: "bool[]", + internalType: "bool[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "string", + internalType: "string", + }, + { + name: "right", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "address[]", + internalType: "address[]", + }, + { + name: "right", + type: "address[]", + internalType: "address[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "string", + internalType: "string", + }, + { + name: "right", + type: "string", + internalType: "string", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "address", + internalType: "address", + }, + { + name: "right", + type: "address", + internalType: "address", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "right", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes", + internalType: "bytes", + }, + { + name: "right", + type: "bytes", + internalType: "bytes", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "right", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "address", + internalType: "address", + }, + { + name: "right", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "right", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "string[]", + internalType: "string[]", + }, + { + name: "right", + type: "string[]", + internalType: "string[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "right", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "string[]", + internalType: "string[]", + }, + { + name: "right", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "right", + type: "int256[]", + internalType: "int256[]", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "bytes[]", + internalType: "bytes[]", + }, + { + name: "right", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEq", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEqDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEqDecimal", + inputs: [ + { + name: "left", + type: "int256", + internalType: "int256", + }, + { + name: "right", + type: "int256", + internalType: "int256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEqDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertNotEqDecimal", + inputs: [ + { + name: "left", + type: "uint256", + internalType: "uint256", + }, + { + name: "right", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertTrue", + inputs: [ + { + name: "condition", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assertTrue", + inputs: [ + { + name: "condition", + type: "bool", + internalType: "bool", + }, + { + name: "error", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "assume", + inputs: [ + { + name: "condition", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "pure", + }, + { + type: "function", + name: "blobBaseFee", + inputs: [ + { + name: "newBlobBaseFee", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "blobhashes", + inputs: [ + { + name: "hashes", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "breakpoint", + inputs: [ + { + name: "char", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "breakpoint", + inputs: [ + { + name: "char", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "broadcast", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "broadcast", + inputs: [ + { + name: "signer", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "broadcast", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "chainId", + inputs: [ + { + name: "newChainId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "clearMockedCalls", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "closeFile", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "coinbase", + inputs: [ + { + name: "newCoinbase", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "computeCreate2Address", + inputs: [ + { + name: "salt", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "initCodeHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "computeCreate2Address", + inputs: [ + { + name: "salt", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "initCodeHash", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "deployer", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "computeCreateAddress", + inputs: [ + { + name: "deployer", + type: "address", + internalType: "address", + }, + { + name: "nonce", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "copyFile", + inputs: [ + { + name: "from", + type: "string", + internalType: "string", + }, + { + name: "to", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "copied", + type: "uint64", + internalType: "uint64", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "recursive", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createFork", + inputs: [ + { + name: "urlOrAlias", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createFork", + inputs: [ + { + name: "urlOrAlias", + type: "string", + internalType: "string", + }, + { + name: "blockNumber", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createFork", + inputs: [ + { + name: "urlOrAlias", + type: "string", + internalType: "string", + }, + { + name: "txHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createSelectFork", + inputs: [ + { + name: "urlOrAlias", + type: "string", + internalType: "string", + }, + { + name: "blockNumber", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createSelectFork", + inputs: [ + { + name: "urlOrAlias", + type: "string", + internalType: "string", + }, + { + name: "txHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createSelectFork", + inputs: [ + { + name: "urlOrAlias", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createWallet", + inputs: [ + { + name: "walletLabel", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "publicKeyX", + type: "uint256", + internalType: "uint256", + }, + { + name: "publicKeyY", + type: "uint256", + internalType: "uint256", + }, + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createWallet", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "publicKeyX", + type: "uint256", + internalType: "uint256", + }, + { + name: "publicKeyY", + type: "uint256", + internalType: "uint256", + }, + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createWallet", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + { + name: "walletLabel", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "publicKeyX", + type: "uint256", + internalType: "uint256", + }, + { + name: "publicKeyY", + type: "uint256", + internalType: "uint256", + }, + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deal", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "newBalance", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deleteSnapshot", + inputs: [ + { + name: "snapshotId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "success", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deleteSnapshots", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deployCode", + inputs: [ + { + name: "artifactPath", + type: "string", + internalType: "string", + }, + { + name: "constructorArgs", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "deployedAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deployCode", + inputs: [ + { + name: "artifactPath", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "deployedAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deriveKey", + inputs: [ + { + name: "mnemonic", + type: "string", + internalType: "string", + }, + { + name: "derivationPath", + type: "string", + internalType: "string", + }, + { + name: "index", + type: "uint32", + internalType: "uint32", + }, + { + name: "language", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "deriveKey", + inputs: [ + { + name: "mnemonic", + type: "string", + internalType: "string", + }, + { + name: "index", + type: "uint32", + internalType: "uint32", + }, + { + name: "language", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "deriveKey", + inputs: [ + { + name: "mnemonic", + type: "string", + internalType: "string", + }, + { + name: "index", + type: "uint32", + internalType: "uint32", + }, + ], + outputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "deriveKey", + inputs: [ + { + name: "mnemonic", + type: "string", + internalType: "string", + }, + { + name: "derivationPath", + type: "string", + internalType: "string", + }, + { + name: "index", + type: "uint32", + internalType: "uint32", + }, + ], + outputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "difficulty", + inputs: [ + { + name: "newDifficulty", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "dumpState", + inputs: [ + { + name: "pathToStateJson", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "ensNamehash", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "envAddress", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envAddress", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBool", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBool", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bool[]", + internalType: "bool[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBytes", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBytes", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBytes32", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envBytes32", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envExists", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "result", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envInt", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "int256[]", + internalType: "int256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envInt", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "int256", + internalType: "int256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [ + { + name: "value", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "int256[]", + internalType: "int256[]", + }, + ], + outputs: [ + { + name: "value", + type: "int256[]", + internalType: "int256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bool", + internalType: "bool", + }, + ], + outputs: [ + { + name: "value", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "value", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + outputs: [ + { + name: "value", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "value", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [ + { + name: "value", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "int256", + internalType: "int256", + }, + ], + outputs: [ + { + name: "value", + type: "int256", + internalType: "int256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [ + { + name: "value", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envOr", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + { + name: "defaultValue", + type: "bool[]", + internalType: "bool[]", + }, + ], + outputs: [ + { + name: "value", + type: "bool[]", + internalType: "bool[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envString", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envString", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envUint", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "envUint", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "delim", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "value", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "etch", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "newRuntimeBytecode", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "eth_getLogs", + inputs: [ + { + name: "fromBlock", + type: "uint256", + internalType: "uint256", + }, + { + name: "toBlock", + type: "uint256", + internalType: "uint256", + }, + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "topics", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [ + { + name: "logs", + type: "tuple[]", + internalType: "struct VmSafe.EthGetLogs[]", + components: [ + { + name: "emitter", + type: "address", + internalType: "address", + }, + { + name: "topics", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "blockHash", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "blockNumber", + type: "uint64", + internalType: "uint64", + }, + { + name: "transactionHash", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "transactionIndex", + type: "uint64", + internalType: "uint64", + }, + { + name: "logIndex", + type: "uint256", + internalType: "uint256", + }, + { + name: "removed", + type: "bool", + internalType: "bool", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "exists", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "result", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectCall", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "msgValue", + type: "uint256", + internalType: "uint256", + }, + { + name: "gas", + type: "uint64", + internalType: "uint64", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectCall", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "msgValue", + type: "uint256", + internalType: "uint256", + }, + { + name: "gas", + type: "uint64", + internalType: "uint64", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "count", + type: "uint64", + internalType: "uint64", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectCall", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "msgValue", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "count", + type: "uint64", + internalType: "uint64", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectCall", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectCall", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "count", + type: "uint64", + internalType: "uint64", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectCall", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "msgValue", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectCallMinGas", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "msgValue", + type: "uint256", + internalType: "uint256", + }, + { + name: "minGas", + type: "uint64", + internalType: "uint64", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectCallMinGas", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "msgValue", + type: "uint256", + internalType: "uint256", + }, + { + name: "minGas", + type: "uint64", + internalType: "uint64", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "count", + type: "uint64", + internalType: "uint64", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectEmit", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectEmit", + inputs: [ + { + name: "checkTopic1", + type: "bool", + internalType: "bool", + }, + { + name: "checkTopic2", + type: "bool", + internalType: "bool", + }, + { + name: "checkTopic3", + type: "bool", + internalType: "bool", + }, + { + name: "checkData", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectEmit", + inputs: [ + { + name: "checkTopic1", + type: "bool", + internalType: "bool", + }, + { + name: "checkTopic2", + type: "bool", + internalType: "bool", + }, + { + name: "checkTopic3", + type: "bool", + internalType: "bool", + }, + { + name: "checkData", + type: "bool", + internalType: "bool", + }, + { + name: "emitter", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectEmit", + inputs: [ + { + name: "emitter", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectEmitAnonymous", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectEmitAnonymous", + inputs: [ + { + name: "emitter", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectEmitAnonymous", + inputs: [ + { + name: "checkTopic0", + type: "bool", + internalType: "bool", + }, + { + name: "checkTopic1", + type: "bool", + internalType: "bool", + }, + { + name: "checkTopic2", + type: "bool", + internalType: "bool", + }, + { + name: "checkTopic3", + type: "bool", + internalType: "bool", + }, + { + name: "checkData", + type: "bool", + internalType: "bool", + }, + { + name: "emitter", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectEmitAnonymous", + inputs: [ + { + name: "checkTopic0", + type: "bool", + internalType: "bool", + }, + { + name: "checkTopic1", + type: "bool", + internalType: "bool", + }, + { + name: "checkTopic2", + type: "bool", + internalType: "bool", + }, + { + name: "checkTopic3", + type: "bool", + internalType: "bool", + }, + { + name: "checkData", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectRevert", + inputs: [ + { + name: "revertData", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectRevert", + inputs: [ + { + name: "revertData", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectRevert", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectSafeMemory", + inputs: [ + { + name: "min", + type: "uint64", + internalType: "uint64", + }, + { + name: "max", + type: "uint64", + internalType: "uint64", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "expectSafeMemoryCall", + inputs: [ + { + name: "min", + type: "uint64", + internalType: "uint64", + }, + { + name: "max", + type: "uint64", + internalType: "uint64", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "fee", + inputs: [ + { + name: "newBasefee", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "ffi", + inputs: [ + { + name: "commandInput", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [ + { + name: "result", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "fsMetadata", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "metadata", + type: "tuple", + internalType: "struct VmSafe.FsMetadata", + components: [ + { + name: "isDir", + type: "bool", + internalType: "bool", + }, + { + name: "isSymlink", + type: "bool", + internalType: "bool", + }, + { + name: "length", + type: "uint256", + internalType: "uint256", + }, + { + name: "readOnly", + type: "bool", + internalType: "bool", + }, + { + name: "modified", + type: "uint256", + internalType: "uint256", + }, + { + name: "accessed", + type: "uint256", + internalType: "uint256", + }, + { + name: "created", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getBlobBaseFee", + inputs: [], + outputs: [ + { + name: "blobBaseFee", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getBlobhashes", + inputs: [], + outputs: [ + { + name: "hashes", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getBlockNumber", + inputs: [], + outputs: [ + { + name: "height", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getBlockTimestamp", + inputs: [], + outputs: [ + { + name: "timestamp", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getCode", + inputs: [ + { + name: "artifactPath", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "creationBytecode", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getDeployedCode", + inputs: [ + { + name: "artifactPath", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "runtimeBytecode", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getLabel", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "currentLabel", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getMappingKeyAndParentOf", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "elementSlot", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "found", + type: "bool", + internalType: "bool", + }, + { + name: "key", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "parent", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "getMappingLength", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "mappingSlot", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "length", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "getMappingSlotAt", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "mappingSlot", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "idx", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "getNonce", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "nonce", + type: "uint64", + internalType: "uint64", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getNonce", + inputs: [ + { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "publicKeyX", + type: "uint256", + internalType: "uint256", + }, + { + name: "publicKeyY", + type: "uint256", + internalType: "uint256", + }, + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + outputs: [ + { + name: "nonce", + type: "uint64", + internalType: "uint64", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "getRecordedLogs", + inputs: [], + outputs: [ + { + name: "logs", + type: "tuple[]", + internalType: "struct VmSafe.Log[]", + components: [ + { + name: "topics", + type: "bytes32[]", + internalType: "bytes32[]", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "emitter", + type: "address", + internalType: "address", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "indexOf", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "isContext", + inputs: [ + { + name: "context", + type: "uint8", + internalType: "enum VmSafe.ForgeContext", + }, + ], + outputs: [ + { + name: "result", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "result", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "isFile", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "result", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "isPersistent", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "persistent", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "keyExists", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "keyExistsJson", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "keyExistsToml", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "label", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "newLabel", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "lastCallGas", + inputs: [], + outputs: [ + { + name: "gas", + type: "tuple", + internalType: "struct VmSafe.Gas", + components: [ + { + name: "gasLimit", + type: "uint64", + internalType: "uint64", + }, + { + name: "gasTotalUsed", + type: "uint64", + internalType: "uint64", + }, + { + name: "gasMemoryUsed", + type: "uint64", + internalType: "uint64", + }, + { + name: "gasRefunded", + type: "int64", + internalType: "int64", + }, + { + name: "gasRemaining", + type: "uint64", + internalType: "uint64", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "load", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "data", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "loadAllocs", + inputs: [ + { + name: "pathToAllocsJson", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "makePersistent", + inputs: [ + { + name: "accounts", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "makePersistent", + inputs: [ + { + name: "account0", + type: "address", + internalType: "address", + }, + { + name: "account1", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "makePersistent", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "makePersistent", + inputs: [ + { + name: "account0", + type: "address", + internalType: "address", + }, + { + name: "account1", + type: "address", + internalType: "address", + }, + { + name: "account2", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "mockCall", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "msgValue", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "returnData", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "mockCall", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "returnData", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "mockCallRevert", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "msgValue", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "revertData", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "mockCallRevert", + inputs: [ + { + name: "callee", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "revertData", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "parseAddress", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseBool", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseBytes", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseBytes32", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseInt", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "int256", + internalType: "int256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJson", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "abiEncodedData", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJson", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "abiEncodedData", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonAddress", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonAddressArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBool", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBoolArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool[]", + internalType: "bool[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBytes", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBytes32", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBytes32Array", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonBytesArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonInt", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "int256", + internalType: "int256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonIntArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "int256[]", + internalType: "int256[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonKeys", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "keys", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonString", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonStringArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonType", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "typeDescription", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonType", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + { + name: "typeDescription", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonTypeArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + { + name: "typeDescription", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonUint", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseJsonUintArray", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseToml", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "abiEncodedData", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseToml", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "abiEncodedData", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlAddress", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlAddressArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBool", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBoolArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bool[]", + internalType: "bool[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBytes", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBytes32", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBytes32Array", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlBytesArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlInt", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "int256", + internalType: "int256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlIntArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "int256[]", + internalType: "int256[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlKeys", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "keys", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlString", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlStringArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlUint", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseTomlUintArray", + inputs: [ + { + name: "toml", + type: "string", + internalType: "string", + }, + { + name: "key", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "parseUint", + inputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "parsedValue", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "pauseGasMetering", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "prank", + inputs: [ + { + name: "msgSender", + type: "address", + internalType: "address", + }, + { + name: "txOrigin", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "prank", + inputs: [ + { + name: "msgSender", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "prevrandao", + inputs: [ + { + name: "newPrevrandao", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "prevrandao", + inputs: [ + { + name: "newPrevrandao", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "projectRoot", + inputs: [], + outputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "prompt", + inputs: [ + { + name: "promptText", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "promptAddress", + inputs: [ + { + name: "promptText", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "promptSecret", + inputs: [ + { + name: "promptText", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "promptSecretUint", + inputs: [ + { + name: "promptText", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "promptUint", + inputs: [ + { + name: "promptText", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "randomAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "randomUint", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "randomUint", + inputs: [ + { + name: "min", + type: "uint256", + internalType: "uint256", + }, + { + name: "max", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "readCallers", + inputs: [], + outputs: [ + { + name: "callerMode", + type: "uint8", + internalType: "enum VmSafe.CallerMode", + }, + { + name: "msgSender", + type: "address", + internalType: "address", + }, + { + name: "txOrigin", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "readDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "maxDepth", + type: "uint64", + internalType: "uint64", + }, + ], + outputs: [ + { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", + components: [ + { + name: "errorMessage", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "depth", + type: "uint64", + internalType: "uint64", + }, + { + name: "isDir", + type: "bool", + internalType: "bool", + }, + { + name: "isSymlink", + type: "bool", + internalType: "bool", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "maxDepth", + type: "uint64", + internalType: "uint64", + }, + { + name: "followLinks", + type: "bool", + internalType: "bool", + }, + ], + outputs: [ + { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", + components: [ + { + name: "errorMessage", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "depth", + type: "uint64", + internalType: "uint64", + }, + { + name: "isDir", + type: "bool", + internalType: "bool", + }, + { + name: "isSymlink", + type: "bool", + internalType: "bool", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", + components: [ + { + name: "errorMessage", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "depth", + type: "uint64", + internalType: "uint64", + }, + { + name: "isDir", + type: "bool", + internalType: "bool", + }, + { + name: "isSymlink", + type: "bool", + internalType: "bool", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readFile", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "data", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readFileBinary", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readLine", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "line", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "readLink", + inputs: [ + { + name: "linkPath", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "targetPath", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "record", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "recordLogs", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rememberKey", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "keyAddr", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "removeDir", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "recursive", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "removeFile", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "replace", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + { + name: "from", + type: "string", + internalType: "string", + }, + { + name: "to", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "output", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "resetNonce", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "resumeGasMetering", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revertTo", + inputs: [ + { + name: "snapshotId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "success", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revertToAndDelete", + inputs: [ + { + name: "snapshotId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "success", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokePersistent", + inputs: [ + { + name: "accounts", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokePersistent", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "roll", + inputs: [ + { + name: "newHeight", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rollFork", + inputs: [ + { + name: "txHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rollFork", + inputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + { + name: "blockNumber", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rollFork", + inputs: [ + { + name: "blockNumber", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rollFork", + inputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + { + name: "txHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rpc", + inputs: [ + { + name: "urlOrAlias", + type: "string", + internalType: "string", + }, + { + name: "method", + type: "string", + internalType: "string", + }, + { + name: "params", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rpc", + inputs: [ + { + name: "method", + type: "string", + internalType: "string", + }, + { + name: "params", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "rpcUrl", + inputs: [ + { + name: "rpcAlias", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "rpcUrlStructs", + inputs: [], + outputs: [ + { + name: "urls", + type: "tuple[]", + internalType: "struct VmSafe.Rpc[]", + components: [ + { + name: "key", + type: "string", + internalType: "string", + }, + { + name: "url", + type: "string", + internalType: "string", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "rpcUrls", + inputs: [], + outputs: [ + { + name: "urls", + type: "string[2][]", + internalType: "string[2][]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "selectFork", + inputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeAddress", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeAddress", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBool", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "bool[]", + internalType: "bool[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBool", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bool", + internalType: "bool", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBytes", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBytes", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBytes32", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeBytes32", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeInt", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "int256", + internalType: "int256", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeInt", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "int256[]", + internalType: "int256[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeJson", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeJsonType", + inputs: [ + { + name: "typeDescription", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "serializeJsonType", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "typeDescription", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeString", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeString", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeUint", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeUint", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "values", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "serializeUintToHex", + inputs: [ + { + name: "objectKey", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setBlockhash", + inputs: [ + { + name: "blockNumber", + type: "uint256", + internalType: "uint256", + }, + { + name: "blockHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setEnv", + inputs: [ + { + name: "name", + type: "string", + internalType: "string", + }, + { + name: "value", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setNonce", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "newNonce", + type: "uint64", + internalType: "uint64", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setNonceUnsafe", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "newNonce", + type: "uint64", + internalType: "uint64", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "sign", + inputs: [ + { + name: "digest", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "v", + type: "uint8", + internalType: "uint8", + }, + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "sign", + inputs: [ + { + name: "signer", + type: "address", + internalType: "address", + }, + { + name: "digest", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "v", + type: "uint8", + internalType: "uint8", + }, + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "sign", + inputs: [ + { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "publicKeyX", + type: "uint256", + internalType: "uint256", + }, + { + name: "publicKeyY", + type: "uint256", + internalType: "uint256", + }, + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "digest", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "v", + type: "uint8", + internalType: "uint8", + }, + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "sign", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + { + name: "digest", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "v", + type: "uint8", + internalType: "uint8", + }, + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "signP256", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + { + name: "digest", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "r", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "s", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "skip", + inputs: [ + { + name: "skipTest", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "sleep", + inputs: [ + { + name: "duration", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "snapshot", + inputs: [], + outputs: [ + { + name: "snapshotId", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "split", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + { + name: "delimiter", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "outputs", + type: "string[]", + internalType: "string[]", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "startBroadcast", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "startBroadcast", + inputs: [ + { + name: "signer", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "startBroadcast", + inputs: [ + { + name: "privateKey", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "startMappingRecording", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "startPrank", + inputs: [ + { + name: "msgSender", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "startPrank", + inputs: [ + { + name: "msgSender", + type: "address", + internalType: "address", + }, + { + name: "txOrigin", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "startStateDiffRecording", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "stopAndReturnStateDiff", + inputs: [], + outputs: [ + { + name: "accountAccesses", + type: "tuple[]", + internalType: "struct VmSafe.AccountAccess[]", + components: [ + { + name: "chainInfo", + type: "tuple", + internalType: "struct VmSafe.ChainInfo", + components: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + { + name: "chainId", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "kind", + type: "uint8", + internalType: "enum VmSafe.AccountAccessKind", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "accessor", + type: "address", + internalType: "address", + }, + { + name: "initialized", + type: "bool", + internalType: "bool", + }, + { + name: "oldBalance", + type: "uint256", + internalType: "uint256", + }, + { + name: "newBalance", + type: "uint256", + internalType: "uint256", + }, + { + name: "deployedCode", + type: "bytes", + internalType: "bytes", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "reverted", + type: "bool", + internalType: "bool", + }, + { + name: "storageAccesses", + type: "tuple[]", + internalType: "struct VmSafe.StorageAccess[]", + components: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "isWrite", + type: "bool", + internalType: "bool", + }, + { + name: "previousValue", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "newValue", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "reverted", + type: "bool", + internalType: "bool", + }, + ], + }, + { + name: "depth", + type: "uint64", + internalType: "uint64", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "stopBroadcast", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "stopExpectSafeMemory", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "stopMappingRecording", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "stopPrank", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "store", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "toBase64", + inputs: [ + { + name: "data", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toBase64", + inputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toBase64URL", + inputs: [ + { + name: "data", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toBase64URL", + inputs: [ + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toLowercase", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "output", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "bool", + internalType: "bool", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "int256", + internalType: "int256", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toString", + inputs: [ + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "stringifiedValue", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "toUppercase", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "output", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "transact", + inputs: [ + { + name: "forkId", + type: "uint256", + internalType: "uint256", + }, + { + name: "txHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transact", + inputs: [ + { + name: "txHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "trim", + inputs: [ + { + name: "input", + type: "string", + internalType: "string", + }, + ], + outputs: [ + { + name: "output", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "tryFfi", + inputs: [ + { + name: "commandInput", + type: "string[]", + internalType: "string[]", + }, + ], + outputs: [ + { + name: "result", + type: "tuple", + internalType: "struct VmSafe.FfiResult", + components: [ + { + name: "exitCode", + type: "int32", + internalType: "int32", + }, + { + name: "stdout", + type: "bytes", + internalType: "bytes", + }, + { + name: "stderr", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "txGasPrice", + inputs: [ + { + name: "newGasPrice", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "unixTime", + inputs: [], + outputs: [ + { + name: "milliseconds", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "warp", + inputs: [ + { + name: "newTimestamp", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeFile", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "data", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeFileBinary", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeJson", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeJson", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeLine", + inputs: [ + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "data", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeToml", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "writeToml", + inputs: [ + { + name: "json", + type: "string", + internalType: "string", + }, + { + name: "path", + type: "string", + internalType: "string", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, +] as const; + +export class Vm__factory { + static readonly abi = _abi; + static createInterface(): VmInterface { + return new Interface(_abi) as VmInterface; + } + static connect(address: string, runner?: ContractRunner | null): Vm { + return new Contract(address, _abi, runner) as unknown as Vm; + } +} diff --git a/v2/typechain-types/factories/Vm.sol/index.ts b/v2/typechain-types/factories/Vm.sol/index.ts new file mode 100644 index 00000000..fcea6ed4 --- /dev/null +++ b/v2/typechain-types/factories/Vm.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Vm__factory } from "./Vm__factory"; +export { VmSafe__factory } from "./VmSafe__factory"; diff --git a/v2/typechain-types/factories/WZETA.sol/WETH9__factory.ts b/v2/typechain-types/factories/WZETA.sol/WETH9__factory.ts new file mode 100644 index 00000000..cec30665 --- /dev/null +++ b/v2/typechain-types/factories/WZETA.sol/WETH9__factory.ts @@ -0,0 +1,345 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { WETH9, WETH9Interface } from "../../WZETA.sol/WETH9"; + +const _abi = [ + { + type: "receive", + stateMutability: "payable", + }, + { + type: "function", + name: "allowance", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "guy", + type: "address", + internalType: "address", + }, + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "dst", + type: "address", + internalType: "address", + }, + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "src", + type: "address", + internalType: "address", + }, + { + name: "dst", + type: "address", + internalType: "address", + }, + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "src", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "guy", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "wad", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "dst", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "wad", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "src", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "dst", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "wad", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdrawal", + inputs: [ + { + name: "src", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "wad", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +const _bytecode = + "0x60c0604052600d60809081526c2bb930b83832b21022ba3432b960991b60a05260009061002c9082610114565b506040805180820190915260048152630ae8aa8960e31b60208201526001906100559082610114565b506002805460ff1916601217905534801561006f57600080fd5b506101d2565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009f57607f821691505b6020821081036100bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561010f57806000526020600020601f840160051c810160208510156100ec5750805b601f840160051c820191505b8181101561010c57600081556001016100f8565b50505b505050565b81516001600160401b0381111561012d5761012d610075565b6101418161013b845461008b565b846100c5565b6020601f821160018114610175576000831561015d5750848201515b600019600385901b1c1916600184901b17845561010c565b600084815260208120601f198516915b828110156101a55787850151825560209485019460019092019101610185565b50848210156101c35786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610986806101e16000396000f3fe6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146101fa578063d0e30db01461021a578063dd62ed3e1461022257600080fd5b8063313ce5671461018c57806370a08231146101b857806395d89b41146101e557600080fd5b806318160ddd116100a557806318160ddd1461012f57806323b872dd1461014c5780632e1a7d4d1461016c57600080fd5b806306fdde03146100d4578063095ea7b3146100ff57600080fd5b366100cf576100cd61025a565b005b600080fd5b3480156100e057600080fd5b506100e96102b5565b6040516100f69190610745565b60405180910390f35b34801561010b57600080fd5b5061011f61011a3660046107da565b610343565b60405190151581526020016100f6565b34801561013b57600080fd5b50475b6040519081526020016100f6565b34801561015857600080fd5b5061011f610167366004610804565b6103bd565b34801561017857600080fd5b506100cd610187366004610841565b610647565b34801561019857600080fd5b506002546101a69060ff1681565b60405160ff90911681526020016100f6565b3480156101c457600080fd5b5061013e6101d336600461085a565b60036020526000908152604090205481565b3480156101f157600080fd5b506100e9610724565b34801561020657600080fd5b5061011f6102153660046107da565b610731565b6100cd61025a565b34801561022e57600080fd5b5061013e61023d366004610875565b600460209081526000928352604080842090915290825290205481565b33600090815260036020526040812080543492906102799084906108d7565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102c2906108ea565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee906108ea565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103ab9086815260200190565b60405180910390a35060015b92915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081205482111561042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600060248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841633148015906104a1575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105605773ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033845290915290205482111561051a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091528120805484929061055a90849061093d565b90915550505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061059590849061093d565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080548492906105cf9084906108d7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161063591815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561069a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b33600090815260036020526040812080548392906106b990849061093d565b9091555050604051339082156108fc029083906000818181858888f193505050501580156106eb573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b600180546102c2906108ea565b600061073e3384846103bd565b9392505050565b602081526000825180602084015260005b818110156107735760208186018101516040868401015201610756565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107d557600080fd5b919050565b600080604083850312156107ed57600080fd5b6107f6836107b1565b946020939093013593505050565b60008060006060848603121561081957600080fd5b610822846107b1565b9250610830602085016107b1565b929592945050506040919091013590565b60006020828403121561085357600080fd5b5035919050565b60006020828403121561086c57600080fd5b61073e826107b1565b6000806040838503121561088857600080fd5b610891836107b1565b915061089f602084016107b1565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156103b7576103b76108a8565b600181811c908216806108fe57607f821691505b602082108103610937577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b818103818111156103b7576103b76108a856fea264697066735822122008d7fc4e09519c5dd9f356b03596f6829a151d0bc7682533f9ceab4e459f5ee264736f6c634300081a0033"; + +type WETH9ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: WETH9ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class WETH9__factory extends ContractFactory { + constructor(...args: WETH9ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + WETH9 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): WETH9__factory { + return super.connect(runner) as WETH9__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): WETH9Interface { + return new Interface(_abi) as WETH9Interface; + } + static connect(address: string, runner?: ContractRunner | null): WETH9 { + return new Contract(address, _abi, runner) as unknown as WETH9; + } +} diff --git a/v2/typechain-types/factories/WZETA.sol/index.ts b/v2/typechain-types/factories/WZETA.sol/index.ts new file mode 100644 index 00000000..63c8f2fc --- /dev/null +++ b/v2/typechain-types/factories/WZETA.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { WETH9__factory } from "./WETH9__factory"; diff --git a/v2/typechain-types/factories/ZRC20New.sol/ZRC20Errors__factory.ts b/v2/typechain-types/factories/ZRC20New.sol/ZRC20Errors__factory.ts new file mode 100644 index 00000000..35134d33 --- /dev/null +++ b/v2/typechain-types/factories/ZRC20New.sol/ZRC20Errors__factory.ts @@ -0,0 +1,62 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZRC20Errors, + ZRC20ErrorsInterface, +} from "../../ZRC20New.sol/ZRC20Errors"; + +const _abi = [ + { + type: "error", + name: "CallerIsNotFungibleModule", + inputs: [], + }, + { + type: "error", + name: "GasFeeTransferFailed", + inputs: [], + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "LowAllowance", + inputs: [], + }, + { + type: "error", + name: "LowBalance", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, + { + type: "error", + name: "ZeroGasCoin", + inputs: [], + }, + { + type: "error", + name: "ZeroGasPrice", + inputs: [], + }, +] as const; + +export class ZRC20Errors__factory { + static readonly abi = _abi; + static createInterface(): ZRC20ErrorsInterface { + return new Interface(_abi) as ZRC20ErrorsInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZRC20Errors { + return new Contract(address, _abi, runner) as unknown as ZRC20Errors; + } +} diff --git a/v2/typechain-types/factories/ZRC20New.sol/ZRC20New__factory.ts b/v2/typechain-types/factories/ZRC20New.sol/ZRC20New__factory.ts new file mode 100644 index 00000000..26fd96a6 --- /dev/null +++ b/v2/typechain-types/factories/ZRC20New.sol/ZRC20New__factory.ts @@ -0,0 +1,729 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BigNumberish, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { ZRC20New, ZRC20NewInterface } from "../../ZRC20New.sol/ZRC20New"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "name_", + type: "string", + internalType: "string", + }, + { + name: "symbol_", + type: "string", + internalType: "string", + }, + { + name: "decimals_", + type: "uint8", + internalType: "uint8", + }, + { + name: "chainid_", + type: "uint256", + internalType: "uint256", + }, + { + name: "coinType_", + type: "uint8", + internalType: "enum CoinType", + }, + { + name: "gasLimit_", + type: "uint256", + internalType: "uint256", + }, + { + name: "systemContractAddress_", + type: "address", + internalType: "address", + }, + { + name: "gatewayContractAddress_", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "CHAIN_ID", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "COIN_TYPE", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "enum CoinType", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "FUNGIBLE_MODULE_ADDRESS", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "GAS_LIMIT", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "GATEWAY_CONTRACT_ADDRESS", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "PROTOCOL_FLAT_FEE", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "SYSTEM_CONTRACT_ADDRESS", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "burn", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "recipient", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "recipient", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "updateGasLimit", + inputs: [ + { + name: "gasLimit", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "updateProtocolFlatFee", + inputs: [ + { + name: "protocolFlatFee", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "updateSystemContractAddress", + inputs: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "to", + type: "bytes", + internalType: "bytes", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawGasFee", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "from", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "UpdatedGasLimit", + inputs: [ + { + name: "gasLimit", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "UpdatedProtocolFlatFee", + inputs: [ + { + name: "protocolFlatFee", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "UpdatedSystemContract", + inputs: [ + { + name: "systemContract", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdrawal", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "gasFee", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "protocolFlatFee", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "CallerIsNotFungibleModule", + inputs: [], + }, + { + type: "error", + name: "GasFeeTransferFailed", + inputs: [], + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "LowAllowance", + inputs: [], + }, + { + type: "error", + name: "LowBalance", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, + { + type: "error", + name: "ZeroGasCoin", + inputs: [], + }, + { + type: "error", + name: "ZeroGasPrice", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60c060405234801561001057600080fd5b506040516119e83803806119e883398101604081905261002f916101db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600761006f898261032d565b50600861007c888261032d565b506009805460ff191660ff881617905560808590528360028111156100a3576100a36103eb565b60a08160028111156100b7576100b76103eb565b905250600292909255600080546001600160a01b039283166001600160a01b03199182161790915560018054929093169116179055506104019350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011e57600080fd5b81516001600160401b03811115610137576101376100f7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610165576101656100f7565b60405281815283820160200185101561017d57600080fd5b60005b8281101561019c57602081860181015183830182015201610180565b506000918101602001919091529392505050565b8051600381106101bf57600080fd5b919050565b80516001600160a01b03811681146101bf57600080fd5b600080600080600080600080610100898b0312156101f857600080fd5b88516001600160401b0381111561020e57600080fd5b61021a8b828c0161010d565b60208b015190995090506001600160401b0381111561023857600080fd5b6102448b828c0161010d565b975050604089015160ff8116811461025b57600080fd5b60608a0151909650945061027160808a016101b0565b60a08a0151909450925061028760c08a016101c4565b915061029560e08a016101c4565b90509295985092959890939650565b600181811c908216806102b857607f821691505b6020821081036102d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561032857806000526020600020601f840160051c810160208510156103055750805b601f840160051c820191505b818110156103255760008155600101610311565b50505b505050565b81516001600160401b03811115610346576103466100f7565b61035a8161035484546102a4565b846102de565b6020601f82116001811461038e57600083156103765750848201515b600019600385901b1c1916600184901b178455610325565b600084815260208120601f198516915b828110156103be578785015182556020948501946001909201910161039e565b50848210156103dc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805160a0516115b461043460003960006102f30152600081816102c4015281816109430152610a4901526115b46000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806385e1f4d0116100e3578063d9eeebed1161008c578063eddeb12311610066578063eddeb123146103f7578063f2441b321461040a578063f687d12a1461042a57600080fd5b8063d9eeebed1461035d578063dd62ed3e14610391578063e2f535b8146103d757600080fd5b8063a9059cbb116100bd578063a9059cbb14610322578063c701262614610335578063c835d7cc1461034857600080fd5b806385e1f4d0146102bf57806395d89b41146102e6578063a3413d03146102ee57600080fd5b8063313ce5671161014557806347e7ef241161011f57806347e7ef241461026d5780634d8943bb1461028057806370a082311461028957600080fd5b8063313ce567146102055780633ce4a5bc1461021a57806342966c681461025a57600080fd5b8063095ea7b311610176578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101f257600080fd5b806306fdde0314610192578063091d2788146101b0575b600080fd5b61019a61043d565b6040516101a79190611193565b60405180910390f35b6101b960025481565b6040519081526020016101a7565b6101da6101d53660046111d2565b6104cf565b60405190151581526020016101a7565b6006546101b9565b6101da6102003660046111fe565b6104e6565b60095460405160ff90911681526020016101a7565b61023573735b14bb79463307aacbed86daf3322b1e6226ab81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101da61026836600461123f565b61057d565b6101da61027b3660046111d2565b610591565b6101b960035481565b6101b9610297366004611258565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61019a6106e5565b6103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a79190611275565b6101da6103303660046111d2565b6106f4565b6101da6103433660046112e5565b610701565b61035b610356366004611258565b610850565b005b610365610917565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6101b961039f3660046113dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b6001546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61040536600461123f565b610b35565b6000546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61043836600461123f565b610bb7565b60606007805461044c90611416565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611416565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc338484610c39565b5060015b92915050565b60006104f3848484610d42565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083203384529091529020548281101561055e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610572853361056d8685611498565b610c39565b506001949350505050565b60006105893383610efd565b506001919050565b60003373735b14bb79463307aacbed86daf3322b1e6226ab148015906105cf575060005473ffffffffffffffffffffffffffffffffffffffff163314155b80156105f3575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561062a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610634838361103f565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8416907f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab390603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526106d49186906114ab565b60405180910390a250600192915050565b60606008805461044c90611416565b60006104dc338484610d42565b600080600061070e610917565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab602482015260448101829052919350915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906064016020604051808303816000875af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906114cd565b6107fa576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108043385610efd565b60035460405133917f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161083d918991899187916114ef565b60405180910390a2506001949350505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461089d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae906020015b60405180910390a150565b600080546040517f0be155470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201528291829173ffffffffffffffffffffffffffffffffffffffff90911690630be1554790602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce919061151e565b905073ffffffffffffffffffffffffffffffffffffffff8116610a1d576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517fd7fd7afb0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff9091169063d7fd7afb90602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061153b565b905080600003610b0c576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610b1f9190611554565b610b29919061156b565b92959294509192505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610b82576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f9060200161090c565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610c04576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a9060200161090c565b73ffffffffffffffffffffffffffffffffffffffff8316610c86576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cd3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d8f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ddc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205481811015610e3c576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e468282611498565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600460205260408082209390935590851681529081208054849290610e8990849061156b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eef91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610f4a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481811015610faa576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb48282611498565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081209190915560068054849290610fef908490611498565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d35565b73ffffffffffffffffffffffffffffffffffffffff821661108c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806006600082825461109e919061156b565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906110d890849061156b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000815180845260005b8181101561115557602081850181015186830182015201611139565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111a6602083018461112f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b60008060006060848603121561121357600080fd5b833561121e816111ad565b9250602084013561122e816111ad565b929592945050506040919091013590565b60006020828403121561125157600080fd5b5035919050565b60006020828403121561126a57600080fd5b81356111a6816111ad565b60208101600383106112b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156112f857600080fd5b823567ffffffffffffffff81111561130f57600080fd5b8301601f8101851361132057600080fd5b803567ffffffffffffffff81111561133a5761133a6112b6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113a6576113a66112b6565b6040528181528282016020018710156113be57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600080604083850312156113f057600080fd5b82356113fb816111ad565b9150602083013561140b816111ad565b809150509250929050565b600181811c9082168061142a57607f821691505b602082108103611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104e0576104e0611469565b6040815260006114be604083018561112f565b90508260208301529392505050565b6000602082840312156114df57600080fd5b815180151581146111a657600080fd5b608081526000611502608083018761112f565b6020830195909552506040810192909252606090910152919050565b60006020828403121561153057600080fd5b81516111a6816111ad565b60006020828403121561154d57600080fd5b5051919050565b80820281158282048414176104e0576104e0611469565b808201808211156104e0576104e061146956fea26469706673582212207bc62dfdede7c005315010b4244c5d1661fb65fbf23259603e26342f3a5148c464736f6c634300081a0033"; + +type ZRC20NewConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZRC20NewConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZRC20New__factory extends ContractFactory { + constructor(...args: ZRC20NewConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + name_: string, + symbol_: string, + decimals_: BigNumberish, + chainid_: BigNumberish, + coinType_: BigNumberish, + gasLimit_: BigNumberish, + systemContractAddress_: AddressLike, + gatewayContractAddress_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + name_, + symbol_, + decimals_, + chainid_, + coinType_, + gasLimit_, + systemContractAddress_, + gatewayContractAddress_, + overrides || {} + ); + } + override deploy( + name_: string, + symbol_: string, + decimals_: BigNumberish, + chainid_: BigNumberish, + coinType_: BigNumberish, + gasLimit_: BigNumberish, + systemContractAddress_: AddressLike, + gatewayContractAddress_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + name_, + symbol_, + decimals_, + chainid_, + coinType_, + gasLimit_, + systemContractAddress_, + gatewayContractAddress_, + overrides || {} + ) as Promise< + ZRC20New & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ZRC20New__factory { + return super.connect(runner) as ZRC20New__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZRC20NewInterface { + return new Interface(_abi) as ZRC20NewInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZRC20New { + return new Contract(address, _abi, runner) as unknown as ZRC20New; + } +} diff --git a/v2/typechain-types/factories/ZRC20New.sol/index.ts b/v2/typechain-types/factories/ZRC20New.sol/index.ts new file mode 100644 index 00000000..7e4b987c --- /dev/null +++ b/v2/typechain-types/factories/ZRC20New.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ZRC20Errors__factory } from "./ZRC20Errors__factory"; +export { ZRC20New__factory } from "./ZRC20New__factory"; diff --git a/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaErrors__factory.ts b/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaErrors__factory.ts new file mode 100644 index 00000000..5b6671d8 --- /dev/null +++ b/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaErrors__factory.ts @@ -0,0 +1,76 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZetaErrors, + ZetaErrorsInterface, +} from "../../Zeta.non-eth.sol/ZetaErrors"; + +const _abi = [ + { + type: "error", + name: "CallerIsNotConnector", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "CallerIsNotTss", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "CallerIsNotTssOrUpdater", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "CallerIsNotTssUpdater", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "InvalidAddress", + inputs: [], + }, + { + type: "error", + name: "ZetaTransferError", + inputs: [], + }, +] as const; + +export class ZetaErrors__factory { + static readonly abi = _abi; + static createInterface(): ZetaErrorsInterface { + return new Interface(_abi) as ZetaErrorsInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZetaErrors { + return new Contract(address, _abi, runner) as unknown as ZetaErrors; + } +} diff --git a/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEthInterface__factory.ts b/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEthInterface__factory.ts new file mode 100644 index 00000000..d16d94a6 --- /dev/null +++ b/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEthInterface__factory.ts @@ -0,0 +1,253 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZetaNonEthInterface, + ZetaNonEthInterfaceInterface, +} from "../../Zeta.non-eth.sol/ZetaNonEthInterface"; + +const _abi = [ + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "burnFrom", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "mint", + inputs: [ + { + name: "mintee", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class ZetaNonEthInterface__factory { + static readonly abi = _abi; + static createInterface(): ZetaNonEthInterfaceInterface { + return new Interface(_abi) as ZetaNonEthInterfaceInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ZetaNonEthInterface { + return new Contract( + address, + _abi, + runner + ) as unknown as ZetaNonEthInterface; + } +} diff --git a/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEth__factory.ts b/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEth__factory.ts new file mode 100644 index 00000000..f1bddbec --- /dev/null +++ b/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEth__factory.ts @@ -0,0 +1,680 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { + ZetaNonEth, + ZetaNonEthInterface, +} from "../../Zeta.non-eth.sol/ZetaNonEth"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "tssAddress_", + type: "address", + internalType: "address", + }, + { + name: "tssAddressUpdater_", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "burn", + inputs: [ + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "burnFrom", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "connectorAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "mint", + inputs: [ + { + name: "mintee", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceTssAddressUpdater", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tssAddressUpdater", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "updateTssAndConnectorAddresses", + inputs: [ + { + name: "tssAddress_", + type: "address", + internalType: "address", + }, + { + name: "connectorAddress_", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Burnt", + inputs: [ + { + name: "burnee", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ConnectorAddressUpdated", + inputs: [ + { + name: "callerAddress", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "newConnectorAddress", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Minted", + inputs: [ + { + name: "mintee", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "internalSendHash", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "TSSAddressUpdated", + inputs: [ + { + name: "callerAddress", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "newTssAddress", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "TSSAddressUpdaterUpdated", + inputs: [ + { + name: "callerAddress", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "newTssUpdaterAddress", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "CallerIsNotConnector", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "CallerIsNotTss", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "CallerIsNotTssOrUpdater", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "CallerIsNotTssUpdater", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InsufficientAllowance", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "allowance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSpender", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "InvalidAddress", + inputs: [], + }, + { + type: "error", + name: "ZetaTransferError", + inputs: [], + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040516112a63803806112a683398101604081905261002f91610110565b604051806040016040528060048152602001635a65746160e01b815250604051806040016040528060048152602001635a45544160e01b815250816003908161007891906101e2565b50600461008582826101e2565b5050506001600160a01b03821615806100a557506001600160a01b038116155b156100c35760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b039384166001600160a01b031991821617909155600780549290931691161790556102a0565b80516001600160a01b038116811461010b57600080fd5b919050565b6000806040838503121561012357600080fd5b61012c836100f4565b915061013a602084016100f4565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061016d57607f821691505b60208210810361018d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101dd57806000526020600020601f840160051c810160208510156101ba5750805b601f840160051c820191505b818110156101da57600081556001016101c6565b50505b505050565b81516001600160401b038111156101fb576101fb610143565b61020f816102098454610159565b84610193565b6020601f821160018114610243576000831561022b5750848201515b600019600385901b1c1916600184901b1784556101da565b600084815260208120601f198516915b828110156102735787850151825560209485019460019092019101610253565b50848210156102915786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610ff7806102af6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c806342966c68116100b257806379cc679011610081578063a9059cbb11610066578063a9059cbb1461028e578063bff9662a146102a1578063dd62ed3e146102c157600080fd5b806379cc67901461027357806395d89b411461028657600080fd5b806342966c68146102025780635b1125911461021557806370a0823114610235578063779e3b631461026b57600080fd5b80631e458bee116100ee5780631e458bee1461018857806323b872dd1461019b578063313ce567146101ae578063328a01d0146101bd57600080fd5b806306fdde0314610120578063095ea7b31461013e57806315d57fd41461016157806318160ddd14610176575b600080fd5b610128610307565b6040516101359190610d97565b60405180910390f35b61015161014c366004610e2c565b610399565b6040519015158152602001610135565b61017461016f366004610e56565b6103b3565b005b6002545b604051908152602001610135565b610174610196366004610e89565b61057e565b6101516101a9366004610ebc565b610631565b60405160128152602001610135565b6007546101dd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610135565b610174610210366004610ef9565b610655565b6006546101dd9073ffffffffffffffffffffffffffffffffffffffff1681565b61017a610243366004610f12565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610174610662565b610174610281366004610e2c565b610786565b610128610837565b61015161029c366004610e2c565b610846565b6005546101dd9073ffffffffffffffffffffffffffffffffffffffff1681565b61017a6102cf366004610e56565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461031690610f34565b80601f016020809104026020016040519081016040528092919081815260200182805461034290610f34565b801561038f5780601f106103645761010080835404028352916020019161038f565b820191906000526020600020905b81548152906001019060200180831161037257829003601f168201915b5050505050905090565b6000336103a7818585610854565b60019150505b92915050565b60075473ffffffffffffffffffffffffffffffffffffffff1633148015906103f3575060065473ffffffffffffffffffffffffffffffffffffffff163314155b15610431576040517fcdfcef970000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82161580610468575073ffffffffffffffffffffffffffffffffffffffff8116155b1561049f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006805473ffffffffffffffffffffffffffffffffffffffff8481167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316811790935560058054918516919092161790556040805133815260208101929092527fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff910160405180910390a16040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201527f1b9352454524a57a51f24f67dc66d898f616922cd1f7a12d73570ece12b1975c910160405180910390a15050565b60055473ffffffffffffffffffffffffffffffffffffffff1633146105d1576040517f3fe32fba000000000000000000000000000000000000000000000000000000008152336004820152602401610428565b6105db8383610866565b808373ffffffffffffffffffffffffffffffffffffffff167fc263b302aec62d29105026245f19e16f8e0137066ccd4a8bd941f716bd4096bb8460405161062491815260200190565b60405180910390a3505050565b60003361063f8582856108c6565b61064a858585610995565b506001949350505050565b61065f3382610a40565b50565b60075473ffffffffffffffffffffffffffffffffffffffff1633146106b5576040517fe700765e000000000000000000000000000000000000000000000000000000008152336004820152602401610428565b60065473ffffffffffffffffffffffffffffffffffffffff16610704576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600654600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90921691821790556040805133815260208101929092527f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd0910160405180910390a1565b60055473ffffffffffffffffffffffffffffffffffffffff1633146107d9576040517f3fe32fba000000000000000000000000000000000000000000000000000000008152336004820152602401610428565b6107e38282610a9c565b8173ffffffffffffffffffffffffffffffffffffffff167f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b18260405161082b91815260200190565b60405180910390a25050565b60606004805461031690610f34565b6000336103a7818585610995565b6108618383836001610ab1565b505050565b73ffffffffffffffffffffffffffffffffffffffff82166108b6576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b6108c260008383610bf9565b5050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461098f5781811015610980576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610428565b61098f84848484036000610ab1565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166109e5576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b73ffffffffffffffffffffffffffffffffffffffff8216610a35576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b610861838383610bf9565b73ffffffffffffffffffffffffffffffffffffffff8216610a90576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b6108c282600083610bf9565b610aa78233836108c6565b6108c28282610a40565b73ffffffffffffffffffffffffffffffffffffffff8416610b01576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b73ffffffffffffffffffffffffffffffffffffffff8316610b51576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160209081526040808320938716835292905220829055801561098f578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610beb91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c31578060026000828254610c269190610f87565b90915550610ce39050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610cb7576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610428565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff8216610d0c57600280548290039055610d38565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161062491815260200190565b602081526000825180602084015260005b81811015610dc55760208186018101516040868401015201610da8565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610e2757600080fd5b919050565b60008060408385031215610e3f57600080fd5b610e4883610e03565b946020939093013593505050565b60008060408385031215610e6957600080fd5b610e7283610e03565b9150610e8060208401610e03565b90509250929050565b600080600060608486031215610e9e57600080fd5b610ea784610e03565b95602085013595506040909401359392505050565b600080600060608486031215610ed157600080fd5b610eda84610e03565b9250610ee860208501610e03565b929592945050506040919091013590565b600060208284031215610f0b57600080fd5b5035919050565b600060208284031215610f2457600080fd5b610f2d82610e03565b9392505050565b600181811c90821680610f4857607f821691505b602082108103610f81577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b808201808211156103ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220085f01204b33dc17013c78c74fbca32a3da2c0b384ce7c8878c889551af28c6164736f6c634300081a0033"; + +type ZetaNonEthConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZetaNonEthConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZetaNonEth__factory extends ContractFactory { + constructor(...args: ZetaNonEthConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + tssAddress_: AddressLike, + tssAddressUpdater_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + tssAddress_, + tssAddressUpdater_, + overrides || {} + ); + } + override deploy( + tssAddress_: AddressLike, + tssAddressUpdater_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + tssAddress_, + tssAddressUpdater_, + overrides || {} + ) as Promise< + ZetaNonEth & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ZetaNonEth__factory { + return super.connect(runner) as ZetaNonEth__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZetaNonEthInterface { + return new Interface(_abi) as ZetaNonEthInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZetaNonEth { + return new Contract(address, _abi, runner) as unknown as ZetaNonEth; + } +} diff --git a/v2/typechain-types/factories/Zeta.non-eth.sol/index.ts b/v2/typechain-types/factories/Zeta.non-eth.sol/index.ts new file mode 100644 index 00000000..6e668c39 --- /dev/null +++ b/v2/typechain-types/factories/Zeta.non-eth.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ZetaErrors__factory } from "./ZetaErrors__factory"; +export { ZetaNonEth__factory } from "./ZetaNonEth__factory"; +export { ZetaNonEthInterface__factory } from "./ZetaNonEthInterface__factory"; diff --git a/v2/typechain-types/factories/ZetaConnectorNative__factory.ts b/v2/typechain-types/factories/ZetaConnectorNative__factory.ts new file mode 100644 index 00000000..e5f4dfce --- /dev/null +++ b/v2/typechain-types/factories/ZetaConnectorNative__factory.ts @@ -0,0 +1,370 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { + ZetaConnectorNative, + ZetaConnectorNativeInterface, +} from "../ZetaConnectorNative"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "_gateway", + type: "address", + internalType: "address", + }, + { + name: "_zetaToken", + type: "address", + internalType: "address", + }, + { + name: "_tssAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "gateway", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IGatewayEVM", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "receiveTokens", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndCall", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndRevert", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "zetaToken", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndCall", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndRevert", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60c060405234801561001057600080fd5b50604051610d87380380610d8783398101604081905261002f916100d2565b60016000558282826001600160a01b038316158061005457506001600160a01b038216155b8061006657506001600160a01b038116155b156100845760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0392831660805290821660a052600180546001600160a01b0319169190921617905550610115915050565b80516001600160a01b03811681146100cd57600080fd5b919050565b6000806000606084860312156100e757600080fd5b6100f0846100b6565b92506100fe602085016100b6565b915061010c604085016100b6565b90509250925092565b60805160a051610c0961017e6000396000818160ff015281816101da0152818161028b015281816103c3015281816104bc0152818161056d015261063301526000818160af015281816101fc0152818161025e015281816104de01526105400152610c096000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806321e093b11161005b57806321e093b1146100fa5780635b112591146101215780635e3e9fef14610141578063743e0c9b1461015457600080fd5b806302d5c89914610082578063106e629014610097578063116191b6146100aa575b600080fd5b6100956100903660046109db565b610167565b005b6100956100a5366004610a6d565b610350565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6001546100d19073ffffffffffffffffffffffffffffffffffffffff1681565b61009561014f3660046109db565b610449565b610095610162366004610aa0565b610619565b61016f61065e565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101c0576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61022173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000866106a1565b6040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b8969bd4906102bb907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610b02565b600060405180830381600087803b1580156102d557600080fd5b505af11580156102e9573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe85858560405161033793929190610b5f565b60405180910390a26103496001600055565b5050505050565b61035861065e565b60015473ffffffffffffffffffffffffffffffffffffffff1633146103a9576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103ea73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001684846106a1565b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161043291815260200190565b60405180910390a26104446001600055565b505050565b61045161065e565b60015473ffffffffffffffffffffffffffffffffffffffff1633146104a2576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61050373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000866106a1565b6040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635131ab599061059d907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610b02565b600060405180830381600087803b1580156105b757600080fd5b505af11580156105cb573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced85858560405161033793929190610b5f565b61065b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333084610722565b50565b60026000540361069a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905261044491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061076e565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526107689186918216906323b872dd906084016106db565b50505050565b600061079073ffffffffffffffffffffffffffffffffffffffff841683610809565b905080516000141580156107b55750808060200190518101906107b39190610b82565b155b15610444576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606108178383600061081e565b9392505050565b60608147101561085c576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610800565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516108859190610ba4565b60006040518083038185875af1925050503d80600081146108c2576040519150601f19603f3d011682016040523d82523d6000602084013e6108c7565b606091505b50915091506108d78683836108e1565b9695505050505050565b6060826108f6576108f182610970565b610817565b815115801561091a575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610969576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610800565b5080610817565b8051156109805780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146109d657600080fd5b919050565b6000806000806000608086880312156109f357600080fd5b6109fc866109b2565b945060208601359350604086013567ffffffffffffffff811115610a1f57600080fd5b8601601f81018813610a3057600080fd5b803567ffffffffffffffff811115610a4757600080fd5b886020828401011115610a5957600080fd5b959894975060200195606001359392505050565b600080600060608486031215610a8257600080fd5b610a8b846109b2565b95602085013595506040909401359392505050565b600060208284031215610ab257600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610b54608083018486610ab9565b979650505050505050565b838152604060208201526000610b79604083018486610ab9565b95945050505050565b600060208284031215610b9457600080fd5b8151801515811461081757600080fd5b6000825160005b81811015610bc55760208186018101518583015201610bab565b50600092019182525091905056fea2646970667358221220ed25bc9308ed3d8f9b30e14ddf88cadd2d738ead8bcd8eb8fb89509e51695cd564736f6c634300081a0033"; + +type ZetaConnectorNativeConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZetaConnectorNativeConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZetaConnectorNative__factory extends ContractFactory { + constructor(...args: ZetaConnectorNativeConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _gateway: AddressLike, + _zetaToken: AddressLike, + _tssAddress: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + _gateway, + _zetaToken, + _tssAddress, + overrides || {} + ); + } + override deploy( + _gateway: AddressLike, + _zetaToken: AddressLike, + _tssAddress: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + _gateway, + _zetaToken, + _tssAddress, + overrides || {} + ) as Promise< + ZetaConnectorNative & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): ZetaConnectorNative__factory { + return super.connect(runner) as ZetaConnectorNative__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZetaConnectorNativeInterface { + return new Interface(_abi) as ZetaConnectorNativeInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ZetaConnectorNative { + return new Contract( + address, + _abi, + runner + ) as unknown as ZetaConnectorNative; + } +} diff --git a/v2/typechain-types/factories/ZetaConnectorNewBase__factory.ts b/v2/typechain-types/factories/ZetaConnectorNewBase__factory.ts new file mode 100644 index 00000000..3756d6aa --- /dev/null +++ b/v2/typechain-types/factories/ZetaConnectorNewBase__factory.ts @@ -0,0 +1,244 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZetaConnectorNewBase, + ZetaConnectorNewBaseInterface, +} from "../ZetaConnectorNewBase"; + +const _abi = [ + { + type: "function", + name: "gateway", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IGatewayEVM", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "receiveTokens", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndCall", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndRevert", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "zetaToken", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndCall", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndRevert", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +export class ZetaConnectorNewBase__factory { + static readonly abi = _abi; + static createInterface(): ZetaConnectorNewBaseInterface { + return new Interface(_abi) as ZetaConnectorNewBaseInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ZetaConnectorNewBase { + return new Contract( + address, + _abi, + runner + ) as unknown as ZetaConnectorNewBase; + } +} diff --git a/v2/typechain-types/factories/ZetaConnectorNonNative__factory.ts b/v2/typechain-types/factories/ZetaConnectorNonNative__factory.ts new file mode 100644 index 00000000..42566148 --- /dev/null +++ b/v2/typechain-types/factories/ZetaConnectorNonNative__factory.ts @@ -0,0 +1,376 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../common"; +import type { + ZetaConnectorNonNative, + ZetaConnectorNonNativeInterface, +} from "../ZetaConnectorNonNative"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "_gateway", + type: "address", + internalType: "address", + }, + { + name: "_zetaToken", + type: "address", + internalType: "address", + }, + { + name: "_tssAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "gateway", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IGatewayEVM", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "receiveTokens", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setMaxSupply", + inputs: [ + { + name: "_maxSupply", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndCall", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdrawAndRevert", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "zetaToken", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "MaxSupplyUpdated", + inputs: [ + { + name: "maxSupply", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndCall", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "WithdrawAndRevert", + inputs: [ + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "ExceedsMaxSupply", + inputs: [], + }, + { + type: "error", + name: "InvalidSender", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60c060405260001960025534801561001657600080fd5b50604051610f9a380380610f9a833981016040819052610035916100d8565b60016000558282826001600160a01b038316158061005a57506001600160a01b038216155b8061006c57506001600160a01b038116155b1561008a5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0392831660805290821660a052600180546001600160a01b031916919092161790555061011b915050565b80516001600160a01b03811681146100d357600080fd5b919050565b6000806000606084860312156100ed57600080fd5b6100f6846100bc565b9250610104602085016100bc565b9150610112604085016100bc565b90509250925092565b60805160a051610e0061019a6000396000818161012601528181610216015281816103580152818161041e01528181610541015281816106630152818161077c015281816108be015281816109840152610af101526000818160d501528181610322015281816103ef0152818161088801526109550152610e006000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80635b112591116100765780636f8b44b01161005b5780636f8b44b01461017b578063743e0c9b1461018e578063d5abeb01146101a157600080fd5b80635b112591146101485780635e3e9fef1461016857600080fd5b806302d5c899146100a8578063106e6290146100bd578063116191b6146100d057806321e093b114610121575b600080fd5b6100bb6100b6366004610bca565b6101b8565b005b6100bb6100cb366004610c5c565b6104e3565b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f77f000000000000000000000000000000000000000000000000000000000000000081565b6001546100f79073ffffffffffffffffffffffffffffffffffffffff1681565b6100bb610176366004610bca565b61071e565b6100bb610189366004610c8f565b610a30565b6100bb61019c366004610c8f565b610abc565b6101aa60025481565b604051908152602001610118565b6101c0610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610211576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a39190610ca8565b6102ad9086610cc1565b11156102e5576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561039c57600080fd5b505af11580156103b0573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd4915061044e907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b15801561046857600080fd5b505af115801561047c573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8585856040516104ca93929190610da7565b60405180910390a26104dc6001600055565b5050505050565b6104eb610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff16331461053c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce9190610ca8565b6105d89084610cc1565b1115610610576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161070791815260200190565b60405180910390a26107196001600055565b505050565b610726610b5e565b60015473ffffffffffffffffffffffffffffffffffffffff163314610777576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190610ca8565b6108139086610cc1565b111561084b576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018390527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090257600080fd5b505af1158015610916573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab5991506109b4907f0000000000000000000000000000000000000000000000000000000000000000908990899089908990600401610d4a565b600060405180830381600087803b1580156109ce57600080fd5b505af11580156109e2573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8585856040516104ca93929190610da7565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a81576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a150565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610b4a57600080fd5b505af11580156104dc573d6000803e3d6000fd5b600260005403610b9a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bc557600080fd5b919050565b600080600080600060808688031215610be257600080fd5b610beb86610ba1565b945060208601359350604086013567ffffffffffffffff811115610c0e57600080fd5b8601601f81018813610c1f57600080fd5b803567ffffffffffffffff811115610c3657600080fd5b886020828401011115610c4857600080fd5b959894975060200195606001359392505050565b600080600060608486031215610c7157600080fd5b610c7a84610ba1565b95602085013595506040909401359392505050565b600060208284031215610ca157600080fd5b5035919050565b600060208284031215610cba57600080fd5b5051919050565b80820180821115610cfb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201526000610d9c608083018486610d01565b979650505050505050565b838152604060208201526000610dc1604083018486610d01565b9594505050505056fea2646970667358221220eef04aea35a49145971cb42500074f7c44d89db08a5df2b7d071494c05cc1a2a64736f6c634300081a0033"; + +type ZetaConnectorNonNativeConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZetaConnectorNonNativeConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZetaConnectorNonNative__factory extends ContractFactory { + constructor(...args: ZetaConnectorNonNativeConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _gateway: AddressLike, + _zetaToken: AddressLike, + _tssAddress: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + _gateway, + _zetaToken, + _tssAddress, + overrides || {} + ); + } + override deploy( + _gateway: AddressLike, + _zetaToken: AddressLike, + _tssAddress: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + _gateway, + _zetaToken, + _tssAddress, + overrides || {} + ) as Promise< + ZetaConnectorNonNative & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): ZetaConnectorNonNative__factory { + return super.connect(runner) as ZetaConnectorNonNative__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZetaConnectorNonNativeInterface { + return new Interface(_abi) as ZetaConnectorNonNativeInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ZetaConnectorNonNative { + return new Contract( + address, + _abi, + runner + ) as unknown as ZetaConnectorNonNative; + } +} diff --git a/v2/typechain-types/factories/draft-IERC1822.sol/IERC1822Proxiable__factory.ts b/v2/typechain-types/factories/draft-IERC1822.sol/IERC1822Proxiable__factory.ts new file mode 100644 index 00000000..3a944ae4 --- /dev/null +++ b/v2/typechain-types/factories/draft-IERC1822.sol/IERC1822Proxiable__factory.ts @@ -0,0 +1,38 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC1822Proxiable, + IERC1822ProxiableInterface, +} from "../../draft-IERC1822.sol/IERC1822Proxiable"; + +const _abi = [ + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, +] as const; + +export class IERC1822Proxiable__factory { + static readonly abi = _abi; + static createInterface(): IERC1822ProxiableInterface { + return new Interface(_abi) as IERC1822ProxiableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC1822Proxiable { + return new Contract(address, _abi, runner) as unknown as IERC1822Proxiable; + } +} diff --git a/v2/typechain-types/factories/draft-IERC1822.sol/index.ts b/v2/typechain-types/factories/draft-IERC1822.sol/index.ts new file mode 100644 index 00000000..ecca1339 --- /dev/null +++ b/v2/typechain-types/factories/draft-IERC1822.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC1822Proxiable__factory } from "./IERC1822Proxiable__factory"; diff --git a/v2/typechain-types/factories/draft-IERC6093.sol/IERC1155Errors__factory.ts b/v2/typechain-types/factories/draft-IERC6093.sol/IERC1155Errors__factory.ts new file mode 100644 index 00000000..981b3528 --- /dev/null +++ b/v2/typechain-types/factories/draft-IERC6093.sol/IERC1155Errors__factory.ts @@ -0,0 +1,127 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC1155Errors, + IERC1155ErrorsInterface, +} from "../../draft-IERC6093.sol/IERC1155Errors"; + +const _abi = [ + { + type: "error", + name: "ERC1155InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidArrayLength", + inputs: [ + { + name: "idsLength", + type: "uint256", + internalType: "uint256", + }, + { + name: "valuesLength", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidOperator", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155MissingApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, +] as const; + +export class IERC1155Errors__factory { + static readonly abi = _abi; + static createInterface(): IERC1155ErrorsInterface { + return new Interface(_abi) as IERC1155ErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC1155Errors { + return new Contract(address, _abi, runner) as unknown as IERC1155Errors; + } +} diff --git a/v2/typechain-types/factories/draft-IERC6093.sol/IERC20Errors__factory.ts b/v2/typechain-types/factories/draft-IERC6093.sol/IERC20Errors__factory.ts new file mode 100644 index 00000000..f707f8a1 --- /dev/null +++ b/v2/typechain-types/factories/draft-IERC6093.sol/IERC20Errors__factory.ts @@ -0,0 +1,111 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20Errors, + IERC20ErrorsInterface, +} from "../../draft-IERC6093.sol/IERC20Errors"; + +const _abi = [ + { + type: "error", + name: "ERC20InsufficientAllowance", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "allowance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSpender", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + }, +] as const; + +export class IERC20Errors__factory { + static readonly abi = _abi; + static createInterface(): IERC20ErrorsInterface { + return new Interface(_abi) as IERC20ErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20Errors { + return new Contract(address, _abi, runner) as unknown as IERC20Errors; + } +} diff --git a/v2/typechain-types/factories/draft-IERC6093.sol/IERC721Errors__factory.ts b/v2/typechain-types/factories/draft-IERC6093.sol/IERC721Errors__factory.ts new file mode 100644 index 00000000..450c4ac0 --- /dev/null +++ b/v2/typechain-types/factories/draft-IERC6093.sol/IERC721Errors__factory.ts @@ -0,0 +1,128 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC721Errors, + IERC721ErrorsInterface, +} from "../../draft-IERC6093.sol/IERC721Errors"; + +const _abi = [ + { + type: "error", + name: "ERC721IncorrectOwner", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721InsufficientApproval", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC721InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721InvalidOperator", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721InvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721NonexistentToken", + inputs: [ + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + }, +] as const; + +export class IERC721Errors__factory { + static readonly abi = _abi; + static createInterface(): IERC721ErrorsInterface { + return new Interface(_abi) as IERC721ErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC721Errors { + return new Contract(address, _abi, runner) as unknown as IERC721Errors; + } +} diff --git a/v2/typechain-types/factories/draft-IERC6093.sol/index.ts b/v2/typechain-types/factories/draft-IERC6093.sol/index.ts new file mode 100644 index 00000000..571330ea --- /dev/null +++ b/v2/typechain-types/factories/draft-IERC6093.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC1155Errors__factory } from "./IERC1155Errors__factory"; +export { IERC20Errors__factory } from "./IERC20Errors__factory"; +export { IERC721Errors__factory } from "./IERC721Errors__factory"; diff --git a/v2/typechain-types/factories/index.ts b/v2/typechain-types/factories/index.ts new file mode 100644 index 00000000..4878e50d --- /dev/null +++ b/v2/typechain-types/factories/index.ts @@ -0,0 +1,73 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as erc20 from "./ERC20"; +export * as ierc20CustodyNewSol from "./IERC20CustodyNew.sol"; +export * as ierc721Sol from "./IERC721.sol"; +export * as iGatewayEvmSol from "./IGatewayEVM.sol"; +export * as iGatewayZevmSol from "./IGatewayZEVM.sol"; +export * as iReceiverEvmSol from "./IReceiverEVM.sol"; +export * as iwzetaSol from "./IWZETA.sol"; +export * as izrc20Sol from "./IZRC20.sol"; +export * as iZetaConnectorSol from "./IZetaConnector.sol"; +export * as stdErrorSol from "./StdError.sol"; +export * as stdStorageSol from "./StdStorage.sol"; +export * as systemContractSol from "./SystemContract.sol"; +export * as systemContractMockSol from "./SystemContractMock.sol"; +export * as transparentUpgradeableProxySol from "./TransparentUpgradeableProxy.sol"; +export * as vmSol from "./Vm.sol"; +export * as wzetaSol from "./WZETA.sol"; +export * as zrc20NewSol from "./ZRC20New.sol"; +export * as zetaNonEthSol from "./Zeta.non-eth.sol"; +export * as draftIerc1822Sol from "./draft-IERC1822.sol"; +export * as draftIerc6093Sol from "./draft-IERC6093.sol"; +export * as utils from "./utils"; +export * as zContractSol from "./zContract.sol"; +export { Address__factory } from "./Address__factory"; +export { BeaconProxy__factory } from "./BeaconProxy__factory"; +export { ContextUpgradeable__factory } from "./ContextUpgradeable__factory"; +export { ERC1967Proxy__factory } from "./ERC1967Proxy__factory"; +export { ERC1967Utils__factory } from "./ERC1967Utils__factory"; +export { ERC20__factory } from "./ERC20__factory"; +export { ERC20Burnable__factory } from "./ERC20Burnable__factory"; +export { ERC20CustodyNew__factory } from "./ERC20CustodyNew__factory"; +export { ERC20CustodyNewEchidnaTest__factory } from "./ERC20CustodyNewEchidnaTest__factory"; +export { GatewayEVM__factory } from "./GatewayEVM__factory"; +export { GatewayEVMEchidnaTest__factory } from "./GatewayEVMEchidnaTest__factory"; +export { GatewayEVMUpgradeTest__factory } from "./GatewayEVMUpgradeTest__factory"; +export { GatewayZEVM__factory } from "./GatewayZEVM__factory"; +export { IBeacon__factory } from "./IBeacon__factory"; +export { IERC165__factory } from "./IERC165__factory"; +export { IERC1967__factory } from "./IERC1967__factory"; +export { IERC20__factory } from "./IERC20__factory"; +export { IERC20Metadata__factory } from "./IERC20Metadata__factory"; +export { IERC20Permit__factory } from "./IERC20Permit__factory"; +export { IMulticall3__factory } from "./IMulticall3__factory"; +export { IProxyAdmin__factory } from "./IProxyAdmin__factory"; +export { ISystem__factory } from "./ISystem__factory"; +export { IUpgradeableBeacon__factory } from "./IUpgradeableBeacon__factory"; +export { IUpgradeableProxy__factory } from "./IUpgradeableProxy__factory"; +export { IZetaNonEthNew__factory } from "./IZetaNonEthNew__factory"; +export { Initializable__factory } from "./Initializable__factory"; +export { Math__factory } from "./Math__factory"; +export { MockERC20__factory } from "./MockERC20__factory"; +export { MockERC721__factory } from "./MockERC721__factory"; +export { Ownable__factory } from "./Ownable__factory"; +export { OwnableUpgradeable__factory } from "./OwnableUpgradeable__factory"; +export { Proxy__factory } from "./Proxy__factory"; +export { ProxyAdmin__factory } from "./ProxyAdmin__factory"; +export { ReceiverEVM__factory } from "./ReceiverEVM__factory"; +export { ReentrancyGuard__factory } from "./ReentrancyGuard__factory"; +export { ReentrancyGuardUpgradeable__factory } from "./ReentrancyGuardUpgradeable__factory"; +export { SafeERC20__factory } from "./SafeERC20__factory"; +export { SenderZEVM__factory } from "./SenderZEVM__factory"; +export { StdAssertions__factory } from "./StdAssertions__factory"; +export { StdInvariant__factory } from "./StdInvariant__factory"; +export { Test__factory } from "./Test__factory"; +export { TestERC20__factory } from "./TestERC20__factory"; +export { TestZContract__factory } from "./TestZContract__factory"; +export { UUPSUpgradeable__factory } from "./UUPSUpgradeable__factory"; +export { UpgradeableBeacon__factory } from "./UpgradeableBeacon__factory"; +export { ZetaConnectorNative__factory } from "./ZetaConnectorNative__factory"; +export { ZetaConnectorNewBase__factory } from "./ZetaConnectorNewBase__factory"; +export { ZetaConnectorNonNative__factory } from "./ZetaConnectorNonNative__factory"; diff --git a/v2/typechain-types/factories/interfaces/IWZeta.sol/IWETH9__factory.ts b/v2/typechain-types/factories/interfaces/IWZeta.sol/IWETH9__factory.ts new file mode 100644 index 00000000..57ec1889 --- /dev/null +++ b/v2/typechain-types/factories/interfaces/IWZeta.sol/IWETH9__factory.ts @@ -0,0 +1,263 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IWETH9, + IWETH9Interface, +} from "../../../interfaces/IWZeta.sol/IWETH9"; + +const _abi = [ + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "withdraw", + inputs: [ + { + name: "wad", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "dst", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "wad", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdrawal", + inputs: [ + { + name: "src", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "wad", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, +] as const; + +export class IWETH9__factory { + static readonly abi = _abi; + static createInterface(): IWETH9Interface { + return new Interface(_abi) as IWETH9Interface; + } + static connect(address: string, runner?: ContractRunner | null): IWETH9 { + return new Contract(address, _abi, runner) as unknown as IWETH9; + } +} diff --git a/v2/typechain-types/factories/interfaces/IWZeta.sol/index.ts b/v2/typechain-types/factories/interfaces/IWZeta.sol/index.ts new file mode 100644 index 00000000..d3b0ed8d --- /dev/null +++ b/v2/typechain-types/factories/interfaces/IWZeta.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IWETH9__factory } from "./IWETH9__factory"; diff --git a/v2/typechain-types/factories/interfaces/index.ts b/v2/typechain-types/factories/interfaces/index.ts new file mode 100644 index 00000000..a5b98d0b --- /dev/null +++ b/v2/typechain-types/factories/interfaces/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as iwZetaSol from "./IWZeta.sol"; diff --git a/v2/typechain-types/factories/utils/Strings__factory.ts b/v2/typechain-types/factories/utils/Strings__factory.ts new file mode 100644 index 00000000..4c2f0040 --- /dev/null +++ b/v2/typechain-types/factories/utils/Strings__factory.ts @@ -0,0 +1,77 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { Strings, StringsInterface } from "../../utils/Strings"; + +const _abi = [ + { + type: "error", + name: "StringsInsufficientHexLength", + inputs: [ + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + { + name: "length", + type: "uint256", + internalType: "uint256", + }, + ], + }, +] as const; + +const _bytecode = + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dcce55e68788eb53af38b2c11af076a07cd1e8f2cba23bcb93cbc6cafe3918ef64736f6c634300081a0033"; + +type StringsConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: StringsConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Strings__factory extends ContractFactory { + constructor(...args: StringsConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Strings & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Strings__factory { + return super.connect(runner) as Strings__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): StringsInterface { + return new Interface(_abi) as StringsInterface; + } + static connect(address: string, runner?: ContractRunner | null): Strings { + return new Contract(address, _abi, runner) as unknown as Strings; + } +} diff --git a/v2/typechain-types/factories/utils/index.ts b/v2/typechain-types/factories/utils/index.ts new file mode 100644 index 00000000..ee80837b --- /dev/null +++ b/v2/typechain-types/factories/utils/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Strings__factory } from "./Strings__factory"; diff --git a/v2/typechain-types/factories/zContract.sol/UniversalContract__factory.ts b/v2/typechain-types/factories/zContract.sol/UniversalContract__factory.ts new file mode 100644 index 00000000..48c6f7fc --- /dev/null +++ b/v2/typechain-types/factories/zContract.sol/UniversalContract__factory.ts @@ -0,0 +1,115 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + UniversalContract, + UniversalContractInterface, +} from "../../zContract.sol/UniversalContract"; + +const _abi = [ + { + type: "function", + name: "onCrossChainCall", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct zContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "onRevert", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct revertContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, +] as const; + +export class UniversalContract__factory { + static readonly abi = _abi; + static createInterface(): UniversalContractInterface { + return new Interface(_abi) as UniversalContractInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UniversalContract { + return new Contract(address, _abi, runner) as unknown as UniversalContract; + } +} diff --git a/v2/typechain-types/factories/zContract.sol/ZContract__factory.ts b/v2/typechain-types/factories/zContract.sol/ZContract__factory.ts new file mode 100644 index 00000000..a22e26e2 --- /dev/null +++ b/v2/typechain-types/factories/zContract.sol/ZContract__factory.ts @@ -0,0 +1,67 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZContract, + ZContractInterface, +} from "../../zContract.sol/ZContract"; + +const _abi = [ + { + type: "function", + name: "onCrossChainCall", + inputs: [ + { + name: "context", + type: "tuple", + internalType: "struct zContext", + components: [ + { + name: "origin", + type: "bytes", + internalType: "bytes", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "chainID", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "zrc20", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, +] as const; + +export class ZContract__factory { + static readonly abi = _abi; + static createInterface(): ZContractInterface { + return new Interface(_abi) as ZContractInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZContract { + return new Contract(address, _abi, runner) as unknown as ZContract; + } +} diff --git a/v2/typechain-types/factories/zContract.sol/index.ts b/v2/typechain-types/factories/zContract.sol/index.ts new file mode 100644 index 00000000..c297a535 --- /dev/null +++ b/v2/typechain-types/factories/zContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { UniversalContract__factory } from "./UniversalContract__factory"; +export { ZContract__factory } from "./ZContract__factory"; diff --git a/v2/typechain-types/index.ts b/v2/typechain-types/index.ts new file mode 100644 index 00000000..f04b208d --- /dev/null +++ b/v2/typechain-types/index.ts @@ -0,0 +1,227 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as erc20 from "./ERC20"; +export type { erc20 }; +import type * as ierc20CustodyNewSol from "./IERC20CustodyNew.sol"; +export type { ierc20CustodyNewSol }; +import type * as ierc721Sol from "./IERC721.sol"; +export type { ierc721Sol }; +import type * as iGatewayEvmSol from "./IGatewayEVM.sol"; +export type { iGatewayEvmSol }; +import type * as iGatewayZevmSol from "./IGatewayZEVM.sol"; +export type { iGatewayZevmSol }; +import type * as iReceiverEvmSol from "./IReceiverEVM.sol"; +export type { iReceiverEvmSol }; +import type * as iwzetaSol from "./IWZETA.sol"; +export type { iwzetaSol }; +import type * as izrc20Sol from "./IZRC20.sol"; +export type { izrc20Sol }; +import type * as iZetaConnectorSol from "./IZetaConnector.sol"; +export type { iZetaConnectorSol }; +import type * as stdErrorSol from "./StdError.sol"; +export type { stdErrorSol }; +import type * as stdStorageSol from "./StdStorage.sol"; +export type { stdStorageSol }; +import type * as systemContractSol from "./SystemContract.sol"; +export type { systemContractSol }; +import type * as systemContractMockSol from "./SystemContractMock.sol"; +export type { systemContractMockSol }; +import type * as transparentUpgradeableProxySol from "./TransparentUpgradeableProxy.sol"; +export type { transparentUpgradeableProxySol }; +import type * as vmSol from "./Vm.sol"; +export type { vmSol }; +import type * as wzetaSol from "./WZETA.sol"; +export type { wzetaSol }; +import type * as zrc20NewSol from "./ZRC20New.sol"; +export type { zrc20NewSol }; +import type * as zetaNonEthSol from "./Zeta.non-eth.sol"; +export type { zetaNonEthSol }; +import type * as draftIerc1822Sol from "./draft-IERC1822.sol"; +export type { draftIerc1822Sol }; +import type * as draftIerc6093Sol from "./draft-IERC6093.sol"; +export type { draftIerc6093Sol }; +import type * as utils from "./utils"; +export type { utils }; +import type * as zContractSol from "./zContract.sol"; +export type { zContractSol }; +export type { Address } from "./Address"; +export type { BeaconProxy } from "./BeaconProxy"; +export type { ContextUpgradeable } from "./ContextUpgradeable"; +export type { ERC1967Proxy } from "./ERC1967Proxy"; +export type { ERC1967Utils } from "./ERC1967Utils"; +export type { ERC20 } from "./ERC20"; +export type { ERC20Burnable } from "./ERC20Burnable"; +export type { ERC20CustodyNew } from "./ERC20CustodyNew"; +export type { ERC20CustodyNewEchidnaTest } from "./ERC20CustodyNewEchidnaTest"; +export type { GatewayEVM } from "./GatewayEVM"; +export type { GatewayEVMEchidnaTest } from "./GatewayEVMEchidnaTest"; +export type { GatewayEVMUpgradeTest } from "./GatewayEVMUpgradeTest"; +export type { GatewayZEVM } from "./GatewayZEVM"; +export type { IBeacon } from "./IBeacon"; +export type { IERC165 } from "./IERC165"; +export type { IERC1967 } from "./IERC1967"; +export type { IERC20 } from "./IERC20"; +export type { IERC20Metadata } from "./IERC20Metadata"; +export type { IERC20Permit } from "./IERC20Permit"; +export type { IMulticall3 } from "./IMulticall3"; +export type { IProxyAdmin } from "./IProxyAdmin"; +export type { ISystem } from "./ISystem"; +export type { IUpgradeableBeacon } from "./IUpgradeableBeacon"; +export type { IUpgradeableProxy } from "./IUpgradeableProxy"; +export type { IZetaNonEthNew } from "./IZetaNonEthNew"; +export type { Initializable } from "./Initializable"; +export type { Math } from "./Math"; +export type { MockERC20 } from "./MockERC20"; +export type { MockERC721 } from "./MockERC721"; +export type { Ownable } from "./Ownable"; +export type { OwnableUpgradeable } from "./OwnableUpgradeable"; +export type { Proxy } from "./Proxy"; +export type { ProxyAdmin } from "./ProxyAdmin"; +export type { ReceiverEVM } from "./ReceiverEVM"; +export type { ReentrancyGuard } from "./ReentrancyGuard"; +export type { ReentrancyGuardUpgradeable } from "./ReentrancyGuardUpgradeable"; +export type { SafeERC20 } from "./SafeERC20"; +export type { SenderZEVM } from "./SenderZEVM"; +export type { StdAssertions } from "./StdAssertions"; +export type { StdInvariant } from "./StdInvariant"; +export type { Test } from "./Test"; +export type { TestERC20 } from "./TestERC20"; +export type { TestZContract } from "./TestZContract"; +export type { UUPSUpgradeable } from "./UUPSUpgradeable"; +export type { UpgradeableBeacon } from "./UpgradeableBeacon"; +export type { ZetaConnectorNative } from "./ZetaConnectorNative"; +export type { ZetaConnectorNewBase } from "./ZetaConnectorNewBase"; +export type { ZetaConnectorNonNative } from "./ZetaConnectorNonNative"; +export * as factories from "./factories"; +export { Address__factory } from "./factories/Address__factory"; +export { BeaconProxy__factory } from "./factories/BeaconProxy__factory"; +export { ContextUpgradeable__factory } from "./factories/ContextUpgradeable__factory"; +export type { IERC1822Proxiable } from "./draft-IERC1822.sol/IERC1822Proxiable"; +export { IERC1822Proxiable__factory } from "./factories/draft-IERC1822.sol/IERC1822Proxiable__factory"; +export type { IERC1155Errors } from "./draft-IERC6093.sol/IERC1155Errors"; +export { IERC1155Errors__factory } from "./factories/draft-IERC6093.sol/IERC1155Errors__factory"; +export type { IERC20Errors } from "./draft-IERC6093.sol/IERC20Errors"; +export { IERC20Errors__factory } from "./factories/draft-IERC6093.sol/IERC20Errors__factory"; +export type { IERC721Errors } from "./draft-IERC6093.sol/IERC721Errors"; +export { IERC721Errors__factory } from "./factories/draft-IERC6093.sol/IERC721Errors__factory"; +export { ERC1967Proxy__factory } from "./factories/ERC1967Proxy__factory"; +export { ERC1967Utils__factory } from "./factories/ERC1967Utils__factory"; +export { ERC20__factory } from "./factories/ERC20__factory"; +export type { IERC20 } from "./ERC20/IERC20"; +export { IERC20__factory } from "./factories/ERC20/IERC20__factory"; +export { ERC20Burnable__factory } from "./factories/ERC20Burnable__factory"; +export { ERC20CustodyNew__factory } from "./factories/ERC20CustodyNew__factory"; +export { ERC20CustodyNewEchidnaTest__factory } from "./factories/ERC20CustodyNewEchidnaTest__factory"; +export { GatewayEVM__factory } from "./factories/GatewayEVM__factory"; +export { GatewayEVMEchidnaTest__factory } from "./factories/GatewayEVMEchidnaTest__factory"; +export { GatewayEVMUpgradeTest__factory } from "./factories/GatewayEVMUpgradeTest__factory"; +export { GatewayZEVM__factory } from "./factories/GatewayZEVM__factory"; +export { IBeacon__factory } from "./factories/IBeacon__factory"; +export { IERC165__factory } from "./factories/IERC165__factory"; +export { IERC1967__factory } from "./factories/IERC1967__factory"; +export type { IERC20CustodyNewErrors } from "./IERC20CustodyNew.sol/IERC20CustodyNewErrors"; +export { IERC20CustodyNewErrors__factory } from "./factories/IERC20CustodyNew.sol/IERC20CustodyNewErrors__factory"; +export type { IERC20CustodyNewEvents } from "./IERC20CustodyNew.sol/IERC20CustodyNewEvents"; +export { IERC20CustodyNewEvents__factory } from "./factories/IERC20CustodyNew.sol/IERC20CustodyNewEvents__factory"; +export { IERC20Metadata__factory } from "./factories/IERC20Metadata__factory"; +export { IERC20Permit__factory } from "./factories/IERC20Permit__factory"; +export type { IERC721 } from "./IERC721.sol/IERC721"; +export { IERC721__factory } from "./factories/IERC721.sol/IERC721__factory"; +export type { IERC721Enumerable } from "./IERC721.sol/IERC721Enumerable"; +export { IERC721Enumerable__factory } from "./factories/IERC721.sol/IERC721Enumerable__factory"; +export type { IERC721Metadata } from "./IERC721.sol/IERC721Metadata"; +export { IERC721Metadata__factory } from "./factories/IERC721.sol/IERC721Metadata__factory"; +export type { IERC721TokenReceiver } from "./IERC721.sol/IERC721TokenReceiver"; +export { IERC721TokenReceiver__factory } from "./factories/IERC721.sol/IERC721TokenReceiver__factory"; +export type { IGatewayEVM } from "./IGatewayEVM.sol/IGatewayEVM"; +export { IGatewayEVM__factory } from "./factories/IGatewayEVM.sol/IGatewayEVM__factory"; +export type { IGatewayEVMErrors } from "./IGatewayEVM.sol/IGatewayEVMErrors"; +export { IGatewayEVMErrors__factory } from "./factories/IGatewayEVM.sol/IGatewayEVMErrors__factory"; +export type { IGatewayEVMEvents } from "./IGatewayEVM.sol/IGatewayEVMEvents"; +export { IGatewayEVMEvents__factory } from "./factories/IGatewayEVM.sol/IGatewayEVMEvents__factory"; +export type { Revertable } from "./IGatewayEVM.sol/Revertable"; +export { Revertable__factory } from "./factories/IGatewayEVM.sol/Revertable__factory"; +export type { IGatewayZEVM } from "./IGatewayZEVM.sol/IGatewayZEVM"; +export { IGatewayZEVM__factory } from "./factories/IGatewayZEVM.sol/IGatewayZEVM__factory"; +export type { IGatewayZEVMErrors } from "./IGatewayZEVM.sol/IGatewayZEVMErrors"; +export { IGatewayZEVMErrors__factory } from "./factories/IGatewayZEVM.sol/IGatewayZEVMErrors__factory"; +export type { IGatewayZEVMEvents } from "./IGatewayZEVM.sol/IGatewayZEVMEvents"; +export { IGatewayZEVMEvents__factory } from "./factories/IGatewayZEVM.sol/IGatewayZEVMEvents__factory"; +export { IMulticall3__factory } from "./factories/IMulticall3__factory"; +export { Initializable__factory } from "./factories/Initializable__factory"; +export { IProxyAdmin__factory } from "./factories/IProxyAdmin__factory"; +export type { IReceiverEVMEvents } from "./IReceiverEVM.sol/IReceiverEVMEvents"; +export { IReceiverEVMEvents__factory } from "./factories/IReceiverEVM.sol/IReceiverEVMEvents__factory"; +export { ISystem__factory } from "./factories/ISystem__factory"; +export { IUpgradeableBeacon__factory } from "./factories/IUpgradeableBeacon__factory"; +export { IUpgradeableProxy__factory } from "./factories/IUpgradeableProxy__factory"; +export type { IWETH9 } from "./IWZETA.sol/IWETH9"; +export { IWETH9__factory } from "./factories/IWZETA.sol/IWETH9__factory"; +export type { IZetaConnectorEvents } from "./IZetaConnector.sol/IZetaConnectorEvents"; +export { IZetaConnectorEvents__factory } from "./factories/IZetaConnector.sol/IZetaConnectorEvents__factory"; +export { IZetaNonEthNew__factory } from "./factories/IZetaNonEthNew__factory"; +export type { IZRC20 } from "./IZRC20.sol/IZRC20"; +export { IZRC20__factory } from "./factories/IZRC20.sol/IZRC20__factory"; +export type { IZRC20Metadata } from "./IZRC20.sol/IZRC20Metadata"; +export { IZRC20Metadata__factory } from "./factories/IZRC20.sol/IZRC20Metadata__factory"; +export type { ZRC20Events } from "./IZRC20.sol/ZRC20Events"; +export { ZRC20Events__factory } from "./factories/IZRC20.sol/ZRC20Events__factory"; +export { Math__factory } from "./factories/Math__factory"; +export { MockERC20__factory } from "./factories/MockERC20__factory"; +export { MockERC721__factory } from "./factories/MockERC721__factory"; +export { Ownable__factory } from "./factories/Ownable__factory"; +export { OwnableUpgradeable__factory } from "./factories/OwnableUpgradeable__factory"; +export { Proxy__factory } from "./factories/Proxy__factory"; +export { ProxyAdmin__factory } from "./factories/ProxyAdmin__factory"; +export { ReceiverEVM__factory } from "./factories/ReceiverEVM__factory"; +export { ReentrancyGuard__factory } from "./factories/ReentrancyGuard__factory"; +export { ReentrancyGuardUpgradeable__factory } from "./factories/ReentrancyGuardUpgradeable__factory"; +export { SafeERC20__factory } from "./factories/SafeERC20__factory"; +export { SenderZEVM__factory } from "./factories/SenderZEVM__factory"; +export { StdAssertions__factory } from "./factories/StdAssertions__factory"; +export type { StdError } from "./StdError.sol/StdError"; +export { StdError__factory } from "./factories/StdError.sol/StdError__factory"; +export { StdInvariant__factory } from "./factories/StdInvariant__factory"; +export type { StdStorageSafe } from "./StdStorage.sol/StdStorageSafe"; +export { StdStorageSafe__factory } from "./factories/StdStorage.sol/StdStorageSafe__factory"; +export type { SystemContract } from "./SystemContract.sol/SystemContract"; +export { SystemContract__factory } from "./factories/SystemContract.sol/SystemContract__factory"; +export type { SystemContractErrors } from "./SystemContract.sol/SystemContractErrors"; +export { SystemContractErrors__factory } from "./factories/SystemContract.sol/SystemContractErrors__factory"; +export type { SystemContractMock } from "./SystemContractMock.sol/SystemContractMock"; +export { SystemContractMock__factory } from "./factories/SystemContractMock.sol/SystemContractMock__factory"; +export { Test__factory } from "./factories/Test__factory"; +export { TestERC20__factory } from "./factories/TestERC20__factory"; +export { TestZContract__factory } from "./factories/TestZContract__factory"; +export type { ITransparentUpgradeableProxy } from "./TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy"; +export { ITransparentUpgradeableProxy__factory } from "./factories/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory"; +export type { TransparentUpgradeableProxy } from "./TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy"; +export { TransparentUpgradeableProxy__factory } from "./factories/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory"; +export { UpgradeableBeacon__factory } from "./factories/UpgradeableBeacon__factory"; +export type { Strings } from "./utils/Strings"; +export { Strings__factory } from "./factories/utils/Strings__factory"; +export { UUPSUpgradeable__factory } from "./factories/UUPSUpgradeable__factory"; +export type { Vm } from "./Vm.sol/Vm"; +export { Vm__factory } from "./factories/Vm.sol/Vm__factory"; +export type { VmSafe } from "./Vm.sol/VmSafe"; +export { VmSafe__factory } from "./factories/Vm.sol/VmSafe__factory"; +export type { WETH9 } from "./WZETA.sol/WETH9"; +export { WETH9__factory } from "./factories/WZETA.sol/WETH9__factory"; +export type { UniversalContract } from "./zContract.sol/UniversalContract"; +export { UniversalContract__factory } from "./factories/zContract.sol/UniversalContract__factory"; +export type { ZContract } from "./zContract.sol/ZContract"; +export { ZContract__factory } from "./factories/zContract.sol/ZContract__factory"; +export type { ZetaErrors } from "./Zeta.non-eth.sol/ZetaErrors"; +export { ZetaErrors__factory } from "./factories/Zeta.non-eth.sol/ZetaErrors__factory"; +export type { ZetaNonEth } from "./Zeta.non-eth.sol/ZetaNonEth"; +export { ZetaNonEth__factory } from "./factories/Zeta.non-eth.sol/ZetaNonEth__factory"; +export type { ZetaNonEthInterface } from "./Zeta.non-eth.sol/ZetaNonEthInterface"; +export { ZetaNonEthInterface__factory } from "./factories/Zeta.non-eth.sol/ZetaNonEthInterface__factory"; +export { ZetaConnectorNative__factory } from "./factories/ZetaConnectorNative__factory"; +export { ZetaConnectorNewBase__factory } from "./factories/ZetaConnectorNewBase__factory"; +export { ZetaConnectorNonNative__factory } from "./factories/ZetaConnectorNonNative__factory"; +export type { ZRC20Errors } from "./ZRC20New.sol/ZRC20Errors"; +export { ZRC20Errors__factory } from "./factories/ZRC20New.sol/ZRC20Errors__factory"; +export type { ZRC20New } from "./ZRC20New.sol/ZRC20New"; +export { ZRC20New__factory } from "./factories/ZRC20New.sol/ZRC20New__factory"; diff --git a/v2/typechain-types/interfaces/IWZeta.sol/IWETH9.ts b/v2/typechain-types/interfaces/IWZeta.sol/IWETH9.ts new file mode 100644 index 00000000..a2c1608f --- /dev/null +++ b/v2/typechain-types/interfaces/IWZeta.sol/IWETH9.ts @@ -0,0 +1,345 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface IWETH9Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "deposit" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "Deposit" | "Transfer" | "Withdrawal" + ): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [dst: AddressLike, wad: BigNumberish]; + export type OutputTuple = [dst: string, wad: bigint]; + export interface OutputObject { + dst: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [src: AddressLike, wad: BigNumberish]; + export type OutputTuple = [src: string, wad: bigint]; + export interface OutputObject { + src: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IWETH9 extends BaseContract { + connect(runner?: ContractRunner | null): IWETH9; + waitForDeployment(): Promise; + + interface: IWETH9Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + deposit: TypedContractMethod<[], [void], "payable">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[], [void], "payable">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "Withdrawal(address,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/interfaces/IWZeta.sol/index.ts b/v2/typechain-types/interfaces/IWZeta.sol/index.ts new file mode 100644 index 00000000..95069327 --- /dev/null +++ b/v2/typechain-types/interfaces/IWZeta.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IWETH9 } from "./IWETH9"; diff --git a/v2/typechain-types/interfaces/index.ts b/v2/typechain-types/interfaces/index.ts new file mode 100644 index 00000000..ced2bd72 --- /dev/null +++ b/v2/typechain-types/interfaces/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as iwZetaSol from "./IWZeta.sol"; +export type { iwZetaSol }; diff --git a/v2/typechain-types/utils/Strings.ts b/v2/typechain-types/utils/Strings.ts new file mode 100644 index 00000000..89d38f14 --- /dev/null +++ b/v2/typechain-types/utils/Strings.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface StringsInterface extends Interface {} + +export interface Strings extends BaseContract { + connect(runner?: ContractRunner | null): Strings; + waitForDeployment(): Promise; + + interface: StringsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/v2/typechain-types/utils/index.ts b/v2/typechain-types/utils/index.ts new file mode 100644 index 00000000..b124be93 --- /dev/null +++ b/v2/typechain-types/utils/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Strings } from "./Strings"; diff --git a/v2/typechain-types/zContract.sol/UniversalContract.ts b/v2/typechain-types/zContract.sol/UniversalContract.ts new file mode 100644 index 00000000..d1bb5ea2 --- /dev/null +++ b/v2/typechain-types/zContract.sol/UniversalContract.ts @@ -0,0 +1,164 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export type RevertContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type RevertContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export interface UniversalContractInterface extends Interface { + getFunction( + nameOrSignature: "onCrossChainCall" | "onRevert" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "onCrossChainCall", + values: [ZContextStruct, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "onRevert", + values: [RevertContextStruct, AddressLike, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "onCrossChainCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; +} + +export interface UniversalContract extends BaseContract { + connect(runner?: ContractRunner | null): UniversalContract; + waitForDeployment(): Promise; + + interface: UniversalContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onCrossChainCall: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + onRevert: TypedContractMethod< + [ + context: RevertContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onCrossChainCall" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "onRevert" + ): TypedContractMethod< + [ + context: RevertContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/v2/typechain-types/zContract.sol/ZContract.ts b/v2/typechain-types/zContract.sol/ZContract.ts new file mode 100644 index 00000000..f83ec06a --- /dev/null +++ b/v2/typechain-types/zContract.sol/ZContract.ts @@ -0,0 +1,122 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export interface ZContractInterface extends Interface { + getFunction(nameOrSignature: "onCrossChainCall"): FunctionFragment; + + encodeFunctionData( + functionFragment: "onCrossChainCall", + values: [ZContextStruct, AddressLike, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "onCrossChainCall", + data: BytesLike + ): Result; +} + +export interface ZContract extends BaseContract { + connect(runner?: ContractRunner | null): ZContract; + waitForDeployment(): Promise; + + interface: ZContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onCrossChainCall: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onCrossChainCall" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/v2/typechain-types/zContract.sol/index.ts b/v2/typechain-types/zContract.sol/index.ts new file mode 100644 index 00000000..bf8e5a02 --- /dev/null +++ b/v2/typechain-types/zContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { UniversalContract } from "./UniversalContract"; +export type { ZContract } from "./ZContract"; diff --git a/v2/yarn.lock b/v2/yarn.lock index 9d3df7d8..18b3e888 100644 --- a/v2/yarn.lock +++ b/v2/yarn.lock @@ -177,6 +177,14 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== +"@typechain/ethers-v6@^0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz#42fe214a19a8b687086c93189b301e2b878797ea" + integrity sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA== + dependencies: + lodash "^4.17.15" + ts-essentials "^7.0.1" + "@types/eslint@*": version "9.6.0" resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.0.tgz#51d4fe4d0316da9e9f2c80884f2c20ed5fb022ff" @@ -207,6 +215,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== +"@types/prettier@^2.1.1": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + "@typescript-eslint/eslint-plugin@7.17.0": version "7.17.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.17.0.tgz#c8ed1af1ad2928ede5cdd207f7e3090499e1f77b" @@ -330,6 +343,13 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -347,6 +367,16 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +array-back@^3.0.1, array-back@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-back@^4.0.1, array-back@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" + integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -398,7 +428,16 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -chalk@^4.0.0, chalk@^4.1.2: +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -415,6 +454,13 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -422,6 +468,11 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" @@ -434,6 +485,26 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +command-line-args@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" + integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== + dependencies: + array-back "^3.1.0" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" + +command-line-usage@^6.1.0: + version "6.1.3" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" + integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== + dependencies: + array-back "^4.0.2" + chalk "^2.4.2" + table-layout "^1.0.2" + typical "^5.2.0" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -482,6 +553,11 @@ debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" +deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -521,6 +597,11 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -676,6 +757,13 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -712,6 +800,15 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -736,6 +833,18 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.1.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -767,11 +876,21 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + graphemer@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" @@ -851,6 +970,11 @@ joi@^17.11.0: "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" +js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -873,6 +997,13 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + keyv@^4.5.3: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" @@ -895,12 +1026,17 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.21: +lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -935,7 +1071,7 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -954,6 +1090,11 @@ minimist@^1.2.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -1034,6 +1175,11 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prettier@^2.3.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" @@ -1049,6 +1195,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +reduce-flatten@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== + regenerator-runtime@^0.14.0: version "0.14.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" @@ -1122,6 +1273,11 @@ spawn-command@0.0.2: resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e" integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ== +string-format@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" + integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -1143,6 +1299,13 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -1157,6 +1320,16 @@ supports-color@^8.1.1: dependencies: has-flag "^4.0.0" +table-layout@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" + integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== + dependencies: + array-back "^4.0.1" + deep-extend "~0.6.0" + typical "^5.2.0" + wordwrapjs "^4.0.0" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -1179,6 +1352,21 @@ ts-api-utils@^1.3.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== +ts-command-line-args@^2.2.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" + integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== + dependencies: + chalk "^4.1.0" + command-line-args "^5.1.1" + command-line-usage "^6.1.0" + string-format "^2.0.0" + +ts-essentials@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== + ts-node@^10.9.2: version "10.9.2" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" @@ -1220,6 +1408,22 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +typechain@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73" + integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q== + dependencies: + "@types/prettier" "^2.1.1" + debug "^4.3.1" + fs-extra "^7.0.0" + glob "7.1.7" + js-sha3 "^0.8.0" + lodash "^4.17.15" + mkdirp "^1.0.4" + prettier "^2.3.1" + ts-command-line-args "^2.2.0" + ts-essentials "^7.0.1" + typescript-eslint@^7.17.0: version "7.17.0" resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-7.17.0.tgz#cc5eddafd38b3c1fe8a52826469d5c78700b7aa7" @@ -1234,6 +1438,21 @@ typescript@^5.5.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== + +typical@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -1269,6 +1488,14 @@ word-wrap@^1.2.5: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== +wordwrapjs@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" + integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== + dependencies: + reduce-flatten "^2.0.0" + typical "^5.2.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"